contentpublishingsrv/contentpublishingutils/contentpublishingmap/src/cpublisherregistrymap.cpp
changeset 93 82b66994846c
parent 92 782e3408c2ab
child 94 dbb8300717f7
equal deleted inserted replaced
92:782e3408c2ab 93:82b66994846c
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  ?Description
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 #include <liwcommon.h>
       
    20 
       
    21 #include "cpserverdef.h"
       
    22 #include "cpublisherregistrymap.h"
       
    23 #include "cpglobals.h"
       
    24 #include "cpdebug.h"
       
    25 #include "cpssqlcommands.h"
       
    26 #include "cpsecuritypolicy.h"
       
    27 
       
    28 // ---------------------------------------------------------------------------
       
    29 // 
       
    30 // ---------------------------------------------------------------------------
       
    31 //
       
    32 
       
    33 CPublisherRegistryMap::CPublisherRegistryMap()
       
    34     {
       
    35 
       
    36     }
       
    37 
       
    38 // ---------------------------------------------------------------------------
       
    39 // 
       
    40 // ---------------------------------------------------------------------------
       
    41 //
       
    42 void CPublisherRegistryMap::ConstructL()
       
    43     {
       
    44     CCPLiwMap::ConstructL( );
       
    45     }
       
    46 
       
    47 // ---------------------------------------------------------------------------
       
    48 // 
       
    49 // ---------------------------------------------------------------------------
       
    50 //
       
    51 EXPORT_C CPublisherRegistryMap* CPublisherRegistryMap::NewL( )
       
    52     {
       
    53     CPublisherRegistryMap* self = CPublisherRegistryMap::NewLC( );
       
    54     CleanupStack::Pop( self );
       
    55     return self;
       
    56     }
       
    57 
       
    58 // ---------------------------------------------------------------------------
       
    59 // 
       
    60 // ---------------------------------------------------------------------------
       
    61 //
       
    62 EXPORT_C CPublisherRegistryMap* CPublisherRegistryMap::NewLC( )
       
    63     {
       
    64     CPublisherRegistryMap* self = new (ELeave) CPublisherRegistryMap();
       
    65     self->PushL();
       
    66     self->ConstructL( );
       
    67     return self;
       
    68     }
       
    69 
       
    70 // ---------------------------------------------------------------------------
       
    71 // 
       
    72 // ---------------------------------------------------------------------------
       
    73 //
       
    74 CPublisherRegistryMap::~CPublisherRegistryMap()
       
    75     {
       
    76     }
       
    77 
       
    78 // ---------------------------------------------------------------------------
       
    79 // 
       
    80 // ---------------------------------------------------------------------------
       
    81 //
       
    82 TInt32 CPublisherRegistryMap::AddL( RSqlDatabase aSqlDb, 
       
    83                                    CLiwDefaultList* aNotificationList ) const
       
    84     {
       
    85     CP_DEBUG( _L8("CPublisherRegistryMap::AddL") );
       
    86     TInt32 id( 0);
       
    87     if ( !GetProperty( KId, id ) )
       
    88         {
       
    89         FetchIdL( aSqlDb, KSQLFetchIdFromRegistry, id );
       
    90         }
       
    91     if ( id )
       
    92         {
       
    93         UpdateL( aSqlDb, id , aNotificationList );
       
    94         }
       
    95     else
       
    96         {
       
    97         id = AddToDbL( aSqlDb , aNotificationList );       
       
    98         }
       
    99     return id;
       
   100 
       
   101     }
       
   102 
       
   103 // ---------------------------------------------------------------------------
       
   104 // 
       
   105 // ---------------------------------------------------------------------------
       
   106 //
       
   107 TUint CPublisherRegistryMap::GetListL( RSqlDatabase aSqlDb,
       
   108     CLiwGenericParamList* aList, RArray<TInt32>& aItemsToDelete ) const
       
   109     {
       
   110     CP_DEBUG( _L8("CPublisherRegistryMap::GetListL") );
       
   111     aItemsToDelete.Reset( ); //no items to delete
       
   112     return CCPLiwMap::GetListL( aSqlDb, KSQLGetListFromRegistry, aList,
       
   113         aItemsToDelete );
       
   114     }
       
   115 
       
   116 // ---------------------------------------------------------------------------
       
   117 // 
       
   118 // ---------------------------------------------------------------------------
       
   119 //
       
   120 void CPublisherRegistryMap::RemoveL( RSqlDatabase aSqlDb, 
       
   121                                      CLiwDefaultList* aNotificationList ) const
       
   122     {
       
   123     CP_DEBUG( _L8("CContentMap::RemoveL") );
       
   124     //get ids of items to be deleted 
       
   125     GetIdsOfRemovedEntriesL( aSqlDb, KSQLGetIdsRegistry, aNotificationList );
       
   126     CCPLiwMap::RemoveL( aSqlDb, KSQLDeleteFromRegistry );
       
   127     }
       
   128 
       
   129 // ---------------------------------------------------------------------------
       
   130 // 
       
   131 // ---------------------------------------------------------------------------
       
   132 //  
       
   133 void CPublisherRegistryMap::SaveQueryResultsL( RSqlStatement& aStmt,
       
   134     CLiwGenericParamList& aList, RArray<TInt32>& /*aItemsToDelete*/) const
       
   135     {
       
   136     CP_DEBUG( _L8("CPublisherRegistryMap::SaveQueryResultsL") );
       
   137     TInt idIndex = ColumnIndexL( aStmt,  KColumnId );
       
   138     TInt publisherIndex = ColumnIndexL( aStmt,  KColumnPublisher );
       
   139     TInt contentIndex = ColumnIndexL( aStmt,  KColumnContent_type );
       
   140     TInt content_idIndex = ColumnIndexL( aStmt,  KColumnContent_id );
       
   141     TInt flagIndex = ColumnIndexL( aStmt,  KColumnFlag );
       
   142     TInt acl_Index = ColumnIndexL( aStmt,  KColumnAccessList );
       
   143     TInt data_Index = ColumnIndexL( aStmt,  KColumnData );
       
   144     TInt action_Index = ColumnIndexL( aStmt,  KColumnAction );
       
   145 
       
   146     TBool aclCheckFailed( EFalse );
       
   147     while ( aStmt.Next( ) == KSqlAtRow )
       
   148         {
       
   149         TBool securityOk(EFalse);
       
   150         if( iPolicy )
       
   151             {
       
   152             TPtrC8 acl;
       
   153             User::LeaveIfError( aStmt.ColumnBinary( acl_Index, acl ) );
       
   154             securityOk = iPolicy->CheckSecurityL( acl , 
       
   155                      		CCPSecurityPolicy::ERead );
       
   156             if ( !securityOk )
       
   157              	{
       
   158              	aclCheckFailed = ETrue;
       
   159              	}
       
   160             }            
       
   161             
       
   162         if( !iPolicy || securityOk ) 
       
   163            	{
       
   164 			TInt32 id = aStmt.ColumnInt( idIndex ) ;
       
   165 			TPtrC publisher;
       
   166 			User::LeaveIfError( aStmt.ColumnText( publisherIndex, 
       
   167 					publisher ) );
       
   168 			TPtrC content_type;
       
   169 			User::LeaveIfError( aStmt.ColumnText( contentIndex, 
       
   170 					content_type ) );
       
   171 			TPtrC content_id;
       
   172 			User::LeaveIfError( aStmt.ColumnText( content_idIndex,
       
   173 					content_id ));
       
   174 			TInt32 flag_db = aStmt.ColumnInt( flagIndex );
       
   175 			TInt32 flag_map(0);
       
   176 		
       
   177 			TUint filter = GetFilterL();
       
   178 			GetProperty( KFlag, flag_map );
       
   179 				
       
   180 			if (!(filter & EFlag) || ( (flag_db & flag_map)==flag_map))
       
   181 				{
       
   182 				CLiwDefaultMap* targetMap = CLiwDefaultMap::NewLC();
       
   183 				targetMap->InsertL( KId , TLiwVariant( id ) );
       
   184 				targetMap->InsertL( KPublisherId , TLiwVariant( publisher ) );
       
   185 				targetMap->InsertL( KContentType , TLiwVariant( content_type ) );
       
   186 				targetMap->InsertL( KContentId , TLiwVariant( content_id ) );
       
   187 				targetMap->InsertL( KFlag , TLiwVariant( flag_db ) );
       
   188 				TPtrC8 data;
       
   189 				User::LeaveIfError( aStmt.ColumnBinary( data_Index, data ) );
       
   190 				TPtrC8 action;
       
   191 				User::LeaveIfError( aStmt.ColumnBinary( action_Index, action ) );
       
   192 				if( data.Ptr() )
       
   193 					{
       
   194 					targetMap->InsertL( KDataMap , TLiwVariant( data ) );
       
   195 					}
       
   196 				if( action.Ptr() )
       
   197 					{
       
   198 					targetMap->InsertL( KActionMap , TLiwVariant( action ) );
       
   199 					}
       
   200 				TLiwGenericParam result( KListMap, TLiwVariant( targetMap ));
       
   201 				aList.AppendL( result );
       
   202 				CleanupStack::PopAndDestroy( targetMap );                
       
   203 				}
       
   204             }//if
       
   205         }//while
       
   206     //leave only if ACL security check for all items failed
       
   207 	if ( aclCheckFailed && !aList.Count())
       
   208 		{
       
   209 		User::Leave( KErrPermissionDenied );
       
   210 		}    
       
   211     }
       
   212 
       
   213 
       
   214 // ---------------------------------------------------------------------------
       
   215 // 
       
   216 // ---------------------------------------------------------------------------
       
   217 //  
       
   218 TInt32 CPublisherRegistryMap::AddToDbL( RSqlDatabase aSqlDb, 
       
   219     CLiwDefaultList* aNotificationList ) const
       
   220     {
       
   221     CP_DEBUG( _L8("CPublisherRegistryMap::AddToDbL") );
       
   222     RSqlStatement stmt;
       
   223     CleanupClosePushL( stmt );
       
   224     PrepareStmtforAddL( aSqlDb, stmt, KSQLInsertToRegistry );
       
   225 
       
   226     TInt dataIndex = stmt.ParameterIndex( KSQLData );
       
   227     TInt actionIndex = stmt.ParameterIndex( KSQLAction );
       
   228     TInt aclIndex = stmt.ParameterIndex( KSQLAccessList );
       
   229     
       
   230     RBuf8 data;
       
   231     data.CleanupClosePushL();
       
   232     GetPropertyL( KDataMap, data ) ;
       
   233     BindBinaryL( stmt, dataIndex, data );
       
   234     RBuf8 action;
       
   235     action.CleanupClosePushL();
       
   236     GetPropertyL( KActionMap, action ) ;
       
   237     BindBinaryL( stmt, actionIndex, action );
       
   238     
       
   239     RBuf8 acl;
       
   240     acl.CleanupClosePushL();
       
   241     if( !GetPropertyL( KAccessList , acl ) )
       
   242         {
       
   243         iPolicy->GetDefaultSecurityL( acl );
       
   244         }
       
   245     BindBinaryL( stmt, aclIndex, acl );
       
   246     
       
   247     if ( stmt.Exec( ) <= 0 )
       
   248         {
       
   249         User::Leave( KErrGeneral );
       
   250         }
       
   251     
       
   252     TSqlScalarFullSelectQuery id_query(aSqlDb);
       
   253     TInt32 ret( 0);
       
   254     ret = id_query.SelectIntL( KSQLGetLastInsertId );
       
   255     
       
   256     if ( aNotificationList )
       
   257         {
       
   258         RBuf publisher;
       
   259         publisher.CleanupClosePushL();   
       
   260         RBuf contentType;
       
   261         contentType.CleanupClosePushL();   
       
   262         RBuf contentId;
       
   263         contentId.CleanupClosePushL(); 
       
   264         GetPropertyL( KPublisherId, publisher ) ;
       
   265         GetPropertyL( KContentType, contentType );
       
   266         GetPropertyL( KContentId, contentId );
       
   267         CLiwDefaultMap* changeInfoMap = CLiwDefaultMap::NewLC( );
       
   268         changeInfoMap->InsertL( KId, TLiwVariant( ret ) );
       
   269         changeInfoMap->InsertL( KType, TLiwVariant( KPublisher ) );
       
   270         changeInfoMap->InsertL( KPublisherId, TLiwVariant( publisher ) );
       
   271         changeInfoMap->InsertL( KContentType, TLiwVariant( contentType ) );
       
   272         changeInfoMap->InsertL( KContentId, TLiwVariant( contentId ) );
       
   273         changeInfoMap->InsertL( KOperation, TLiwVariant( KOperationAdd ) );
       
   274         TInt32 flag( 0 );
       
   275         GetProperty( KFlag, flag );
       
   276         changeInfoMap->InsertL( KFlag, TLiwVariant( flag ) );
       
   277         aNotificationList->AppendL( TLiwVariant( changeInfoMap ) );
       
   278         CleanupStack::PopAndDestroy( changeInfoMap ) ;
       
   279         CleanupStack::PopAndDestroy( &contentId ) ;
       
   280         CleanupStack::PopAndDestroy( &contentType ) ;
       
   281         CleanupStack::PopAndDestroy( &publisher ) ;
       
   282         }
       
   283 
       
   284     CleanupStack::PopAndDestroy( &acl );  
       
   285     CleanupStack::PopAndDestroy( &action );  
       
   286     CleanupStack::PopAndDestroy( &data );  
       
   287     CleanupStack::PopAndDestroy( &stmt ) ;
       
   288 
       
   289     return ret;
       
   290     }
       
   291 
       
   292 // ---------------------------------------------------------------------------
       
   293 // 
       
   294 // ---------------------------------------------------------------------------
       
   295 // 
       
   296 void CPublisherRegistryMap::AppendFilterL( RBuf& aQuery, 
       
   297                                            TUint& aFilter ) const
       
   298     {
       
   299     CP_DEBUG( _L8("CPublisherRegistryMap::AppendFilterL") );
       
   300     if( aFilter & EFlag )
       
   301         {
       
   302         aQuery.ReAllocL( aQuery.Length() + KSQLGetFlag().Length() + 
       
   303         		KWhere().Length() );
       
   304         aQuery.Append( KWhere );
       
   305         aQuery.Append( KSQLGetFlag );
       
   306         }
       
   307     else
       
   308         {
       
   309         CCPLiwMap::AppendFilterL( aQuery, aFilter );
       
   310         }
       
   311 	} 
       
   312 	   
       
   313 // ---------------------------------------------------------------------------
       
   314 // 
       
   315 // ---------------------------------------------------------------------------
       
   316 // 
       
   317 void CPublisherRegistryMap::AppendSortL( RBuf& aQuery,
       
   318     const TCPSortOrder& aSort ) const
       
   319     {
       
   320     CP_DEBUG( _L8("CPublisherRegistryMap::AppendSortL") );
       
   321     switch ( aSort )
       
   322         {
       
   323         case ECPContentId:
       
   324             aQuery.ReAllocL( aQuery.Length( ) + KSQLOrderContentId().Length( ) );
       
   325             aQuery.Append( KSQLOrderContentId );
       
   326             break;
       
   327         case ECPContent:
       
   328             aQuery.ReAllocL( aQuery.Length( ) + KSQLOrderContent().Length( ) );
       
   329             aQuery.Append( KSQLOrderContent );
       
   330             break;
       
   331         case ECPPublisher:
       
   332             aQuery.ReAllocL( aQuery.Length( ) + KSQLOrderPublisher().Length( ) );
       
   333             aQuery.Append( KSQLOrderPublisher );
       
   334             break;
       
   335         default:
       
   336             aQuery.ReAllocL( aQuery.Length( ) + KSQLOrderRecent().Length( ) );
       
   337             aQuery.Append( KSQLOrderRecent );
       
   338             break;
       
   339         }
       
   340     }
       
   341 
       
   342 // ---------------------------------------------------------------------------
       
   343 // 
       
   344 // ---------------------------------------------------------------------------
       
   345 //  
       
   346 void CPublisherRegistryMap::PrepareStmtforAddL( RSqlDatabase aSqlDb, 
       
   347 	                                  RSqlStatement& aStmt , 
       
   348                                       const TDesC& aQuery ) const
       
   349     {
       
   350     CP_DEBUG( _L8("CPublisherRegistryMap::PrepareStmtforAddL") );
       
   351     CCPLiwMap::PrepareStmtforAddL( aSqlDb,aStmt,aQuery);
       
   352     TInt32 flag( 0x00000000 );
       
   353     GetProperty( KFlag, flag );
       
   354     TInt flagIndex = aStmt.ParameterIndex( KSQLFlag );
       
   355     if (flagIndex != KErrNotFound)
       
   356         {
       
   357         BindIntL( aStmt, flagIndex , flag );	        
       
   358         }
       
   359     }
       
   360 
       
   361 // ---------------------------------------------------------------------------
       
   362 // 
       
   363 // ---------------------------------------------------------------------------
       
   364 //  
       
   365 void CPublisherRegistryMap::PrepareStmtforUpdateL( RSqlDatabase aSqlDb,
       
   366     RSqlStatement& aStmt, TInt32 aId ) const
       
   367     {
       
   368     CP_DEBUG( _L8("CPublisherRegistryMap::PrepareStmtforUpdateL") );
       
   369     TInt32 flag; 
       
   370     TBool isFlagInfo = GetProperty( KFlag, flag );    
       
   371     
       
   372     TBool isParameter(EFalse);
       
   373     RBuf query;
       
   374     query.CleanupClosePushL();
       
   375     query.CreateL( KSQLUpdateRegistry().Length( ) );
       
   376     query.Append( KSQLUpdateRegistry );
       
   377     RBuf8 data;
       
   378     data.CleanupClosePushL();
       
   379     if ( GetPropertyL( KDataMap, data ) )
       
   380         {
       
   381         query.ReAllocL( query.Length( ) + KSQLUpdateData().Length( ) );
       
   382         query.Append( KSQLUpdateData );
       
   383         isParameter = ETrue;
       
   384         }
       
   385     RBuf8 action;
       
   386     action.CleanupClosePushL();
       
   387     if ( GetPropertyL( KActionMap, action ) )
       
   388         {
       
   389         if ( isParameter )
       
   390             {
       
   391             query.ReAllocL( query.Length( ) + KComma().Length( ) );
       
   392             query.Append( KComma );
       
   393             }
       
   394         query.ReAllocL( query.Length( ) + KSQLUpdateAction().Length( ) );
       
   395         query.Append( KSQLUpdateAction );
       
   396         isParameter = ETrue;
       
   397         }
       
   398     if( isFlagInfo )
       
   399        {
       
   400        if(isParameter)
       
   401            {
       
   402            query.ReAllocL( query.Length() + KComma().Length());
       
   403            query.Append( KComma );
       
   404            }        
       
   405        query.ReAllocL( query.Length() + KSQLUpdateFlag().Length());
       
   406        query.Append( KSQLUpdateFlag );
       
   407        isParameter = ETrue;
       
   408        } 
       
   409     if( !isParameter ) User::Leave( KErrPathNotFound );
       
   410     query.ReAllocL( query.Length( ) + KSQLUpdateWhere().Length( ) );
       
   411     query.Append( KSQLUpdateWhere );
       
   412     User::LeaveIfError( aStmt.Prepare( aSqlDb, query ) );
       
   413     TInt dataId = aStmt.ParameterIndex( KSQLId );
       
   414     BindIntL( aStmt, dataId, aId );
       
   415 
       
   416     if ( data.Length( ) )
       
   417         {
       
   418         TInt dataIndex = aStmt.ParameterIndex( KSQLData );
       
   419         BindBinaryL( aStmt,dataIndex, data );
       
   420         }
       
   421     if ( action.Length( ) )
       
   422         {
       
   423         TInt actionIndex = aStmt.ParameterIndex( KSQLAction );
       
   424         BindBinaryL( aStmt, actionIndex, action );
       
   425         }
       
   426     if( isFlagInfo )
       
   427         {
       
   428         TInt flagIndex = aStmt.ParameterIndex( KSQLFlag );
       
   429         BindIntL( aStmt, flagIndex , flag );	        
       
   430         }
       
   431     CleanupStack::PopAndDestroy( &action );
       
   432     CleanupStack::PopAndDestroy( &data );
       
   433     CleanupStack::PopAndDestroy( &query );
       
   434     }    	
       
   435     
       
   436 // ---------------------------------------------------------------------------
       
   437 // 
       
   438 // ---------------------------------------------------------------------------
       
   439 //  
       
   440 void CPublisherRegistryMap::UpdateL( RSqlDatabase aSqlDb, TInt32 aId,
       
   441     CLiwDefaultList* aNotificationList) const
       
   442     {
       
   443     CP_DEBUG( _L8("CPublisherRegistryMap::UpdateL") );
       
   444     RSqlStatement stmt;
       
   445     CleanupClosePushL( stmt );
       
   446     CLiwDefaultMap* changeInfoMap = CLiwDefaultMap::NewLC( );
       
   447     FetchIdsL( aId, KSQLFetchIdsFromRegistry, changeInfoMap, aSqlDb );
       
   448     if ( aNotificationList )
       
   449         {
       
   450         changeInfoMap->InsertL( KType, TLiwVariant( KPublisher ) );
       
   451         TInt32 flag( 0 );
       
   452         GetProperty( KFlag, flag );
       
   453         changeInfoMap->InsertL( KFlag, TLiwVariant( flag ) );
       
   454         aNotificationList->AppendL( TLiwVariant( changeInfoMap ) );
       
   455         }
       
   456     CleanupStack::PopAndDestroy( changeInfoMap ) ;        
       
   457     PrepareStmtforUpdateL( aSqlDb, stmt, aId );
       
   458     if ( stmt.Exec( ) <= 0 )
       
   459         {
       
   460         User::Leave( KErrNotFound );
       
   461         }
       
   462     CleanupStack::PopAndDestroy( &stmt ) ;
       
   463     }
       
   464 
       
   465 // ---------------------------------------------------------------------------
       
   466 // 
       
   467 // ---------------------------------------------------------------------------
       
   468 //
       
   469 void CPublisherRegistryMap::IsValidForDeleteL() const
       
   470     {
       
   471     TInt err( KErrNone );
       
   472     TInt32 id( 0 );
       
   473     if( GetProperty( KId, id ) && ( id < 1 ) )
       
   474         {
       
   475         err = KErrArgument;
       
   476         }
       
   477     else if( !IsId() && PropertyExists( KId ) )
       
   478         {
       
   479         err = KErrBadName;
       
   480         }
       
   481     
       
   482     if( err == KErrNone && !IsFlag() && !IsId( ) && !( IsPublisherNameL( ) 
       
   483             || IsContentTypeL( ) || IsContentIdL() ) )
       
   484         {
       
   485         err = KErrPathNotFound;
       
   486         }
       
   487     
       
   488     if( err != KErrNone )
       
   489         {
       
   490         User::Leave( err );
       
   491         }
       
   492     }
       
   493 
       
   494 // ---------------------------------------------------------------------------
       
   495 // 
       
   496 // ---------------------------------------------------------------------------
       
   497 //
       
   498 void CPublisherRegistryMap::IsValidForGetListL() const
       
   499     {
       
   500     TInt err( KErrNone );
       
   501     TInt32 id( 0 );
       
   502     if( GetProperty( KId, id ) && ( id < 1 ) )
       
   503         {
       
   504         err = KErrArgument;
       
   505         }
       
   506     else if( !IsId() && PropertyExists( KId ) )
       
   507         {
       
   508         err = KErrBadName;
       
   509         }
       
   510     
       
   511     if( err != KErrNone )
       
   512         {
       
   513         User::Leave( err );
       
   514         }
       
   515     }
       
   516 // ---------------------------------------------------------------------------
       
   517 // 
       
   518 // ---------------------------------------------------------------------------
       
   519 //                  
       
   520 TBool CPublisherRegistryMap::ActivateActionSupport( ) const
       
   521     {
       
   522     return ETrue;
       
   523     }
       
   524     
       
   525 // ---------------------------------------------------------------------------
       
   526 // 
       
   527 // ---------------------------------------------------------------------------
       
   528 //                  
       
   529 TBool CPublisherRegistryMap::GetActivateInfo( ) const
       
   530     {
       
   531     TInt32 flag;
       
   532     GetProperty( KFlag, flag );
       
   533     TBool activate = flag & EActivate;    
       
   534     return activate;
       
   535     }    
       
   536 
       
   537 	
       
   538 // ---------------------------------------------------------------------------
       
   539 // 
       
   540 // ---------------------------------------------------------------------------
       
   541 //                  
       
   542 void CPublisherRegistryMap::FillChangeInfoMapL( RSqlStatement& aStmt, 
       
   543 		CLiwDefaultMap* aMap )const
       
   544 	{
       
   545 	CCPLiwMap::FillChangeInfoMapL(aStmt, aMap);
       
   546     TInt flagIndex = ColumnIndexL( aStmt,  KColumnFlag );
       
   547 	TInt32 flag_db = aStmt.ColumnInt( flagIndex );
       
   548     aMap->InsertL( KFlag , TLiwVariant( flag_db ) ); 
       
   549 	}
       
   550