williamr@2: /* williamr@2: * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Class offers basic implementation of an XML attribute williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef SEN_BASE_ATTRIBUTE_H williamr@2: #define SEN_BASE_ATTRIBUTE_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Class offers basic implementation of an XML attribute williamr@2: * XML attribute is a name-value pair type value object, williamr@2: * which may or may not have a namespace prefix. Note williamr@2: * that both name and value may contain a namespace prefix. williamr@2: * @lib SenXML.dll williamr@2: * @since Series60 3.0 williamr@2: */ williamr@2: class CSenBaseAttribute : public CBase williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Basic two-phased constructor. williamr@2: * @since Series60 3.0 williamr@2: * @param aName: Name of the attribute williamr@2: * @param aValue: Attribute's value. williamr@2: * Leave codes: williamr@2: * KErrSenInvalidCharacters if aName contains illegal characters. williamr@2: * KErrSenZeroLengthDescriptor if aLocalName or aQName is zero length. williamr@2: */ williamr@2: IMPORT_C static CSenBaseAttribute* NewL(const TDesC8& aName, williamr@2: const TDesC8& aValue); williamr@2: williamr@2: /** williamr@2: * Basic constructor. williamr@2: * @since Series60 3.0 williamr@2: * @param aQName: Qualified name of the attribute williamr@2: * @param aName: Name of the attribute williamr@2: * @param aValue: Attribute's value. williamr@2: * Leave codes: williamr@2: * KErrSenInvalidCharacters if aName or aQName contain williamr@2: * illegal characters. williamr@2: * KErrSenZeroLengthDescriptor if aLocalName or aQName is zero length. williamr@2: */ williamr@2: IMPORT_C static CSenBaseAttribute* NewL(const TDesC8& aQName, williamr@2: const TDesC8& aName, williamr@2: const TDesC8& aValue); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: IMPORT_C virtual ~CSenBaseAttribute(); williamr@2: williamr@2: // New functions williamr@2: williamr@2: /** williamr@2: * Getter for the attribute name. williamr@2: * @since Series60 3.0 williamr@2: * @return the attribute name. williamr@2: */ williamr@2: virtual const TDesC8& Name() const; williamr@2: williamr@2: /** williamr@2: * Getter for the attribute value. williamr@2: * @since Series60 3.0 williamr@2: * @return the attribute value. williamr@2: */ williamr@2: virtual const TDesC8& Value() const; williamr@2: williamr@2: /** williamr@2: * Setter for the attribute value. williamr@2: * @since Series60 3.0 williamr@2: * @param aValue: value to be set williamr@2: * @return the new value. williamr@2: */ williamr@2: virtual const TDesC8& SetValueL(const TDesC8& aValue); williamr@2: williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * C++ default constructor williamr@2: * @since Series60 3.0 williamr@2: */ williamr@2: IMPORT_C CSenBaseAttribute(); williamr@2: williamr@2: /** williamr@2: * Following BaseConstructL methods should be called from the deriving williamr@2: * classes ConstructL() methods. Parameter info is found in the williamr@2: * corresponding NewL-methods. williamr@2: * @since Series60 3.0 williamr@2: * @param aName is the name of this attribute. Cannot contain characters williamr@2: * that are illegal in XML (like basic entities in decoded form) williamr@2: * @param aValue is the value of this attribute. Cannot contain characters williamr@2: * that are illegal in XML (like basic entities in decoded form) williamr@2: */ williamr@2: IMPORT_C void BaseConstructL(const TDesC8& aName, williamr@2: const TDesC8& aValue); williamr@2: williamr@2: /** williamr@2: * @since Series60 3.0 williamr@2: * @param aName is the name of this attribute. Cannot contain characters williamr@2: * that are illegal in XML (like basic entities in decoded form) williamr@2: * @param aQName is the qualified, prefixed name of this XML attribute. williamr@2: * Cannot contain characters which are illegal in XML. williamr@2: * @param aValue is the value of this attribute. Cannot contain characters williamr@2: * that are illegal in XML (like basic entities in decoded form) williamr@2: */ williamr@2: IMPORT_C void BaseConstructL(const TDesC8& aName, williamr@2: const TDesC8& aQName, williamr@2: const TDesC8& aValue); williamr@2: williamr@2: private: // Data williamr@2: HBufC8* ipName; williamr@2: HBufC8* ipValue; williamr@2: }; williamr@2: williamr@2: #endif // SEN_BASE_ATTRIBUTE_H williamr@2: williamr@2: // End of File williamr@2: