diff -r 2580314736af -r 2669f8761a99 xdmprotocols/XcapProtocol/XcapAppUsage/XcapDirectoryUsage/src/XcapDirectoryUsage.cpp --- a/xdmprotocols/XcapProtocol/XcapAppUsage/XcapDirectoryUsage/src/XcapDirectoryUsage.cpp Thu Aug 19 10:19:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: CXcapDirectoryUsage -* -*/ - - - - -#include -#include -#include -#include "XcapDirectoryUsage.h" - - -// Used specification -// OMA-TS-XDM_Core-V1_0-20051103-C, 03 November 2005 - -// ---------------------------------------------------- -// CXcapDirectoryUsage::CXcapDirectoryUsage -// -// ---------------------------------------------------- -// -CXcapDirectoryUsage::CXcapDirectoryUsage( const CXdmEngine& aXdmEngine ) : - CXcapAppUsage( aXdmEngine ) - { - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::NewL -// -// ---------------------------------------------------- -// -CXcapDirectoryUsage* CXcapDirectoryUsage::NewL( const TXcapAppUsageParams& aParameters ) - { - CXcapDirectoryUsage* self = new ( ELeave ) CXcapDirectoryUsage( aParameters.iXdmEngine ); - CleanupStack::PushL( self ); // << self - self->ConstructL(); - CleanupStack::Pop( self ); // >> self - return self; - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::~CXcapDirectoryUsage -// -// ---------------------------------------------------- -// -CXcapDirectoryUsage::~CXcapDirectoryUsage() - { - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::ConstructL -// -// ---------------------------------------------------- -// -void CXcapDirectoryUsage::ConstructL() - { - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::AUID -// -// ---------------------------------------------------- -// -TPtrC8 CXcapDirectoryUsage::AUID() const - { - return TPtrC8( KXdmDirectoryUsageAUID ); - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::ContentType -// -// ---------------------------------------------------- -// -TPtrC8 CXcapDirectoryUsage::ContentType() const - { - return TPtrC8( KXdmDirectoryUsageContType ); - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::DefaultNamespace -// -// ---------------------------------------------------- -// -TPtrC8 CXcapDirectoryUsage::DefaultNamespace() const - { - return TPtrC8( KXdmDirectoryNamespace ); - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::ValidateNodeL -// -// ---------------------------------------------------- -// -TBool CXcapDirectoryUsage::ValidateNodeL( CXdmDocumentNode& aXdmNode ) - { - // This method is called by base class for each element - // in document, here we have to declare every element, check element - // datatype, restrictions for values and also do all checking that concerns - // the structure of the element. If the datatype is some of - // the common datatypes defined in xcapappusage.h, the node - // can pe passed to the base class for value validation. - // If the node belongs to this namespace, the return value - // should be true, false otherwise. - - TBool found( EFalse ); - TPtrC element = aXdmNode.NodeName(); - - // - if ( Match( element, KXdmXcapDirectory ) ) - { - found = ETrue; - } - // - else if ( Match( element, KXdmFolder ) ) - { - // required attribute auid - if ( !aXdmNode.HasAttribute( KXdmAuid ) ) - { - LeaveWithErrorL( KXcapErrorMissingRequiredAttribute ); - } - // there should be either or - // element, not both - TBool entry( EFalse ); - TBool errorcode( EFalse ) ; - TInt count( aXdmNode.NodeCount() ); - for ( TInt i(0); i < count; i++ ) - { - TPtrC childName = aXdmNode.ChileNode(i)->NodeName(); - if ( childName.CompareF( KXdmEntry ) ) - { - entry = ETrue; - } - else if ( childName.CompareF( KXdmErrorCode ) ) - { - errorcode = ETrue; - } - } - if ( entry && errorcode ) - { - LeaveWithErrorL( KXcapErrorSchemaViolation ); - } - found = ETrue; - } - // - else if ( Match( element, KXdmEntry ) ) - { - // required attributes uri and etag - if ( !aXdmNode.HasAttribute( KXdmUri ) ) - { - LeaveWithErrorL( KXcapErrorMissingRequiredAttribute ); - } - if ( !aXdmNode.HasAttribute( KXdmEtag ) ) - { - LeaveWithErrorL( KXcapErrorMissingRequiredAttribute); - } - found = ETrue; - } - // - else if ( Match( element, KXdmErrorCode ) ) - { - ValidateDataL( EDataTypeString, aXdmNode ); - found = ETrue; - } - return found; - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::ValidateAttributeL -// -// ---------------------------------------------------- -// -void CXcapDirectoryUsage::ValidateAttributeL( const CXdmNodeAttribute& aXdmNodeAttr ) - { - // This method is called by base class for each attribute - // in document, here we have to define data types - // for attributes, and pass them to the base class - // for the actual data checking. - - TDataType dataType ( EDataTypeUndefined ); - TPtrC attribute = aXdmNodeAttr.NodeName(); - // uri - if ( Match( attribute, KXdmUri ) ) - { - dataType = EDataTypeAnyURI; - } - // etag - else if ( Match( attribute, KXdmEtag ) ) - { - dataType = EDataTypeString; - } - // last-modified - else if ( Match( attribute, KXdmLastModified ) ) - { - dataType = EDataTypeDateTime; - } - // size - else if ( Match( attribute, KXdmSize ) ) - { - dataType = EDataTypeNonNegativeInteger; - } - // auid - else if ( Match( attribute, KXdmAuid ) ) - { - dataType = EDataTypeString; - } - // pass to base class for data validation - ValidateDataL( dataType, aXdmNodeAttr ); - } - -// ---------------------------------------------------- -// CXcapDirectoryUsage::AddNamespaceInformationL -// -// ---------------------------------------------------- -// -void CXcapDirectoryUsage::AddNamespaceInformationL( CXdmDocument& aXdmDocument ) - { - aXdmDocument.AppendNamespaceL( KXdmDirectoryNamespace, KNullDesC8 ); - } - -// End of File -