diff -r 000000000000 -r 62f9d29f7211 webservices/wsdescription/src/senfacet.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsdescription/src/senfacet.cpp Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,193 @@ +/* +* Copyright (c) 2002-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: +* +*/ + + + + + + + + + + +// INCLUDE FILES +#include "SenFacet.h" + +EXPORT_C CSenFacet* CSenFacet::NewL() + { + CSenFacet* pNew = new (ELeave) CSenFacet; + CleanupStack::PushL(pNew); + pNew->ConstructL(KSenFacet); + CleanupStack::Pop(); // pNew + return pNew; + } + +EXPORT_C CSenFacet* CSenFacet::NewL( + const TDesC8& aNsUri, + const TDesC8& aLocalName, + const TDesC8& aQName, + const RAttributeArray& aAttributes + ) + { + CSenFacet* pNew = new (ELeave) CSenFacet; + CleanupStack::PushL(pNew); + pNew->ConstructL(aNsUri, aLocalName, aQName, aAttributes); + CleanupStack::Pop(); // pNew + return pNew; + } + +EXPORT_C CSenFacet* CSenFacet::NewL(CSenElement& aCopiedSource) + { + CSenFacet* pNew = new (ELeave) CSenFacet; + CleanupStack::PushL(pNew); + pNew->ConstructL(aCopiedSource); + CleanupStack::Pop(); // pNew; + return pNew; + } + + +EXPORT_C CSenFacet::~CSenFacet() + { + } + +EXPORT_C CSenFacet::CSenFacet() + { + } + +EXPORT_C void CSenFacet::ConstructL(const TDesC8& aLocalName) + { + BaseConstructL(aLocalName); + } + +EXPORT_C void CSenFacet::ConstructL(CSenElement& aCopiedSource) + { + BaseConstructL(aCopiedSource.LocalName()); + CopyFromL(aCopiedSource); + } + +EXPORT_C void CSenFacet::ConstructL(const TDesC8& aNsUri, + const TDesC8& aLocalName, + const TDesC8& aQName, + const RAttributeArray& aAttributes) + { + BaseConstructL(aNsUri, aLocalName, aQName, aAttributes); + } + +EXPORT_C void CSenFacet::SetNameL(const TDesC8& aName) + { + AddAttributeL(KFacetAttrName,aName); + } + +EXPORT_C void CSenFacet::SetTypeL(const TDesC8& aType) + { + AddAttributeL(KFacetAttrType,aType); + } + +EXPORT_C void CSenFacet::SetValueL(const TDesC8& aValue) + { + SetContentL(aValue); + } + +EXPORT_C TPtrC8 CSenFacet::Name() + { + const TDesC8* pAttrValue = AttrValue(KFacetAttrName); + if (pAttrValue) return TPtrC8(*pAttrValue); + else return KNullDesC8(); + } + +EXPORT_C TPtrC8 CSenFacet::Type() + { + const TDesC8* pAttrValue = AttrValue(KFacetAttrType); + if (pAttrValue) return TPtrC8(*pAttrValue); + else return KNullDesC8(); + } + +EXPORT_C TPtrC8 CSenFacet::Value() + { + return this->Content(); + } + +void CSenFacet::CopyFromL(CSenElement& aSource) + { + TPtrC8 sourceContent = aSource.Content(); + if (sourceContent.Length() > 0) + { + if ( ! HasContent() ) + { + SetContentL(sourceContent); + } + else + { + RWriteStream& ws = ContentWriteStreamL(); + ws.WriteL(sourceContent); + } + } + + RPointerArray sourceAttributes = aSource.AttributesL(); + if (sourceAttributes.Count() > 0) + { + for (TInt i=0;iName()); + if (pOriginal) + { + pOriginal->SetValueL(pBaseAttribute->Value()); + continue; + } + + CSenBaseAttribute* pNewBaseAttribute = + CSenBaseAttribute::NewL(pBaseAttribute->Name(), + pBaseAttribute->Value()); + CleanupStack::PushL(pNewBaseAttribute); + + RPointerArray& attributes = AttributesL(); +#ifdef EKA2 + attributes.AppendL(pNewBaseAttribute); +#else + User::LeaveIfError(attributes.Append(pNewBaseAttribute)); +#endif + CleanupStack::Pop(pNewBaseAttribute); + } + } + + RPointerArray sourceElements = aSource.ElementsL(); + if (sourceElements.Count() > 0) + { + for (TInt i=0;iLocalName()); + pNewElement->SetParent(this); + CleanupStack::PushL(pNewElement); + pNewElement->CopyFromL(*pElement); + + RPointerArray& elements = ElementsL(); +#ifdef EKA2 + elements.AppendL(pNewElement); +#else + User::LeaveIfError(elements.Append(pNewElement)); +#endif // EKA2 + CleanupStack::Pop(pNewElement); + } + } + } + +// End of File