contentstorage/castorage/inc/casqlquerycreator.h
author hgs
Tue, 23 Mar 2010 23:17:02 +0200
changeset 85 7feec50967db
child 66 32469d7d46ff
permissions -rw-r--r--
201003_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
85
7feec50967db 201003_02
hgs
parents:
diff changeset
     1
/*
7feec50967db 201003_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
7feec50967db 201003_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
7feec50967db 201003_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
7feec50967db 201003_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
7feec50967db 201003_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
7feec50967db 201003_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
7feec50967db 201003_02
hgs
parents:
diff changeset
     8
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
7feec50967db 201003_02
hgs
parents:
diff changeset
    11
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    12
 * Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    13
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    14
 * Description: CASqlQueryCreator declaration
7feec50967db 201003_02
hgs
parents:
diff changeset
    15
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    16
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    17
7feec50967db 201003_02
hgs
parents:
diff changeset
    18
#ifndef CASQLQUERYCREATOR_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    19
#define CASQLQUERYCREATOR_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    20
7feec50967db 201003_02
hgs
parents:
diff changeset
    21
// INCLUDES
7feec50967db 201003_02
hgs
parents:
diff changeset
    22
#include <e32std.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    23
#include "cainnerquery.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    24
7feec50967db 201003_02
hgs
parents:
diff changeset
    25
// CLASS DECLARATION
7feec50967db 201003_02
hgs
parents:
diff changeset
    26
7feec50967db 201003_02
hgs
parents:
diff changeset
    27
class CCaSqlQuery;
7feec50967db 201003_02
hgs
parents:
diff changeset
    28
class CCaInnerEntry;
7feec50967db 201003_02
hgs
parents:
diff changeset
    29
class CCaInnerQuery;
7feec50967db 201003_02
hgs
parents:
diff changeset
    30
class RSqlDatabase;
7feec50967db 201003_02
hgs
parents:
diff changeset
    31
class TCaOperationParams;
7feec50967db 201003_02
hgs
parents:
diff changeset
    32
7feec50967db 201003_02
hgs
parents:
diff changeset
    33
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
    34
 *  @ingroup group_catorage.
7feec50967db 201003_02
hgs
parents:
diff changeset
    35
 *  CaSqlQueryCreator Helper class which prepares sql statements for 
7feec50967db 201003_02
hgs
parents:
diff changeset
    36
 *  execution.
7feec50967db 201003_02
hgs
parents:
diff changeset
    37
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    38
class CaSqlQueryCreator
7feec50967db 201003_02
hgs
parents:
diff changeset
    39
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    40
public:
7feec50967db 201003_02
hgs
parents:
diff changeset
    41
    
7feec50967db 201003_02
hgs
parents:
diff changeset
    42
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    43
     * The icon types.
7feec50967db 201003_02
hgs
parents:
diff changeset
    44
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    45
    enum TIconType
7feec50967db 201003_02
hgs
parents:
diff changeset
    46
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
    47
        ENullIcon,
7feec50967db 201003_02
hgs
parents:
diff changeset
    48
        ENullIconToRemove,
7feec50967db 201003_02
hgs
parents:
diff changeset
    49
        EProperIcon
7feec50967db 201003_02
hgs
parents:
diff changeset
    50
        };
7feec50967db 201003_02
hgs
parents:
diff changeset
    51
7feec50967db 201003_02
hgs
parents:
diff changeset
    52
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    53
     * Creates sql queries to be used to perform an add or 
7feec50967db 201003_02
hgs
parents:
diff changeset
    54
     * update operation on the database.
7feec50967db 201003_02
hgs
parents:
diff changeset
    55
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
    56
     * @param aEntry The entry to be added or updated in the database.
7feec50967db 201003_02
hgs
parents:
diff changeset
    57
     * @param aList A list to fill in with queries neccessary for the operation.
7feec50967db 201003_02
hgs
parents:
diff changeset
    58
     * @param iSqlDb The handle to the database needed for 
7feec50967db 201003_02
hgs
parents:
diff changeset
    59
     * the created queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
    60
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    61
    static void CreateAddQueryL( CCaInnerEntry* aEntry, RPointerArray<
7feec50967db 201003_02
hgs
parents:
diff changeset
    62
            CCaSqlQuery>& aSqlQuery, RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
    63
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    64
     * Creates an sql query to fetch data from the database.
7feec50967db 201003_02
hgs
parents:
diff changeset
    65
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
    66
     * @param aQuery The query object which specifies 
7feec50967db 201003_02
hgs
parents:
diff changeset
    67
     * the type of data to be fetched.
7feec50967db 201003_02
hgs
parents:
diff changeset
    68
     * @param aSqlQuery The sql query created to select the data.
7feec50967db 201003_02
hgs
parents:
diff changeset
    69
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    70
    static void CreateGetEntriesQueryL( const CCaInnerQuery* aQuery,
7feec50967db 201003_02
hgs
parents:
diff changeset
    71
            CCaSqlQuery* aSqlQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
    72
7feec50967db 201003_02
hgs
parents:
diff changeset
    73
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    74
     * Creates an sql query to fetch parents ids from the database.
7feec50967db 201003_02
hgs
parents:
diff changeset
    75
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
    76
     * @param aEntryIdArray array with entries ids.
7feec50967db 201003_02
hgs
parents:
diff changeset
    77
     * @param aSqlQuery The sql query created to select parents ids.
7feec50967db 201003_02
hgs
parents:
diff changeset
    78
     * @param aParentIdArray array with groups ids.
7feec50967db 201003_02
hgs
parents:
diff changeset
    79
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    80
    static void CreateGetParentsIdsQueryL(
7feec50967db 201003_02
hgs
parents:
diff changeset
    81
            const RArray<TInt>& aEntryIdArray, CCaSqlQuery* aSqlQuery,
7feec50967db 201003_02
hgs
parents:
diff changeset
    82
            const RArray<TInt>& aParentIdArray );
7feec50967db 201003_02
hgs
parents:
diff changeset
    83
7feec50967db 201003_02
hgs
parents:
diff changeset
    84
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    85
     * Creates an sql query to remove data from the database.
7feec50967db 201003_02
hgs
parents:
diff changeset
    86
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
    87
     * @param aList The result sql queries to be executed for remove.
7feec50967db 201003_02
hgs
parents:
diff changeset
    88
     * @param aSqlDb The handle to the database needed for 
7feec50967db 201003_02
hgs
parents:
diff changeset
    89
     * the created queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
    90
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    91
    static void CreateRemoveQueryL( RPointerArray<CCaSqlQuery>& aSqlQuery,
7feec50967db 201003_02
hgs
parents:
diff changeset
    92
            RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
    93
7feec50967db 201003_02
hgs
parents:
diff changeset
    94
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    95
     * Creates an sql query to fetch attributes for a given number of entries.
7feec50967db 201003_02
hgs
parents:
diff changeset
    96
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
    97
     * @param aIdEntryCount The number of entry ids for which to get 
7feec50967db 201003_02
hgs
parents:
diff changeset
    98
     * attributes.
7feec50967db 201003_02
hgs
parents:
diff changeset
    99
     * @param aSqlQuery The result fetch attributes query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   100
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   101
    static void CreateGetAttributesQueryL( const TInt aIdEntryCount,
7feec50967db 201003_02
hgs
parents:
diff changeset
   102
            CCaSqlQuery* aSqlQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   103
7feec50967db 201003_02
hgs
parents:
diff changeset
   104
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   105
     * Creates an sql query to modify touch data in the database.
7feec50967db 201003_02
hgs
parents:
diff changeset
   106
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   107
     * @param aSqlQuery The list of result queries needed for the touch 
7feec50967db 201003_02
hgs
parents:
diff changeset
   108
     * operation.
7feec50967db 201003_02
hgs
parents:
diff changeset
   109
     * @param aSqlDb The handle to the database needed for the created 
7feec50967db 201003_02
hgs
parents:
diff changeset
   110
     * queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
   111
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   112
    static void CreateTouchQueryL( RPointerArray<CCaSqlQuery>& aSqlQuery,
7feec50967db 201003_02
hgs
parents:
diff changeset
   113
            RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
   114
7feec50967db 201003_02
hgs
parents:
diff changeset
   115
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   116
     * Creates an sql query to organize data within a group.
7feec50967db 201003_02
hgs
parents:
diff changeset
   117
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   118
     * @param aEntryIds The array of entry ids which are organized.
7feec50967db 201003_02
hgs
parents:
diff changeset
   119
     * @param aParams The specific parameters describing the type of 
7feec50967db 201003_02
hgs
parents:
diff changeset
   120
     * organize to be done.
7feec50967db 201003_02
hgs
parents:
diff changeset
   121
     * @param aSqlDb The handle to the database needed for the created 
7feec50967db 201003_02
hgs
parents:
diff changeset
   122
     * queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
   123
     * @param aSqlRemoveQueries A result array of remove queries to be 
7feec50967db 201003_02
hgs
parents:
diff changeset
   124
     * executed.
7feec50967db 201003_02
hgs
parents:
diff changeset
   125
     * @param aSqlPrependInsertQueries A result array of prepend insert 
7feec50967db 201003_02
hgs
parents:
diff changeset
   126
     * queries queries to be executed.
7feec50967db 201003_02
hgs
parents:
diff changeset
   127
     * @param aSqlInsertQueries A result array of insert queries to be 
7feec50967db 201003_02
hgs
parents:
diff changeset
   128
     * executed.
7feec50967db 201003_02
hgs
parents:
diff changeset
   129
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   130
7feec50967db 201003_02
hgs
parents:
diff changeset
   131
    static TBool CreateOrganizeQueryL( const RArray<TInt>& aEntryIds,
7feec50967db 201003_02
hgs
parents:
diff changeset
   132
            TCaOperationParams aParams, RSqlDatabase& aSqlDb,
7feec50967db 201003_02
hgs
parents:
diff changeset
   133
            RPointerArray<CCaSqlQuery>& aSqlQueries );
7feec50967db 201003_02
hgs
parents:
diff changeset
   134
7feec50967db 201003_02
hgs
parents:
diff changeset
   135
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   136
     * Populates a given query with a list of ids.
7feec50967db 201003_02
hgs
parents:
diff changeset
   137
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   138
     * @param The number of ids with which to populate the query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   139
     * @param aQuery The query where to set the result query text.
7feec50967db 201003_02
hgs
parents:
diff changeset
   140
     * @param aSqlQueryText the sql text wich is populated 
7feec50967db 201003_02
hgs
parents:
diff changeset
   141
     * with ids (in place of %S sequence);
7feec50967db 201003_02
hgs
parents:
diff changeset
   142
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   143
    static void PopulateQueryWithIdListL( const TInt aIdEntryCount,
7feec50967db 201003_02
hgs
parents:
diff changeset
   144
            CCaSqlQuery* aQuery, const TDesC& aSqlQueryText );
7feec50967db 201003_02
hgs
parents:
diff changeset
   145
    
7feec50967db 201003_02
hgs
parents:
diff changeset
   146
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   147
     * Creates an sql query to get a list of of localizations entries.
7feec50967db 201003_02
hgs
parents:
diff changeset
   148
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   149
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   150
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   151
    static void CreateGetLocalizationsQueryL( CCaSqlQuery* aQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   152
7feec50967db 201003_02
hgs
parents:
diff changeset
   153
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   154
     * Creates an sql query to update db entry with localization.
7feec50967db 201003_02
hgs
parents:
diff changeset
   155
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   156
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   157
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   158
    static void CreateLocalizeEntryQueryL( CCaSqlQuery* aQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   159
    
7feec50967db 201003_02
hgs
parents:
diff changeset
   160
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   161
     * Creates an sql query to custom sort order.
7feec50967db 201003_02
hgs
parents:
diff changeset
   162
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   163
     * @param aEntryIds The array of entry ids.
7feec50967db 201003_02
hgs
parents:
diff changeset
   164
     * @param aSqlQuery A result array of insert queries to be executed.
7feec50967db 201003_02
hgs
parents:
diff changeset
   165
     * @param aSqlDb The handle to the database. 
7feec50967db 201003_02
hgs
parents:
diff changeset
   166
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   167
    static void CreateCustomSortQueryL( const RArray<TInt>& aEntryIds,
7feec50967db 201003_02
hgs
parents:
diff changeset
   168
            RPointerArray<CCaSqlQuery>& aSqlQuery,
7feec50967db 201003_02
hgs
parents:
diff changeset
   169
            RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
   170
    
7feec50967db 201003_02
hgs
parents:
diff changeset
   171
private:
7feec50967db 201003_02
hgs
parents:
diff changeset
   172
7feec50967db 201003_02
hgs
parents:
diff changeset
   173
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   174
     * Creates an sql query to add an icon into the icon table.
7feec50967db 201003_02
hgs
parents:
diff changeset
   175
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   176
     * @param aEntry the entry for which to add an icon.
7feec50967db 201003_02
hgs
parents:
diff changeset
   177
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   178
     * @param aSqlDb The handle to the database needed for 
7feec50967db 201003_02
hgs
parents:
diff changeset
   179
     * the created queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
   180
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   181
    static void CreateAddIconQueryL( CCaInnerEntry* aEntry,
7feec50967db 201003_02
hgs
parents:
diff changeset
   182
            CCaSqlQuery* aQuery, RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
   183
7feec50967db 201003_02
hgs
parents:
diff changeset
   184
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   185
     * Creates an sql query to add an icon for a new entry.
7feec50967db 201003_02
hgs
parents:
diff changeset
   186
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   187
     * @param aEntry the entry for which to add an icon.
7feec50967db 201003_02
hgs
parents:
diff changeset
   188
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   189
     * @param aSqlDb The handle to the database needed for 
7feec50967db 201003_02
hgs
parents:
diff changeset
   190
     * the created queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
   191
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   192
    static void CreateAddIconQueryForNewL( CCaInnerEntry* aEntry,
7feec50967db 201003_02
hgs
parents:
diff changeset
   193
            CCaSqlQuery* aQuery, RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
   194
7feec50967db 201003_02
hgs
parents:
diff changeset
   195
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   196
     * Creates an sql query to add an icon for an existing entry.
7feec50967db 201003_02
hgs
parents:
diff changeset
   197
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   198
     * @param aEntry the entry for which to add an icon.
7feec50967db 201003_02
hgs
parents:
diff changeset
   199
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   200
     * @param aSqlDb The handle to the database needed for 
7feec50967db 201003_02
hgs
parents:
diff changeset
   201
     * the created queries' member (RSqlStatement iStatement).
7feec50967db 201003_02
hgs
parents:
diff changeset
   202
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   203
    static void CreateAddIconQueryForUpdateL( CCaInnerEntry* aEntry,
7feec50967db 201003_02
hgs
parents:
diff changeset
   204
            CCaSqlQuery* aQuery, RSqlDatabase& aSqlDb );
7feec50967db 201003_02
hgs
parents:
diff changeset
   205
7feec50967db 201003_02
hgs
parents:
diff changeset
   206
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   207
     * Creates an sql query to update an icon for an existing entry.
7feec50967db 201003_02
hgs
parents:
diff changeset
   208
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   209
     * @param aEntry the entry for which to update an icon.
7feec50967db 201003_02
hgs
parents:
diff changeset
   210
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   211
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   212
    static void CreateUpdateIconQueryL( const CCaInnerEntry* aEntry,
7feec50967db 201003_02
hgs
parents:
diff changeset
   213
            CCaSqlQuery* aQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   214
7feec50967db 201003_02
hgs
parents:
diff changeset
   215
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   216
     * Creates an sql query to update an entry.
7feec50967db 201003_02
hgs
parents:
diff changeset
   217
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   218
     * @param aEntry The entry to be updated.
7feec50967db 201003_02
hgs
parents:
diff changeset
   219
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   220
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   221
    static void CreateUpdateQueryEntryL( const CCaInnerEntry* aEntry,
7feec50967db 201003_02
hgs
parents:
diff changeset
   222
            CCaSqlQuery* aQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   223
7feec50967db 201003_02
hgs
parents:
diff changeset
   224
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   225
     * Creates an sql query to get a list of entries by the given ids.
7feec50967db 201003_02
hgs
parents:
diff changeset
   226
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   227
     * @param aIdEntryCount The number of entries to fetch.
7feec50967db 201003_02
hgs
parents:
diff changeset
   228
     * @param aQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   229
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   230
    static void CreateGetEntriesQueryByIdL( const TInt aIdEntryCount,
7feec50967db 201003_02
hgs
parents:
diff changeset
   231
            CCaSqlQuery* aQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   232
7feec50967db 201003_02
hgs
parents:
diff changeset
   233
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   234
     * Creates an sql query to get a list of entries by query data.
7feec50967db 201003_02
hgs
parents:
diff changeset
   235
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   236
     * @param aQuery The query to analize for 
7feec50967db 201003_02
hgs
parents:
diff changeset
   237
     * a specific selection (result list of entries).
7feec50967db 201003_02
hgs
parents:
diff changeset
   238
     * @param aSqlQuery The result query.
7feec50967db 201003_02
hgs
parents:
diff changeset
   239
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   240
    static void CreateGetEntriesQueryByQueryL( const CCaInnerQuery* aQuery,
7feec50967db 201003_02
hgs
parents:
diff changeset
   241
            CCaSqlQuery* aSqlQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   242
7feec50967db 201003_02
hgs
parents:
diff changeset
   243
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   244
     * Helper function which creates a string with 
7feec50967db 201003_02
hgs
parents:
diff changeset
   245
     * a list of id mappings. e.g. (id0,id1,id2)
7feec50967db 201003_02
hgs
parents:
diff changeset
   246
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   247
     * @param aIdEntryCount the number of entries to create the id list.
7feec50967db 201003_02
hgs
parents:
diff changeset
   248
     * @param aEntryIdList The result text.
7feec50967db 201003_02
hgs
parents:
diff changeset
   249
     * @param aColName column name with specified id.
7feec50967db 201003_02
hgs
parents:
diff changeset
   250
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   251
    static void CreateIdListL( const TInt aIdEntryCount,
7feec50967db 201003_02
hgs
parents:
diff changeset
   252
            RBuf& aEntryIdList, const TDesC& aColName );
7feec50967db 201003_02
hgs
parents:
diff changeset
   253
7feec50967db 201003_02
hgs
parents:
diff changeset
   254
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   255
     * Modifies a given query with sort order information.
7feec50967db 201003_02
hgs
parents:
diff changeset
   256
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   257
     * @param aSortType The sort order type.
7feec50967db 201003_02
hgs
parents:
diff changeset
   258
     * @param aQuery the query where the sort order will be included.
7feec50967db 201003_02
hgs
parents:
diff changeset
   259
     * @param aSortByGroup Additional information if to sort within a group.
7feec50967db 201003_02
hgs
parents:
diff changeset
   260
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   261
    static void ModifyQueryForSortOrderL( 
7feec50967db 201003_02
hgs
parents:
diff changeset
   262
            const CCaInnerQuery::TSortAttribute aSortType, 
7feec50967db 201003_02
hgs
parents:
diff changeset
   263
            RBuf& aQuery, TBool aSortByGroup );
7feec50967db 201003_02
hgs
parents:
diff changeset
   264
    
7feec50967db 201003_02
hgs
parents:
diff changeset
   265
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   266
     * Modifies a given query with sort order last or most used.
7feec50967db 201003_02
hgs
parents:
diff changeset
   267
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   268
     * @param aSortType The sort order type.
7feec50967db 201003_02
hgs
parents:
diff changeset
   269
     * @param aQuery the query where the sort order will be included.
7feec50967db 201003_02
hgs
parents:
diff changeset
   270
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   271
    static void ModifyQueryForSortOrderLastMostUsedL(
7feec50967db 201003_02
hgs
parents:
diff changeset
   272
            const CCaInnerQuery::TSortAttribute aSortType, RBuf& aQuery );
7feec50967db 201003_02
hgs
parents:
diff changeset
   273
    
7feec50967db 201003_02
hgs
parents:
diff changeset
   274
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   275
     * Check if icon is set proper in CCaInnerEntry.
7feec50967db 201003_02
hgs
parents:
diff changeset
   276
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
   277
     * @param aEntry The entry with icon params.
7feec50967db 201003_02
hgs
parents:
diff changeset
   278
     * @return TIconType .
7feec50967db 201003_02
hgs
parents:
diff changeset
   279
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   280
    static TIconType CheckIconType( const CCaInnerEntry* aEntry );
7feec50967db 201003_02
hgs
parents:
diff changeset
   281
7feec50967db 201003_02
hgs
parents:
diff changeset
   282
    };
7feec50967db 201003_02
hgs
parents:
diff changeset
   283
7feec50967db 201003_02
hgs
parents:
diff changeset
   284
#endif // CASQLQUERYCREATOR_H