upnpharvester/common/cmsqlwrapper/src/cmsqldbclause.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/upnpharvester/common/cmsqlwrapper/src/cmsqldbclause.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,944 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:      SQL database sql clause class
-*
-*/
-
-
-
-
-
-
-#include <utf.h>
-#include "cmfillrule.h"
-#include "cmsqlpropertycollector.h"
-#include "cmsqlpropertycontainer.h"
-#include "cmsqlpropertyitem.h"
-#include "cmsqldbclause.h"
-#include "cmsqlclausedef.h"
-#include "msdebug.h"                                                    
-
-// CONSTANTS
-// The size of buf that need to allot for store the rule amount
-const TUint KCmRuleAmountSize = 5;
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::NewL
-// ---------------------------------------------------------------------------
-//
-CCmSqlDbClause* CCmSqlDbClause::NewL()
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::NewL"));    
-    CCmSqlDbClause* self = CCmSqlDbClause::NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
- 
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::NewLC
-// ---------------------------------------------------------------------------
-//    
-CCmSqlDbClause* CCmSqlDbClause::NewLC()
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::NewLC"));    
-    CCmSqlDbClause* self = new ( ELeave ) CCmSqlDbClause();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;  
-    }    
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::~CCmSqlDbClause
-// ---------------------------------------------------------------------------
-//
-CCmSqlDbClause::~CCmSqlDbClause()
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::~CCmSqlDbClause"));    
-    
-    delete iClause;
-    delete iFreeText;
-    iProfileFilters.Reset();        
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatClauseL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatClauseL( CCmFillRule& aRule,
-    TCmMetadataField aField, TCmMediaType aMedia )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatClauseL"));    
-    
-    delete iClause;
-    iClause = NULL;   
-    if( aField == ECmNone && &aRule )
-        {
-        if( ECmAudio != aRule.MediaType() )
-            {
-            iClause = KCmSqlBaseSelect().AllocL();    
-            }
-        else
-            {
-            iClause = KCmSqlMusicSelect().AllocL();
-            }
-        TRACE(Print(_L("[SQL wrapper]\t Formating media type...")));
-        FormatMediatypeL( aRule );
-        TRACE(Print(_L("[SQL wrapper]\t Formating params...")));
-        FormatParamsL( aRule );
-        TRACE(Print(_L("[SQL wrapper]\t Formating devices...")));
-        FormatDevicesL( aRule );
-        TRACE(Print(_L("[SQL wrapper]\t Formating profile filters...")));
-        FormatProfileFiltersL();
-        TRACE(Print(_L("[SQL wrapper]\t Formating ordering...")));
-        FormatOrderingL( aRule.Method() );
-        TRACE(Print(_L("[SQL wrapper]\t Formating amount...")));
-        FormatAmountL( aRule );
-        // Finish clause    
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlSemicolon().Length() );
-        iClause->Des().Append( KCmSqlSemicolon() );     
-        }
-    else
-        {
-        FormatProperyQueryL( aField, aMedia );
-        }        
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatFilteringClauseL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatFilteringClauseL( 
-    CCmSqlPropertyCollector& aPropertys )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatFilteringClauseL"));    
-    
-    delete iClause;
-    iClause = NULL;
-
-    TInt count = aPropertys.PropertyContainerCount();
-
-    if( count == 1 && aPropertys.PropertyContainer( 0 )->Type() == ECmTitle)
-        {
-        //video
-        iClause = KCmSqlFilteredPropertySelectVideo().AllocL();
-        }
-    else
-        {
-        iClause = KCmSqlFilteredPropertySelect().AllocL();
-        }
-
-    FormatPropertyFilterL( aPropertys );
-    }
-    
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::ClauseL
-// ---------------------------------------------------------------------------
-//
-TDesC8& CCmSqlDbClause::ClauseL() const
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::ClauseL"));    
-    
-#ifdef _DEBUG    
-    HBufC* data16bitBuf = HBufC::NewLC(iClause->Length());
-    TPtr data16bitPtr = data16bitBuf->Des();
-       
-    TInt conversionError = 
-        CnvUtfConverter::ConvertToUnicodeFromUtf8(data16bitPtr, 
-                                                *iClause );
-    TPtrC temp;                                                
-    for( TInt i = 0; i < (data16bitPtr.Length())/100 + 1 ; i++ ) 
-        {
-        if( i == (data16bitPtr.Length())/100 )
-            {
-            temp.Set( data16bitPtr.Mid(100*i ) );
-            TRACE( Print(_L("SQL clause %S"), &temp ) ); 
-            }
-        else
-            {
-            temp.Set( data16bitPtr.Mid(100*i, 100 ) );
-            TRACE( Print(_L("SQL clause %S"), &temp ) ); 
-            }        
-        }
-    CleanupStack::PopAndDestroy( data16bitBuf );
-#endif    
-    return *iClause;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::SetDlnaProfileFilters
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::SetDlnaProfileFilters( 
-    const RArray<TInt64>& aProfileIds )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::SetDlnaProfileFilters"));    
-    
-    iProfileFilters.Reset();
-    for( TInt i = 0; i < aProfileIds.Count() ; i++ )
-        {
-        iProfileFilters.InsertInSignedKeyOrder( aProfileIds[i] );
-        }
-    }
-        
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatMediatypeL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatMediatypeL( CCmFillRule& aRule )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMediatypeL"));    
-    
-    TBuf8<20>mediatype;
-    mediatype.Format( KCmSqlSelectMediatype, aRule.MediaType() );
-    iClause = iClause->ReAllocL( iClause->Length() + mediatype.Length() );
-    iClause->Des().Append( mediatype );
-    }
-    
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatParamsL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatParamsL( CCmFillRule& aRule )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatParamsL"));    
-    
-    TCmMetadataField metadataColum;
-    TPtrC8 dataField;
-    TInt dataFieldIndex;
-    TCmOperatorType oper;
-    TInt paramCount;
-    TBool operatorAdded( EFalse );   
-    for( TInt i = 0; i < aRule.RuleCount(); i++ )
-        {
-        aRule.RuleL( i, &metadataColum, &oper, &paramCount );
-        if( paramCount )
-            {            
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlAnd().Length() + KCmSqlLeftBracket().Length()  );
-            iClause->Des().Append( KCmSqlAnd );
-            iClause->Des().Append( KCmSqlLeftBracket() );                
-            for( TInt j = 0; j < paramCount; j++ )
-                {
-                iClause = iClause->ReAllocL( iClause->Length() + 
-                    KCmSqlLeftBracket().Length() );
-                iClause->Des().Append( KCmSqlLeftBracket() );
-                              
-                FormatMetadataColumnL( metadataColum, aRule.MediaType() );
-                // Data field may change to integer value ( index to table )
-                aRule.RuleParamL( i, j, &dataField );
-                aRule.RuleParamL( i, j, dataFieldIndex );
-                
-                // If rule is free text rule, operator is already appended 
-                // into Sql clause
-                operatorAdded = EFalse;
-                if( ECmFreeText != metadataColum &&
-                    ECmArtist != metadataColum &&
-                    ECmAlbum != metadataColum &&
-                    ECmResolution != metadataColum &&
-                    ECmGenre != metadataColum && 
-                    ECmUpnpClass != metadataColum && 
-                    ECmTitle != metadataColum )
-                    {
-                    FormatOperatorL( metadataColum, oper );
-                    operatorAdded = ETrue;
-                    }
-                      
-                if( dataField.Size() && 
-                    ( iFreeText || ECmDate == metadataColum || 
-                    ECmFileSize == metadataColum || 
-                    ECmDuration == metadataColum ) )
-                    {
-                    if( ECmDate != metadataColum && 
-                        ECmFileSize != metadataColum && 
-                        ECmDuration != metadataColum )
-                        {
-                        TInt multiplier( 1 );
-                        if( aRule.MediaType() == ECmAudio && 
-                            metadataColum == ECmFreeText )
-                            {
-                            // Three fields are used in audio free text search
-                            multiplier = 3;
-                            }
-                        iFreeText = iFreeText->ReAllocL( iFreeText->Length() +
-                            ( dataField.Length() * multiplier ) );  
-                        HBufC8* temp = HBufC8::NewMaxL( iFreeText->Length() + 
-                            ( dataField.Length() * multiplier ) );
-                        // Format dataField into clause
-                        if( multiplier == 1 )
-                            {                    
-                            temp->Des().Format( *iFreeText, &dataField );
-                            }
-                        else
-                            {
-                            temp->Des().Format( *iFreeText, &dataField, 
-                                &dataField, &dataField );   
-                            } 
-                        if( iFreeText )
-                            {
-                            delete iFreeText; 
-                            iFreeText = NULL;
-                            }
-                        iClause = iClause->ReAllocL( iClause->Length() + 
-                            temp->Length() );
-                        iClause->Des().Append( *temp );
-                        delete temp;                        
-                        }
-                    else
-                        {
-                        // Date is appended in TInt64 format
-                        TLex8 lex( dataField );
-                        TInt64 num;
-                        lex.Val( num );
-                        iClause = iClause->ReAllocL( iClause->Length() + 
-                            dataField.Length() );                    
-                        iClause->Des().AppendNum( num );
-                        }            
-                    }
-                else
-                    {
-                    if( operatorAdded )
-                        {
-                        iClause = iClause->ReAllocL( iClause->Length() + 
-                            sizeof( dataFieldIndex ) );
-                            
-                        HBufC8* temp = HBufC8::NewMaxLC( iClause->Length() );
-                        temp->Des().Format( *iClause, dataFieldIndex );
-                        delete iClause;
-                        iClause = NULL;
-                        iClause = temp->AllocL();
-                        CleanupStack::PopAndDestroy( temp );
-                        }
-                    else
-                        {
-                        iClause = iClause->ReAllocL( iClause->Length() + 
-                            sizeof( dataFieldIndex ) );                    
-                        iClause->Des().AppendNum( dataFieldIndex );
-                        }      
-                    }    
-
-                iClause = iClause->ReAllocL( iClause->Length() + 
-                    KCmSqlRightBracket().Length() );
-                iClause->Des().Append( KCmSqlRightBracket() );         
-                
-                if( j < paramCount - 1 )
-                    {
-                    iClause = iClause->ReAllocL( iClause->Length() + 
-                        KCmSqlOr().Length() );
-                    iClause->Des().Append( KCmSqlOr() );            
-                    }            
-                }
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlRightBracket().Length() );
-            iClause->Des().Append( KCmSqlRightBracket() );             
-            }            
-        }      
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatDevicesL
-// ---------------------------------------------------------------------------
-//    
-void CCmSqlDbClause::FormatDevicesL( CCmFillRule& aRule )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatDevicesL"));    
-    
-    TPtrC8 mediaServer;
-    TInt msId(0);
-    if( aRule.MediaServerCount() )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlAnd().Length() );
-        iClause->Des().Append( KCmSqlAnd() );
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlLeftBracket().Length() );
-        iClause->Des().Append( KCmSqlLeftBracket() );                
-        }
-    for( TInt k = 0; k < aRule.MediaServerCount(); k++ )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlLeftBracket().Length() );
-        iClause->Des().Append( KCmSqlLeftBracket() );                
-        aRule.MediaServerL( k, msId );
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlSelectDeviceId().Length() + sizeof( msId ) );
-        iClause->Des().Append( KCmSqlSelectDeviceId );
-        iClause->Des().AppendNum( msId );
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlRightBracket().Length() );
-        iClause->Des().Append( KCmSqlRightBracket() );          
-        if( k < aRule.MediaServerCount() - 1 )
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlOr().Length() );
-            iClause->Des().Append( KCmSqlOr() );            
-            }
-        }
-    if( aRule.MediaServerCount() )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlRightBracket().Length() );
-        iClause->Des().Append( KCmSqlRightBracket() );                
-        }                     
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatOrderingL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatOrderingL( TCmFillMethod aMethod )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatOrderingL"));    
-    
-    switch( aMethod )
-        {
-        case ECmRandom:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlOrderByRandom().Length() );
-            iClause->Des().Append( KCmSqlOrderByRandom() );              
-            break;
-            }
-        case ECmLatest:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlOrderByDate().Length() + KCmSqlDesc().Length() );
-            iClause->Des().Append( KCmSqlOrderByDate() );
-            iClause->Des().Append( KCmSqlDesc() );             
-            break;
-            }        
-        case ECmOldest:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlOrderByDate().Length() + KCmSqlAsc().Length() );
-            iClause->Des().Append( KCmSqlOrderByDate() );
-            iClause->Des().Append( KCmSqlAsc() );
-            break;
-            }        
-        default:
-            {
-            break;
-            }
-        }    
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatAmountL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatAmountL( CCmFillRule& aRule )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatAmountL"));    
-    
-    if( aRule.LimitType() == EPieces )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlLimit().Length() + KCmRuleAmountSize  );
-        iClause->Des().Append( KCmSqlLimit() );
-        iClause->Des().AppendNum( aRule.Amount() );        
-        }
-    else if( aRule.LimitType() == EMbits )
-        {
-        // If amount is wanted in MBytes, no possibility to 
-        // LIMIT result set in this phase
-        }
-    else
-        {
-        // Unlimited rule
-        // Fill quota is used as a maximun amount
-        }    
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatMetadataColumnL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatMetadataColumnL( TCmMetadataField aField,
-    TCmMediaType aMediaType )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMetadataColumnL"));    
-    
-    if( iFreeText )
-        {
-        delete iFreeText; iFreeText = NULL;
-        }
-    TRACE(Print(_L("[SQL wrapper]\t Formating data field = %d"), 
-        (TInt) aField ));             
-    
-    switch( aField )
-        {       
-        case ECmArtist:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectArtistById().Length() );
-            iClause->Des().Append( KCmSqlSelectArtistById() );
-            break;
-            }                    
-        case ECmAlbum:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectAlbumById().Length() );
-            iClause->Des().Append( KCmSqlSelectAlbumById() );            
-            break;
-            }        
-        case ECmGenre:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectGenreById().Length() );
-            iClause->Des().Append( KCmSqlSelectGenreById() );               
-            break;
-            }        
-        case ECmDuration:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectDuration().Length() );
-            iClause->Des().Append( KCmSqlSelectDuration() );              
-            break;
-            }        
-        case ECmTitle:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectTitle().Length() );
-            iClause->Des().Append( KCmSqlSelectTitle() );
-            break;
-            }        
-        case ECmUpnpClass:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectUpnpclassById().Length() );
-            iClause->Des().Append( KCmSqlSelectUpnpclassById );    
-            break;
-            }        
-        case ECmContentURI:
-            {
-            LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMetadataColumnL \
-            aField = ECmContentURI"));
-            break;
-            }        
-        case ECmFileSize:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectSize().Length() );
-            iClause->Des().Append( KCmSqlSelectSize() );            
-            break;
-            }        
-        case ECmBitrate:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlSelectBitrate().Length() );
-            iClause->Des().Append( KCmSqlSelectBitrate );    
-            break;
-            }        
-        case ECmResolution:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() +
-                KCmSqlSelectResolutionById().Length() );
-            iClause->Des().Append( KCmSqlSelectResolutionById );    
-            break;
-            }
-        case ECmDate:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() +
-                KCmSqlSelectDate().Length() );
-            iClause->Des().Append( KCmSqlSelectDate );
-            break;
-            }  
-        case ECmFreeText:
-            {
-            switch( aMediaType )
-                {
-                case ECmAudio:
-                    {
-                    // Title, Artist or album field contains specified field
-                    iFreeText = KCmSqlFreeTextSelectAudio().AllocL();
-                    break;
-                    }                
-                case ECmImage:           
-                case ECmVideo: 
-                    {
-                    // Title contains specified field
-                    iFreeText = KCmSqlFreeTextSelectImageOrVideo().AllocL();
-                    break;
-                    }
-                default:
-                    {
-                    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::\
-                    FormatMetadataColumnL mediatype not found"));                    
-                    break;
-                    }
-                }
-            break;
-            }
-        default:
-            {
-            LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMetadataColumnL \
-            field not found"));
-            break;
-            }    
-        }      
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatOperatorL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatOperatorL( TCmMetadataField aMetadataColum, 
-    TCmOperatorType aOper )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatOperatorL"));    
-    
-    switch( aOper )
-        {           
-        case ECmEquals:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlEqual().Length() + KCmSqlAppendString().Length() );
-            iClause->Des().Append( KCmSqlEqual() );
-            iClause->Des().Append( KCmSqlAppendInteger() );
-            break;
-            }
-        // Greater and smaller operator are always integer operators    
-        case ECmGreater:
-            {
-            if( aMetadataColum != ECmDate && aMetadataColum != ECmFileSize && 
-                aMetadataColum != ECmDuration )
-                {            
-                iClause = iClause->ReAllocL( iClause->Length() + 
-                                             KCmSqlGreater().Length() + 
-                                             KCmSqlAppendInteger().Length() );
-                iClause->Des().Append( KCmSqlGreater() );
-                iClause->Des().Append( KCmSqlAppendInteger() );
-                }
-            else
-                {
-                iClause = iClause->ReAllocL( iClause->Length() + 
-                    KCmSqlGreater().Length() + KCmSqlAppendLong().Length() );
-                iClause->Des().Append( KCmSqlGreater() );                
-                }    
-            break;
-            } 
-        case ECmSmaller:
-            {
-            if( aMetadataColum != ECmDate && aMetadataColum != ECmFileSize &&
-                aMetadataColum != ECmDuration )
-                {
-                iClause = iClause->ReAllocL( iClause->Length() + 
-                                             KCmSqlSmaller().Length() + 
-                                             KCmSqlAppendInteger().Length() );
-                iClause->Des().Append( KCmSqlSmaller() );
-                iClause->Des().Append( KCmSqlAppendInteger() );
-                }
-            else
-                {
-                iClause = iClause->ReAllocL( iClause->Length() + 
-                    KCmSqlSmaller().Length() + KCmSqlAppendLong().Length() );
-                iClause->Des().Append( KCmSqlSmaller() );               
-                }                  
-            break;
-            } 
-        case ECmConsistOf:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlLike().Length() + KCmSqlConsistOf().Length() );
-            iClause->Des().Append( KCmSqlLike() );
-            iClause->Des().Append( KCmSqlConsistOf() );             
-            break;
-            } 
-        case ECmBeginsWith:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlLike().Length() + KCmSqlBeginsWith().Length() );
-            iClause->Des().Append( KCmSqlLike() );
-            iClause->Des().Append( KCmSqlBeginsWith() );              
-            break;
-            }
-        case ECmEndsWith:
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlLike().Length() + KCmSqlEndsWith().Length() );
-            iClause->Des().Append( KCmSqlLike() );
-            iClause->Des().Append( KCmSqlEndsWith() );              
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }    
-    }
-    
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatProperyQueryL
-// ---------------------------------------------------------------------------
-//     
-void CCmSqlDbClause::FormatProperyQueryL( TCmMetadataField aField,
-    TCmMediaType aMedia )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatProperyQueryL"));    
-    
-    if( iClause )
-        {
-        delete iClause;
-        iClause = NULL;
-        }
-    
-    switch( aField )
-        {
-        case ECmArtist:
-            {           
-            iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() + 
-                KCmSqlArtist().Length() );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlArtist );
-            break;
-            }        
-        case ECmAlbum:
-            {
-            iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() + 
-                KCmSqlAlbum().Length() );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlAlbum );           
-            break;
-            }        
-        case ECmGenre:
-            {
-            iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() + 
-                KCmSqlGenre().Length() );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlGenre );
-            break;
-            }        
-        case ECmUpnpClass:
-            {
-            iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() + 
-                KCmSqlUpnpclass().Length() );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlUpnpclass );
-            break;
-            }
-        case ECmTitle:
-            {           
-            iClause = HBufC8::NewL( KCmSqlSelectTitleAndId().Length() + 
-                sizeof( aMedia ) );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectTitleAndId, aMedia );                 
-            break;
-            }
-        case ECmResolution:
-            {
-            iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() + 
-                KCmSqlResolutions().Length() );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlResolutions );
-            break;
-            }
-        case ECmProfileId:
-            {
-            iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() + 
-                KCmSqlResolutions().Length() );
-            TPtr8 ptr( iClause->Des() );    
-            ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlUpnpProfiles );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatProfileFiltersL
-// ---------------------------------------------------------------------------
-//     
-void CCmSqlDbClause::FormatProfileFiltersL(  )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatProfileFiltersL"));    
-    
-    if( iProfileFilters.Count() )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlAnd().Length() );
-        iClause->Des().Append( KCmSqlAnd() );
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlLeftBracket().Length() );
-        iClause->Des().Append( KCmSqlLeftBracket() );                
-        }
-    for( TInt k = 0; k < iProfileFilters.Count(); k++ )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlLeftBracket().Length() );
-        iClause->Des().Append( KCmSqlLeftBracket() );                
-
-        iClause = iClause->ReAllocL( iClause->Length() + 
-                                     KCmSqlFilterUpnpProfileId().Length() + 
-                                     sizeof( iProfileFilters[k] ) );
-        iClause->Des().Append( KCmSqlFilterUpnpProfileId );
-        iClause->Des().AppendNum( iProfileFilters[k] );
-        
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlRightBracket().Length() );
-        iClause->Des().Append( KCmSqlRightBracket() );          
-        if( k < iProfileFilters.Count() - 1 )
-            {
-            iClause = iClause->ReAllocL( iClause->Length() + 
-                KCmSqlAnd().Length() );
-            iClause->Des().Append( KCmSqlAnd() );            
-            }
-        }
-    if( iProfileFilters.Count() )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + 
-            KCmSqlRightBracket().Length() );
-        iClause->Des().Append( KCmSqlRightBracket() );                
-        }
-    iClause = iClause->ReAllocL( iClause->Length() + 
-        KCmSqlRightBracket().Length() );
-    iClause->Des().Append( KCmSqlRightBracket() );          
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatPropertyFilterL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatPropertyFilterL( 
-    CCmSqlPropertyCollector& aPropertys )
-    {    
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatPropertyFilterL"));    
-    
-    CCmSqlPropertyContainer* container = NULL;
-    HBufC8* temp = NULL;   
-    for( TInt i = 0; i < aPropertys.PropertyContainerCount(); i++ )
-        {
-        container = aPropertys.PropertyContainer( i );        
-        switch( container->Type() )
-            {
-            case ECmTitle:
-                {
-                AddPropertyFilterL( *container, 
-                    KCmSqlSelectTitle(), temp );                   
-                break;
-                }
-            case ECmArtist:
-                {
-                AddPropertyFilterL( *container, 
-                    KCmSqlSelectArtistById(), temp );                               
-                break;
-                }
-            case ECmAlbum:
-                {
-                AddPropertyFilterL( *container, 
-                    KCmSqlSelectAlbumById(), temp );                                
-                break;
-                }
-            case ECmGenre:
-                {
-                AddPropertyFilterL( *container, 
-                    KCmSqlSelectGenreById(), temp );
-                break;
-                }
-            default:
-                {
-                break;
-                }                                                                
-            }
-        container = NULL;
-        }
-    
-    if( temp )
-        {
-        iClause = iClause->ReAllocL( iClause->Length() + temp->Length() );
-        iClause->Des().Append( *temp );
-        delete temp;        
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::AddPropertyFilterL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::AddPropertyFilterL( 
-    CCmSqlPropertyContainer& aContainer, const TDesC8& aField, 
-    HBufC8*& aClause )
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::AddPropertyFilterL"));    
-    
-    if( aClause && aContainer.PropertyItemCount() )
-        {
-        aClause = aClause->ReAllocL( aClause->Length() + 
-            KCmSqlAnd().Length() + ( 2 * KCmSqlSpace().Length() ) );
-        aClause->Des().Append( KCmSqlSpace() );
-        aClause->Des().Append( KCmSqlAnd() );
-        aClause->Des().Append( KCmSqlSpace() );                       
-        }
-    if( aContainer.PropertyItemCount() && !aClause )
-        {
-        aClause = KCmSqlAnd().AllocL();
-        }
-    if( aContainer.PropertyItemCount() && aClause )
-        {
-        aClause = aClause->ReAllocL( aClause->Length() +
-        		KCmSqlLeftBracket().Length() );
-        aClause->Des().Append( KCmSqlLeftBracket );
-        
-        for( TInt j = 0; j < aContainer.PropertyItemCount() ; j++ )
-            {
-            aClause = aClause->ReAllocL( aClause->Length() + 
-                KCmSqlSelectTitle().Length() + 
-                sizeof( aContainer.PropertyItem( j )->Id() ) );
-            aClause->Des().Append( aField );
-            aClause->Des().AppendNum( 
-                aContainer.PropertyItem( j )->Id() );
-           if( j < aContainer.PropertyItemCount() - 1 )
-                {
-                aClause = aClause->ReAllocL( aClause->Length() + 
-                    KCmSqlOr().Length() + ( 2 * KCmSqlSpace().Length() ) );
-                aClause->Des().Append( KCmSqlSpace() );
-                aClause->Des().Append( KCmSqlOr() );
-                aClause->Des().Append( KCmSqlSpace() );             
-                }                                                         
-            }
-        
-        aClause = aClause->ReAllocL( aClause->Length() +
-        		KCmSqlRightBracket().Length() );
-        aClause->Des().Append( KCmSqlRightBracket );
-        
-        for( TInt k = 0; k < aContainer.PropertyItemCount() ; k++ )
-            {                        
-            aContainer.DeletePropertyItem( k );
-            k--;
-            }
-        }
-    }
-    
-// ---------------------------------------------------------------------------
-// Default constructor
-// ---------------------------------------------------------------------------
-//    
-CCmSqlDbClause::CCmSqlDbClause()
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::CCmSqlDbClause"));    
-    }
- 
-// ---------------------------------------------------------------------------
-// ConstructL
-// ---------------------------------------------------------------------------
-//   
-void CCmSqlDbClause::ConstructL()
-    {
-    LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::ConstructL"));    
-    }    
-
-// End of file
-