xml/xmlparser/src/cxmlattributes.cpp
author hgs
Mon, 13 Sep 2010 13:16:40 +0530
changeset 34 c7e9f1c97567
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  ?Description
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
// INCLUDE FILES
hgs
parents:
diff changeset
    21
#include "cxmlattributes.h"
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    28
// CXMLAttributes::CXMLAttributes()
hgs
parents:
diff changeset
    29
// C++ default constructor can NOT contain any code, that
hgs
parents:
diff changeset
    30
// might leave.
hgs
parents:
diff changeset
    31
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    32
//
hgs
parents:
diff changeset
    33
CXMLAttributes::CXMLAttributes()
hgs
parents:
diff changeset
    34
	{
hgs
parents:
diff changeset
    35
	}
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    38
// CXMLAttributes::ConstructL
hgs
parents:
diff changeset
    39
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
    40
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    41
//
hgs
parents:
diff changeset
    42
void CXMLAttributes::ConstructL()
hgs
parents:
diff changeset
    43
    {
hgs
parents:
diff changeset
    44
		iDescAttName = new (ELeave) CDesCArraySeg(1);
hgs
parents:
diff changeset
    45
		iDescAttValue = new (ELeave) CDesCArraySeg(1);
hgs
parents:
diff changeset
    46
    }
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    49
// CXMLAttributes::NewL
hgs
parents:
diff changeset
    50
// Two-phased constructor.
hgs
parents:
diff changeset
    51
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    52
//
hgs
parents:
diff changeset
    53
CXMLAttributes* CXMLAttributes::NewL()
hgs
parents:
diff changeset
    54
    {
hgs
parents:
diff changeset
    55
		CXMLAttributes* self = new( ELeave ) CXMLAttributes;
hgs
parents:
diff changeset
    56
    
hgs
parents:
diff changeset
    57
		CleanupStack::PushL( self );
hgs
parents:
diff changeset
    58
		self->ConstructL();
hgs
parents:
diff changeset
    59
		CleanupStack::Pop();
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
		return self;
hgs
parents:
diff changeset
    62
    }
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    
hgs
parents:
diff changeset
    65
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    66
// CXMLAttributes::~CXMLAttributes()
hgs
parents:
diff changeset
    67
// Destructor.
hgs
parents:
diff changeset
    68
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
//
hgs
parents:
diff changeset
    70
CXMLAttributes::~CXMLAttributes()
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
		if(iDescAttName)
hgs
parents:
diff changeset
    73
		{
hgs
parents:
diff changeset
    74
			delete iDescAttName;
hgs
parents:
diff changeset
    75
		}
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
		if(iDescAttValue)
hgs
parents:
diff changeset
    78
		{
hgs
parents:
diff changeset
    79
			delete iDescAttValue;
hgs
parents:
diff changeset
    80
		}
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    }
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    86
// CXMLAttributes::GetIndex
hgs
parents:
diff changeset
    87
// ?implementation_description
hgs
parents:
diff changeset
    88
// (other items were commented in a header).
hgs
parents:
diff changeset
    89
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    90
//
hgs
parents:
diff changeset
    91
TInt CXMLAttributes::GetIndex(TDesC& aName)
hgs
parents:
diff changeset
    92
   {
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
		TInt wIndex = 0;
hgs
parents:
diff changeset
    95
		if(iDescAttName->Find(aName,wIndex) != KErrNone)
hgs
parents:
diff changeset
    96
		{
hgs
parents:
diff changeset
    97
			return KErrNotFound;
hgs
parents:
diff changeset
    98
		}
hgs
parents:
diff changeset
    99
		else
hgs
parents:
diff changeset
   100
		{
hgs
parents:
diff changeset
   101
			return wIndex;
hgs
parents:
diff changeset
   102
		}
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
   }
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   107
// CXMLAttributes::GetLength
hgs
parents:
diff changeset
   108
// ?implementation_description
hgs
parents:
diff changeset
   109
// (other items were commented in a header).
hgs
parents:
diff changeset
   110
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   111
//
hgs
parents:
diff changeset
   112
TInt CXMLAttributes::GetLength()
hgs
parents:
diff changeset
   113
   {
hgs
parents:
diff changeset
   114
		return iDescAttName->Count();
hgs
parents:
diff changeset
   115
   }
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   118
// CXMLAttributes::GetName
hgs
parents:
diff changeset
   119
// ?implementation_description
hgs
parents:
diff changeset
   120
// (other items were commented in a header).
hgs
parents:
diff changeset
   121
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   122
//
hgs
parents:
diff changeset
   123
TPtrC CXMLAttributes::GetName(TInt  aIndex)
hgs
parents:
diff changeset
   124
   {
hgs
parents:
diff changeset
   125
		if(aIndex > iDescAttName->Count() || aIndex < 0)
hgs
parents:
diff changeset
   126
		{
hgs
parents:
diff changeset
   127
			TPtrC wEmpty = _L(" ");
hgs
parents:
diff changeset
   128
			return wEmpty;
hgs
parents:
diff changeset
   129
		}
hgs
parents:
diff changeset
   130
		return iDescAttName->MdcaPoint(aIndex);
hgs
parents:
diff changeset
   131
		
hgs
parents:
diff changeset
   132
   }
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   135
// CXMLAttributes::GetValue
hgs
parents:
diff changeset
   136
// ?implementation_description
hgs
parents:
diff changeset
   137
// (other items were commented in a header).
hgs
parents:
diff changeset
   138
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   139
//
hgs
parents:
diff changeset
   140
TPtrC CXMLAttributes::GetValue(TDesC& aName)
hgs
parents:
diff changeset
   141
   {
hgs
parents:
diff changeset
   142
		TInt wPos = GetIndex(aName);
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
		if (wPos < 0)
hgs
parents:
diff changeset
   145
		{
hgs
parents:
diff changeset
   146
			TPtrC wEmpty = _L(" ");
hgs
parents:
diff changeset
   147
			return wEmpty;
hgs
parents:
diff changeset
   148
		}
hgs
parents:
diff changeset
   149
		return iDescAttValue->MdcaPoint(wPos);
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
   }
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   154
// CXMLAttributes::GetValue
hgs
parents:
diff changeset
   155
// ?implementation_description
hgs
parents:
diff changeset
   156
// (other items were commented in a header).
hgs
parents:
diff changeset
   157
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   158
//
hgs
parents:
diff changeset
   159
TPtrC CXMLAttributes::GetValue(TInt& aIndex)
hgs
parents:
diff changeset
   160
   {
hgs
parents:
diff changeset
   161
		if(aIndex > iDescAttName->Count() || aIndex < 0)
hgs
parents:
diff changeset
   162
		{
hgs
parents:
diff changeset
   163
			TPtrC wEmpty = _L(" ");
hgs
parents:
diff changeset
   164
			return wEmpty;
hgs
parents:
diff changeset
   165
		}
hgs
parents:
diff changeset
   166
		return iDescAttValue->MdcaPoint(aIndex);
hgs
parents:
diff changeset
   167
   }
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   170
// CXMLAttributes::GetType
hgs
parents:
diff changeset
   171
// ?implementation_description
hgs
parents:
diff changeset
   172
// (other items were commented in a header).
hgs
parents:
diff changeset
   173
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   174
/// R&D: Feature: GetType missing from Attributes
hgs
parents:
diff changeset
   175
TPtrC CXMLAttributes::GetType(TInt /*aIndex*/)
hgs
parents:
diff changeset
   176
   {
hgs
parents:
diff changeset
   177
		TPtrC wType = _L(" ");
hgs
parents:
diff changeset
   178
		return(wType);
hgs
parents:
diff changeset
   179
   }
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   182
// CXMLAttributes::GetType
hgs
parents:
diff changeset
   183
// ?implementation_description
hgs
parents:
diff changeset
   184
// (other items were commented in a header).
hgs
parents:
diff changeset
   185
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   186
// R&D: Feature: GetType missing from Attributes
hgs
parents:
diff changeset
   187
TPtrC CXMLAttributes::GetType(TDesC& /*aName*/)
hgs
parents:
diff changeset
   188
   {
hgs
parents:
diff changeset
   189
		TPtrC wType = _L(" ");
hgs
parents:
diff changeset
   190
		return wType;
hgs
parents:
diff changeset
   191
   }
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   194
// CXMLAttributes::Append
hgs
parents:
diff changeset
   195
// ?implementation_description
hgs
parents:
diff changeset
   196
// (other items were commented in a header).
hgs
parents:
diff changeset
   197
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   198
//
hgs
parents:
diff changeset
   199
void CXMLAttributes::AppendL(const TDesC& aName, const TDesC& aValue)
hgs
parents:
diff changeset
   200
   {
hgs
parents:
diff changeset
   201
		if ( iDescAttName && iDescAttValue )
hgs
parents:
diff changeset
   202
		{
hgs
parents:
diff changeset
   203
			iDescAttName->AppendL(aName);
hgs
parents:
diff changeset
   204
			iDescAttValue->AppendL(aValue);
hgs
parents:
diff changeset
   205
		}
hgs
parents:
diff changeset
   206
   }
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   209
// CXMLAttributes::Reset()
hgs
parents:
diff changeset
   210
// Resets attribute Name and Value arrays
hgs
parents:
diff changeset
   211
// (other items were commented in a header).
hgs
parents:
diff changeset
   212
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   213
//
hgs
parents:
diff changeset
   214
void CXMLAttributes::Reset()
hgs
parents:
diff changeset
   215
	{
hgs
parents:
diff changeset
   216
		iDescAttName->Reset();
hgs
parents:
diff changeset
   217
		iDescAttValue->Reset();
hgs
parents:
diff changeset
   218
	}
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
//  End of File