contentpublishingsrv/contentharvester/factorysettingsplugin/src/chfactorysettingsdomparser.cpp
author hgs
Tue, 23 Mar 2010 23:28:12 +0200
changeset 86 e492551a0d54
parent 85 7feec50967db
permissions -rw-r--r--
201005
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:  factory settings for content harvester
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
7feec50967db 201003_02
hgs
parents:
diff changeset
    19
// INCLUDE FILES
7feec50967db 201003_02
hgs
parents:
diff changeset
    20
7feec50967db 201003_02
hgs
parents:
diff changeset
    21
#include <driveinfo.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    22
#include <xmlengnodelist.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    23
#include <xmlengdomparser.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    24
#include <xmlengdocument.h>
86
hgs
parents: 85
diff changeset
    25
#include <utf.h>
hgs
parents: 85
diff changeset
    26
#include <liwservicehandler.h>
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    27
#include "chfactorysettingsdomparser.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    28
#include "chfactorysettingsglobals.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    29
#include "chfactsetutils.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    30
#include "cpdebug.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    31
7feec50967db 201003_02
hgs
parents:
diff changeset
    32
// CONSTANTS
7feec50967db 201003_02
hgs
parents:
diff changeset
    33
_LIT8( KMainDataItem8, "data" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    34
_LIT8( KMainPublisherItem8, "publisher" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    35
_LIT8( KType, "type" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    36
_LIT8( KItem, "item" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    37
_LIT8( KData, "data" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    38
_LIT8( KAdd, "Add" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    39
_LIT8( KDelete, "Delete" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    40
_LIT8( KCpData, "cp_data" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    41
_LIT8( KPublisher, "publisher" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    42
7feec50967db 201003_02
hgs
parents:
diff changeset
    43
7feec50967db 201003_02
hgs
parents:
diff changeset
    44
// ============================ MEMBER FUNCTIONS ===============================
7feec50967db 201003_02
hgs
parents:
diff changeset
    45
7feec50967db 201003_02
hgs
parents:
diff changeset
    46
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    47
// CCHFactorySettingsDOMParser::CCHFactorySettingsDOMParser
7feec50967db 201003_02
hgs
parents:
diff changeset
    48
// C++ default constructor can NOT contain any code, that
7feec50967db 201003_02
hgs
parents:
diff changeset
    49
// might leave.
7feec50967db 201003_02
hgs
parents:
diff changeset
    50
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    51
//
7feec50967db 201003_02
hgs
parents:
diff changeset
    52
CCHFactorySettingsDOMParser::CCHFactorySettingsDOMParser( RFs& aFs ):
7feec50967db 201003_02
hgs
parents:
diff changeset
    53
    iFs( aFs )
7feec50967db 201003_02
hgs
parents:
diff changeset
    54
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    55
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
    56
7feec50967db 201003_02
hgs
parents:
diff changeset
    57
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    58
// CCHFactorySettingsDOMParser::ConstructL
7feec50967db 201003_02
hgs
parents:
diff changeset
    59
// Symbian 2nd phase constructor can leave.
7feec50967db 201003_02
hgs
parents:
diff changeset
    60
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    61
//
7feec50967db 201003_02
hgs
parents:
diff changeset
    62
void CCHFactorySettingsDOMParser::ConstructL( MLiwInterface* aInterface )
7feec50967db 201003_02
hgs
parents:
diff changeset
    63
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    64
    iCPSInterface = aInterface;
7feec50967db 201003_02
hgs
parents:
diff changeset
    65
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
    66
7feec50967db 201003_02
hgs
parents:
diff changeset
    67
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    68
// CCHFactorySettingsDOMParser::NewL
7feec50967db 201003_02
hgs
parents:
diff changeset
    69
// Two-phased constructor.
7feec50967db 201003_02
hgs
parents:
diff changeset
    70
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    71
//
7feec50967db 201003_02
hgs
parents:
diff changeset
    72
CCHFactorySettingsDOMParser* CCHFactorySettingsDOMParser::NewL(
7feec50967db 201003_02
hgs
parents:
diff changeset
    73
        MLiwInterface* aInterface, RFs& aFs )
7feec50967db 201003_02
hgs
parents:
diff changeset
    74
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    75
    CCHFactorySettingsDOMParser* self = NewLC( aInterface, aFs );
7feec50967db 201003_02
hgs
parents:
diff changeset
    76
    CleanupStack::Pop( self );
7feec50967db 201003_02
hgs
parents:
diff changeset
    77
    return self;
7feec50967db 201003_02
hgs
parents:
diff changeset
    78
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
    79
7feec50967db 201003_02
hgs
parents:
diff changeset
    80
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    81
// CCHFactorySettingsDOMParser::NewLC
7feec50967db 201003_02
hgs
parents:
diff changeset
    82
// Two-phased constructor.
7feec50967db 201003_02
hgs
parents:
diff changeset
    83
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    84
//
7feec50967db 201003_02
hgs
parents:
diff changeset
    85
CCHFactorySettingsDOMParser* CCHFactorySettingsDOMParser::NewLC(
7feec50967db 201003_02
hgs
parents:
diff changeset
    86
        MLiwInterface* aInterface, RFs& aFs )
7feec50967db 201003_02
hgs
parents:
diff changeset
    87
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    88
    CCHFactorySettingsDOMParser* self = new( ELeave ) CCHFactorySettingsDOMParser( aFs );
7feec50967db 201003_02
hgs
parents:
diff changeset
    89
    CleanupStack::PushL( self );
7feec50967db 201003_02
hgs
parents:
diff changeset
    90
    self->ConstructL( aInterface );
7feec50967db 201003_02
hgs
parents:
diff changeset
    91
    return self;
7feec50967db 201003_02
hgs
parents:
diff changeset
    92
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
    93
7feec50967db 201003_02
hgs
parents:
diff changeset
    94
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    95
// CCHFactorySettingsDOMParser::~CCHFactorySettingsDOMParser
7feec50967db 201003_02
hgs
parents:
diff changeset
    96
// Destructor
7feec50967db 201003_02
hgs
parents:
diff changeset
    97
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    98
//
7feec50967db 201003_02
hgs
parents:
diff changeset
    99
CCHFactorySettingsDOMParser::~CCHFactorySettingsDOMParser()
7feec50967db 201003_02
hgs
parents:
diff changeset
   100
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   101
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   102
7feec50967db 201003_02
hgs
parents:
diff changeset
   103
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   104
// CCHFactorySettingsDOMParser::Restore
7feec50967db 201003_02
hgs
parents:
diff changeset
   105
// (other items were commented in a header).
7feec50967db 201003_02
hgs
parents:
diff changeset
   106
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   107
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   108
TInt CCHFactorySettingsDOMParser::Restore( const TDesC& aStr, TBool aUnInstall )
7feec50967db 201003_02
hgs
parents:
diff changeset
   109
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   110
    TRAPD( err, ParseFactorySettingsFileL( aStr, aUnInstall ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   111
    return err;
7feec50967db 201003_02
hgs
parents:
diff changeset
   112
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   113
7feec50967db 201003_02
hgs
parents:
diff changeset
   114
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   115
//  CCHFactorySettingsDOMParser::ParseFactorySettingsFileL
7feec50967db 201003_02
hgs
parents:
diff changeset
   116
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   117
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   118
void CCHFactorySettingsDOMParser::ParseFactorySettingsFileL(
7feec50967db 201003_02
hgs
parents:
diff changeset
   119
        const TDesC& aFilePath, TBool aUnInstall )
7feec50967db 201003_02
hgs
parents:
diff changeset
   120
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   121
    RXmlEngDOMImplementation domImpl;
7feec50967db 201003_02
hgs
parents:
diff changeset
   122
    CleanupClosePushL( domImpl );
7feec50967db 201003_02
hgs
parents:
diff changeset
   123
    domImpl.OpenL();
7feec50967db 201003_02
hgs
parents:
diff changeset
   124
7feec50967db 201003_02
hgs
parents:
diff changeset
   125
    RXmlEngDOMParser parser;
7feec50967db 201003_02
hgs
parents:
diff changeset
   126
    CleanupClosePushL( parser );
7feec50967db 201003_02
hgs
parents:
diff changeset
   127
    User::LeaveIfError( parser.Open( domImpl ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   128
7feec50967db 201003_02
hgs
parents:
diff changeset
   129
    RXmlEngDocument doc = parser.ParseFileL( aFilePath );
7feec50967db 201003_02
hgs
parents:
diff changeset
   130
    CleanupClosePushL( doc );
7feec50967db 201003_02
hgs
parents:
diff changeset
   131
7feec50967db 201003_02
hgs
parents:
diff changeset
   132
    TXmlEngElement docElement = doc.AsElement(); // cast node to element node
7feec50967db 201003_02
hgs
parents:
diff changeset
   133
7feec50967db 201003_02
hgs
parents:
diff changeset
   134
    TXmlEngElement element = docElement.FirstChild().AsElement();
7feec50967db 201003_02
hgs
parents:
diff changeset
   135
7feec50967db 201003_02
hgs
parents:
diff changeset
   136
    RXmlEngNodeList<TXmlEngElement> elementList;
7feec50967db 201003_02
hgs
parents:
diff changeset
   137
    CleanupClosePushL( elementList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   138
7feec50967db 201003_02
hgs
parents:
diff changeset
   139
    element.GetChildElements( elementList );// to remove
7feec50967db 201003_02
hgs
parents:
diff changeset
   140
7feec50967db 201003_02
hgs
parents:
diff changeset
   141
    while( elementList.HasNext() )
7feec50967db 201003_02
hgs
parents:
diff changeset
   142
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
   143
        element = elementList.Next();
7feec50967db 201003_02
hgs
parents:
diff changeset
   144
        TPtrC8 typeIdentifier( element.Name() );
7feec50967db 201003_02
hgs
parents:
diff changeset
   145
        if( !( typeIdentifier.CompareC( KMainDataItem8 ) ) ||
7feec50967db 201003_02
hgs
parents:
diff changeset
   146
            !( typeIdentifier.CompareC( KMainPublisherItem8 ) ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   147
            {
7feec50967db 201003_02
hgs
parents:
diff changeset
   148
            CLiwGenericParamList* inparam = CLiwGenericParamList::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   149
            CLiwGenericParamList* outparam = CLiwGenericParamList::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   150
            CLiwDefaultMap* map = CLiwDefaultMap::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   151
7feec50967db 201003_02
hgs
parents:
diff changeset
   152
            if( !( typeIdentifier.CompareC( KMainDataItem8 ) ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   153
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   154
                TLiwGenericParam item_type( KType, TLiwVariant( KCpData ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   155
                inparam->AppendL( item_type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   156
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   157
            else
7feec50967db 201003_02
hgs
parents:
diff changeset
   158
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   159
                TLiwGenericParam item_type( KType, TLiwVariant( KPublisher ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   160
                inparam->AppendL( item_type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   161
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   162
7feec50967db 201003_02
hgs
parents:
diff changeset
   163
            if( aUnInstall )
7feec50967db 201003_02
hgs
parents:
diff changeset
   164
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   165
                // remove
7feec50967db 201003_02
hgs
parents:
diff changeset
   166
                RemoveItemL(element, map);
7feec50967db 201003_02
hgs
parents:
diff changeset
   167
                TLiwGenericParam item( KData, TLiwVariant( map ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   168
                inparam->AppendL( item );
7feec50967db 201003_02
hgs
parents:
diff changeset
   169
                iCPSInterface->ExecuteCmdL( KDelete, *inparam, *outparam );
7feec50967db 201003_02
hgs
parents:
diff changeset
   170
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   171
            else
7feec50967db 201003_02
hgs
parents:
diff changeset
   172
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   173
                // add
7feec50967db 201003_02
hgs
parents:
diff changeset
   174
                AddItemL( element, map, EMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   175
                TLiwGenericParam item( KItem, TLiwVariant( map ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   176
                inparam->AppendL( item );
7feec50967db 201003_02
hgs
parents:
diff changeset
   177
                iCPSInterface->ExecuteCmdL( KAdd, *inparam, *outparam );
7feec50967db 201003_02
hgs
parents:
diff changeset
   178
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   179
7feec50967db 201003_02
hgs
parents:
diff changeset
   180
            CleanupStack::PopAndDestroy( map );
7feec50967db 201003_02
hgs
parents:
diff changeset
   181
            CleanupStack::PopAndDestroy( outparam );
7feec50967db 201003_02
hgs
parents:
diff changeset
   182
            CleanupStack::PopAndDestroy( inparam );
7feec50967db 201003_02
hgs
parents:
diff changeset
   183
            }
7feec50967db 201003_02
hgs
parents:
diff changeset
   184
        }
7feec50967db 201003_02
hgs
parents:
diff changeset
   185
7feec50967db 201003_02
hgs
parents:
diff changeset
   186
    CleanupStack::PopAndDestroy( &elementList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   187
    CleanupStack::PopAndDestroy( &doc );
7feec50967db 201003_02
hgs
parents:
diff changeset
   188
    CleanupStack::PopAndDestroy( &parser );
7feec50967db 201003_02
hgs
parents:
diff changeset
   189
    CleanupStack::PopAndDestroy( &domImpl );
7feec50967db 201003_02
hgs
parents:
diff changeset
   190
7feec50967db 201003_02
hgs
parents:
diff changeset
   191
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   192
7feec50967db 201003_02
hgs
parents:
diff changeset
   193
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   194
// CCHFactorySettingsDOMParser::AddItemL
7feec50967db 201003_02
hgs
parents:
diff changeset
   195
// (other items were commented in a header).
7feec50967db 201003_02
hgs
parents:
diff changeset
   196
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   197
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   198
void CCHFactorySettingsDOMParser::AddItemL( const TXmlEngElement& aNode,
7feec50967db 201003_02
hgs
parents:
diff changeset
   199
    CLiwContainer* aContainer, TTypes aType )
7feec50967db 201003_02
hgs
parents:
diff changeset
   200
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   201
    RXmlEngNodeList<TXmlEngElement> children;
7feec50967db 201003_02
hgs
parents:
diff changeset
   202
    CleanupClosePushL( children );
7feec50967db 201003_02
hgs
parents:
diff changeset
   203
    aNode.GetChildElements( children );
7feec50967db 201003_02
hgs
parents:
diff changeset
   204
7feec50967db 201003_02
hgs
parents:
diff changeset
   205
    while( children.HasNext() )
7feec50967db 201003_02
hgs
parents:
diff changeset
   206
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
   207
        TXmlEngElement node = children.Next();
7feec50967db 201003_02
hgs
parents:
diff changeset
   208
        TPtrC8 typeIdentifier( node.Name() );
7feec50967db 201003_02
hgs
parents:
diff changeset
   209
        if( !( typeIdentifier.CompareC( KDataItem8 ) ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   210
            {
7feec50967db 201003_02
hgs
parents:
diff changeset
   211
            switch ( aType )
7feec50967db 201003_02
hgs
parents:
diff changeset
   212
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   213
                case EMap:
7feec50967db 201003_02
hgs
parents:
diff changeset
   214
                    ExtractAttributesAndAddL( node,
7feec50967db 201003_02
hgs
parents:
diff changeset
   215
                        static_cast<CLiwDefaultMap*>(aContainer) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   216
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   217
                case EList:
7feec50967db 201003_02
hgs
parents:
diff changeset
   218
                    ExtractAttributesAndAddL( node,
7feec50967db 201003_02
hgs
parents:
diff changeset
   219
                        static_cast<CLiwDefaultList*>( aContainer ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   220
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   221
                default:
7feec50967db 201003_02
hgs
parents:
diff changeset
   222
                    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   223
                    User::Panic( _L("Wrong Type" ),1 );
7feec50967db 201003_02
hgs
parents:
diff changeset
   224
                    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   225
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   226
            }
7feec50967db 201003_02
hgs
parents:
diff changeset
   227
        }
7feec50967db 201003_02
hgs
parents:
diff changeset
   228
7feec50967db 201003_02
hgs
parents:
diff changeset
   229
    CleanupStack::PopAndDestroy( &children );
7feec50967db 201003_02
hgs
parents:
diff changeset
   230
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   231
7feec50967db 201003_02
hgs
parents:
diff changeset
   232
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   233
// CCHFactorySettingsDOMParser::RemoveItemL
7feec50967db 201003_02
hgs
parents:
diff changeset
   234
// (other items were commented in a header).
7feec50967db 201003_02
hgs
parents:
diff changeset
   235
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   236
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   237
void CCHFactorySettingsDOMParser::RemoveItemL( const TXmlEngElement& aNode,
7feec50967db 201003_02
hgs
parents:
diff changeset
   238
    CLiwDefaultMap* aMap )
7feec50967db 201003_02
hgs
parents:
diff changeset
   239
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   240
    CP_DEBUG(_L8("CCHFactorySettingsDOMParser::RemoveItemL" ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   241
    RXmlEngNodeList<TXmlEngElement> children;
7feec50967db 201003_02
hgs
parents:
diff changeset
   242
    CleanupClosePushL( children );
7feec50967db 201003_02
hgs
parents:
diff changeset
   243
7feec50967db 201003_02
hgs
parents:
diff changeset
   244
    aNode.GetChildElements( children );
7feec50967db 201003_02
hgs
parents:
diff changeset
   245
7feec50967db 201003_02
hgs
parents:
diff changeset
   246
    while( children.HasNext() )
7feec50967db 201003_02
hgs
parents:
diff changeset
   247
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
   248
        TXmlEngElement node = children.Next();
7feec50967db 201003_02
hgs
parents:
diff changeset
   249
        TPtrC8 typeIdentifier( node.Name() );
7feec50967db 201003_02
hgs
parents:
diff changeset
   250
        if( !( typeIdentifier.CompareC( KDataItem8 ) ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   251
            {
7feec50967db 201003_02
hgs
parents:
diff changeset
   252
            ExtractDeleteAttributesL( node, aMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   253
            }
7feec50967db 201003_02
hgs
parents:
diff changeset
   254
        }
7feec50967db 201003_02
hgs
parents:
diff changeset
   255
    CleanupStack::PopAndDestroy( &children );
7feec50967db 201003_02
hgs
parents:
diff changeset
   256
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   257
7feec50967db 201003_02
hgs
parents:
diff changeset
   258
7feec50967db 201003_02
hgs
parents:
diff changeset
   259
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   260
//  CCHFactorySettingsDOMParser::ExtractDeleteAttributesL
7feec50967db 201003_02
hgs
parents:
diff changeset
   261
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   262
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   263
void CCHFactorySettingsDOMParser::ExtractDeleteAttributesL(
7feec50967db 201003_02
hgs
parents:
diff changeset
   264
		const TXmlEngElement& aNode,
7feec50967db 201003_02
hgs
parents:
diff changeset
   265
		CLiwDefaultMap* aMap )
7feec50967db 201003_02
hgs
parents:
diff changeset
   266
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   267
    CP_DEBUG(_L8("CCHFactorySettingsDOMParser::ExtractDeleteAttributesL" ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   268
7feec50967db 201003_02
hgs
parents:
diff changeset
   269
    TPtrC8 key = aNode.AttributeValueL(KAttributeKey8);
7feec50967db 201003_02
hgs
parents:
diff changeset
   270
    TPtrC8 value = aNode.AttributeValueL(KAttributeValue8);
7feec50967db 201003_02
hgs
parents:
diff changeset
   271
    HBufC* type = CnvUtfConverter::ConvertToUnicodeFromUtf8L(
7feec50967db 201003_02
hgs
parents:
diff changeset
   272
            aNode.AttributeValueL(KAttributeType8));
7feec50967db 201003_02
hgs
parents:
diff changeset
   273
    CleanupStack::PushL( type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   274
7feec50967db 201003_02
hgs
parents:
diff changeset
   275
    if ( key.Compare( KNullDesC8 ) != 0
7feec50967db 201003_02
hgs
parents:
diff changeset
   276
        && type->Compare( KNullDesC ) != 0
7feec50967db 201003_02
hgs
parents:
diff changeset
   277
    	&& value.Compare( KNullDesC8 ) != 0 )
7feec50967db 201003_02
hgs
parents:
diff changeset
   278
		{
7feec50967db 201003_02
hgs
parents:
diff changeset
   279
		HBufC* value16 = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   280
		switch ( ConvertToType( *type ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   281
			{
7feec50967db 201003_02
hgs
parents:
diff changeset
   282
			case EDescriptor8:
7feec50967db 201003_02
hgs
parents:
diff changeset
   283
				aMap->InsertL( key, value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   284
				break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   285
			case EDescriptor16:
7feec50967db 201003_02
hgs
parents:
diff changeset
   286
			    value16 = CnvUtfConverter::ConvertToUnicodeFromUtf8L( value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   287
			    CleanupStack::PushL( value16 );
7feec50967db 201003_02
hgs
parents:
diff changeset
   288
				aMap->InsertL( key, *value16 );
7feec50967db 201003_02
hgs
parents:
diff changeset
   289
			    CleanupStack::PopAndDestroy( value16 );
7feec50967db 201003_02
hgs
parents:
diff changeset
   290
				break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   291
			default:
7feec50967db 201003_02
hgs
parents:
diff changeset
   292
				{
7feec50967db 201003_02
hgs
parents:
diff changeset
   293
				//wrong type - ignore
7feec50967db 201003_02
hgs
parents:
diff changeset
   294
				}
7feec50967db 201003_02
hgs
parents:
diff changeset
   295
			}
7feec50967db 201003_02
hgs
parents:
diff changeset
   296
		}
7feec50967db 201003_02
hgs
parents:
diff changeset
   297
    CleanupStack::PopAndDestroy( type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   298
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   299
7feec50967db 201003_02
hgs
parents:
diff changeset
   300
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   301
//  CCHFactorySettingsDOMParser::ExtractAttributesAndAddL
7feec50967db 201003_02
hgs
parents:
diff changeset
   302
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   303
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   304
void CCHFactorySettingsDOMParser::ExtractAttributesAndAddL(
7feec50967db 201003_02
hgs
parents:
diff changeset
   305
		const TXmlEngElement& aNode, CLiwDefaultMap* aMap )
7feec50967db 201003_02
hgs
parents:
diff changeset
   306
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   307
    CP_DEBUG(_L8("CCHFactorySettingsDOMParser::ExtractAttributesAndAddL" ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   308
    TPtrC8 key = aNode.AttributeValueL(KAttributeKey8);
7feec50967db 201003_02
hgs
parents:
diff changeset
   309
    HBufC* type = CnvUtfConverter::ConvertToUnicodeFromUtf8L(
7feec50967db 201003_02
hgs
parents:
diff changeset
   310
            aNode.AttributeValueL(KAttributeType8));
7feec50967db 201003_02
hgs
parents:
diff changeset
   311
    CleanupStack::PushL( type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   312
7feec50967db 201003_02
hgs
parents:
diff changeset
   313
    if ( key.Compare( KNullDesC8 ) != 0
7feec50967db 201003_02
hgs
parents:
diff changeset
   314
        && type->Compare( KNullDesC ) != 0 )
7feec50967db 201003_02
hgs
parents:
diff changeset
   315
		{
7feec50967db 201003_02
hgs
parents:
diff changeset
   316
	    HBufC* value = CnvUtfConverter::ConvertToUnicodeFromUtf8L(
7feec50967db 201003_02
hgs
parents:
diff changeset
   317
	            aNode.AttributeValueL(KAttributeValue8));
7feec50967db 201003_02
hgs
parents:
diff changeset
   318
	    CleanupStack::PushL( value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   319
        TTypes typeCheck = ConvertToType( *type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   320
        //check if value exist
7feec50967db 201003_02
hgs
parents:
diff changeset
   321
        //it is not needed in case of Map and List
7feec50967db 201003_02
hgs
parents:
diff changeset
   322
        if ( value->Compare( KNullDesC ) != 0
7feec50967db 201003_02
hgs
parents:
diff changeset
   323
        		|| typeCheck == EMap
7feec50967db 201003_02
hgs
parents:
diff changeset
   324
        		|| typeCheck == EList )
7feec50967db 201003_02
hgs
parents:
diff changeset
   325
            {
7feec50967db 201003_02
hgs
parents:
diff changeset
   326
            HBufC8* bufV = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   327
            CLiwDefaultMap* nestedMap = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   328
            CLiwDefaultList* nestedList = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   329
7feec50967db 201003_02
hgs
parents:
diff changeset
   330
            switch ( typeCheck )
7feec50967db 201003_02
hgs
parents:
diff changeset
   331
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   332
                case EInteger:
7feec50967db 201003_02
hgs
parents:
diff changeset
   333
                    aMap->InsertL( key, FactSetCHUtils::Str2Int32( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   334
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   335
                case EUInteger:
7feec50967db 201003_02
hgs
parents:
diff changeset
   336
                	aMap->InsertL( key, FactSetCHUtils::Str2Uint( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   337
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   338
                case EDescriptor8:
7feec50967db 201003_02
hgs
parents:
diff changeset
   339
                    bufV = FactSetCHUtils::Str2Str8LC( *value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   340
                    aMap->InsertL( key, *bufV );
7feec50967db 201003_02
hgs
parents:
diff changeset
   341
                    CleanupStack::PopAndDestroy( bufV );
7feec50967db 201003_02
hgs
parents:
diff changeset
   342
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   343
                case EDescriptor16:
7feec50967db 201003_02
hgs
parents:
diff changeset
   344
                	aMap->InsertL( key, *value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   345
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   346
                case EMap:
7feec50967db 201003_02
hgs
parents:
diff changeset
   347
                	nestedMap = CLiwDefaultMap::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   348
                    AddItemL( aNode, nestedMap, EMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   349
                    aMap->InsertL( key, nestedMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   350
                    CleanupStack::PopAndDestroy( nestedMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   351
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   352
                case EList:
7feec50967db 201003_02
hgs
parents:
diff changeset
   353
                	nestedList = CLiwDefaultList::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   354
                    AddItemL( aNode, nestedList, EList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   355
                    aMap->InsertL( key, nestedList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   356
                    CleanupStack::PopAndDestroy( nestedList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   357
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   358
                case EBool:
7feec50967db 201003_02
hgs
parents:
diff changeset
   359
                	aMap->InsertL( key, FactSetCHUtils::Str2Bool( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   360
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   361
                case EReal:
7feec50967db 201003_02
hgs
parents:
diff changeset
   362
                	aMap->InsertL( key, FactSetCHUtils::Str2Real( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   363
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   364
                case EUid:
7feec50967db 201003_02
hgs
parents:
diff changeset
   365
                	aMap->InsertL( key, FactSetCHUtils::Str2Uid( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   366
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   367
                default:
7feec50967db 201003_02
hgs
parents:
diff changeset
   368
                    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   369
                    //wrong type - ignore
7feec50967db 201003_02
hgs
parents:
diff changeset
   370
                    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   371
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   372
            }
7feec50967db 201003_02
hgs
parents:
diff changeset
   373
        CleanupStack::PopAndDestroy( value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   374
		}
7feec50967db 201003_02
hgs
parents:
diff changeset
   375
    CleanupStack::PopAndDestroy( type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   376
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   377
7feec50967db 201003_02
hgs
parents:
diff changeset
   378
7feec50967db 201003_02
hgs
parents:
diff changeset
   379
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   380
// CCHFactorySettingsDOMParser::ExtractAttributesAndAddL
7feec50967db 201003_02
hgs
parents:
diff changeset
   381
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   382
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   383
void CCHFactorySettingsDOMParser::ExtractAttributesAndAddL(
7feec50967db 201003_02
hgs
parents:
diff changeset
   384
        const TXmlEngElement& aNode, CLiwDefaultList* aList )
7feec50967db 201003_02
hgs
parents:
diff changeset
   385
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   386
    CP_DEBUG( _L8( "CCHFactorySettingsDOMParser::ExtractAttributesAndAddL" ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   387
7feec50967db 201003_02
hgs
parents:
diff changeset
   388
    HBufC* type = CnvUtfConverter::ConvertToUnicodeFromUtf8L(
7feec50967db 201003_02
hgs
parents:
diff changeset
   389
            aNode.AttributeValueL(KAttributeType8));
7feec50967db 201003_02
hgs
parents:
diff changeset
   390
    CleanupStack::PushL( type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   391
7feec50967db 201003_02
hgs
parents:
diff changeset
   392
    if( type->Compare( KNullDesC ) != 0 )
7feec50967db 201003_02
hgs
parents:
diff changeset
   393
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
   394
        HBufC* value = CnvUtfConverter::ConvertToUnicodeFromUtf8L(
7feec50967db 201003_02
hgs
parents:
diff changeset
   395
                aNode.AttributeValueL(KAttributeValue8));
7feec50967db 201003_02
hgs
parents:
diff changeset
   396
        CleanupStack::PushL( value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   397
        TTypes typeCheck = ConvertToType( *type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   398
        //check if value exist
7feec50967db 201003_02
hgs
parents:
diff changeset
   399
        //it is not needed in case of Map and List
7feec50967db 201003_02
hgs
parents:
diff changeset
   400
        if( value->Compare( KNullDesC ) != 0
7feec50967db 201003_02
hgs
parents:
diff changeset
   401
                || typeCheck == EMap
7feec50967db 201003_02
hgs
parents:
diff changeset
   402
                || typeCheck == EList )
7feec50967db 201003_02
hgs
parents:
diff changeset
   403
            {
7feec50967db 201003_02
hgs
parents:
diff changeset
   404
            HBufC8* bufV = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   405
            CLiwDefaultMap* nestedMap = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   406
            CLiwDefaultList* nestedList = NULL;
7feec50967db 201003_02
hgs
parents:
diff changeset
   407
7feec50967db 201003_02
hgs
parents:
diff changeset
   408
            switch( typeCheck )
7feec50967db 201003_02
hgs
parents:
diff changeset
   409
                {
7feec50967db 201003_02
hgs
parents:
diff changeset
   410
                case EInteger:
7feec50967db 201003_02
hgs
parents:
diff changeset
   411
                    aList->AppendL( FactSetCHUtils::Str2Int32( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   412
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   413
                case EUInteger:
7feec50967db 201003_02
hgs
parents:
diff changeset
   414
                    aList->AppendL( FactSetCHUtils::Str2Uint( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   415
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   416
                case EDescriptor8:
7feec50967db 201003_02
hgs
parents:
diff changeset
   417
                    bufV = FactSetCHUtils::Str2Str8LC( *value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   418
                    aList->AppendL( *bufV );
7feec50967db 201003_02
hgs
parents:
diff changeset
   419
                    CleanupStack::PopAndDestroy( bufV );
7feec50967db 201003_02
hgs
parents:
diff changeset
   420
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   421
                case EDescriptor16:
7feec50967db 201003_02
hgs
parents:
diff changeset
   422
                    aList->AppendL( value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   423
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   424
                case EMap:
7feec50967db 201003_02
hgs
parents:
diff changeset
   425
                    nestedMap = CLiwDefaultMap::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   426
                    AddItemL( aNode, nestedMap, EMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   427
                    aList->AppendL( nestedMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   428
                    CleanupStack::PopAndDestroy( nestedMap );
7feec50967db 201003_02
hgs
parents:
diff changeset
   429
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   430
                case EList:
7feec50967db 201003_02
hgs
parents:
diff changeset
   431
                    nestedList = CLiwDefaultList::NewLC();
7feec50967db 201003_02
hgs
parents:
diff changeset
   432
                    AddItemL( aNode, nestedList, EList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   433
                    aList->AppendL( nestedList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   434
                    CleanupStack::PopAndDestroy( nestedList );
7feec50967db 201003_02
hgs
parents:
diff changeset
   435
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   436
                case EBool:
7feec50967db 201003_02
hgs
parents:
diff changeset
   437
                    aList->AppendL( FactSetCHUtils::Str2Bool( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   438
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   439
                case EReal:
7feec50967db 201003_02
hgs
parents:
diff changeset
   440
                    aList->AppendL( FactSetCHUtils::Str2Real( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   441
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   442
                case EUid:
7feec50967db 201003_02
hgs
parents:
diff changeset
   443
                    aList->AppendL( FactSetCHUtils::Str2Uid( *value ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   444
                    break;
7feec50967db 201003_02
hgs
parents:
diff changeset
   445
                default:
7feec50967db 201003_02
hgs
parents:
diff changeset
   446
                    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   447
                    //wrong type - ignore
7feec50967db 201003_02
hgs
parents:
diff changeset
   448
                    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   449
                }
7feec50967db 201003_02
hgs
parents:
diff changeset
   450
            }
7feec50967db 201003_02
hgs
parents:
diff changeset
   451
        CleanupStack::PopAndDestroy( value );
7feec50967db 201003_02
hgs
parents:
diff changeset
   452
        }
7feec50967db 201003_02
hgs
parents:
diff changeset
   453
    CleanupStack::PopAndDestroy( type );
7feec50967db 201003_02
hgs
parents:
diff changeset
   454
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   455
7feec50967db 201003_02
hgs
parents:
diff changeset
   456
7feec50967db 201003_02
hgs
parents:
diff changeset
   457
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   458
// CCHFactorySettingsDOMParser::ConvertToType
7feec50967db 201003_02
hgs
parents:
diff changeset
   459
// -----------------------------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
   460
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   461
CCHFactorySettingsDOMParser::TTypes CCHFactorySettingsDOMParser::ConvertToType(
7feec50967db 201003_02
hgs
parents:
diff changeset
   462
    const TDesC& aType )
7feec50967db 201003_02
hgs
parents:
diff changeset
   463
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   464
    CP_DEBUG(_L8("CCHFactorySettingsDOMParser::ConvertToType" ));
7feec50967db 201003_02
hgs
parents:
diff changeset
   465
    if ( !aType.Compare( KInteger ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   466
        return EInteger;
7feec50967db 201003_02
hgs
parents:
diff changeset
   467
    if ( !aType.Compare( KUInteger ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   468
        return EUInteger;
7feec50967db 201003_02
hgs
parents:
diff changeset
   469
    if ( !aType.Compare( KDescriptor8 ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   470
        return EDescriptor8;
7feec50967db 201003_02
hgs
parents:
diff changeset
   471
    if ( !aType.Compare( KDescriptor16 ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   472
        return EDescriptor16;
7feec50967db 201003_02
hgs
parents:
diff changeset
   473
    if ( !aType.Compare( KMap ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   474
        return EMap;
7feec50967db 201003_02
hgs
parents:
diff changeset
   475
    if ( !aType.Compare( KList ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   476
        return EList;
7feec50967db 201003_02
hgs
parents:
diff changeset
   477
    if ( !aType.Compare( KBool ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   478
        return EBool;
7feec50967db 201003_02
hgs
parents:
diff changeset
   479
    if ( !aType.Compare( KReal ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   480
        return EReal;
7feec50967db 201003_02
hgs
parents:
diff changeset
   481
    if ( !aType.Compare( KUid ) )
7feec50967db 201003_02
hgs
parents:
diff changeset
   482
        return EUid;
7feec50967db 201003_02
hgs
parents:
diff changeset
   483
    return EUndefined;
7feec50967db 201003_02
hgs
parents:
diff changeset
   484
    }