diff -r 417699dc19c9 -r c7e9f1c97567 xml/legacyminidomparser/XMLDom/INC/GMXMLElement.h --- a/xml/legacyminidomparser/XMLDom/INC/GMXMLElement.h Thu Jul 01 15:13:40 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -// Copyright (c) 2001-2009 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: -// This file contains the declaration of the CMDXMLElement class. -// -// - -/** - @file -*/ - -#ifndef __GMXMLELEMENT_H__ -#define __GMXMLELEMENT_H__ - -#include -#include -#include - - -// forward references -class CMDXMLEntityConverter; -class CMDXMLComposer; - - -// Constants for the initial and terminal states -const TInt KXMLMinJump = 5; // Don't do binary chop below this size. Not a critical value. - -class CMDXMLElement : public CMDXMLNode -/** Generic XML element, and base class for particular XML element types. - -It provides access to the element tag name and its attribute list. Attributes are -stored as name-value pairs. -@publishedPartner -@released -*/ -{ -public: - /** Allocates and constructs a new CMDXMLElement, leaving the object on the cleanup - stack. - - @param aCanHaveChildren Set to true if the element can have children - @param aOwnerDocument Pointer to the document at the root of the DOM tree - @param aTagName Name of the tag for the element - @leave KErrNoMemory Out of memory - @return The new CMDXMLElement */ - IMPORT_C static CMDXMLElement* NewLC( TBool aCanHaveChildren, CMDXMLDocument* aOwnerDocument, TPtrC aTagName ); - - /** Allocates and constructs a new CMDXMLElement. - - @param aCanHaveChildren Set to true if the element can have children - @param aOwnerDocument Pointer to the document at the root of the DOM tree - @param aTagName Name of the tag for the element - @leave KErrNoMemory Out of memory - @return The new CMDXMLElement */ - IMPORT_C static CMDXMLElement* NewL( TBool aCanHaveChildren, CMDXMLDocument* aOwnerDocument, TPtrC aTagName ); - - /** Destructor. */ - IMPORT_C virtual ~CMDXMLElement(); - - // Attribute handling routines. - - /** Gets a specified attribute value. - - @param aAttributeName Name of the attribute to get - @param aAttributeValue On return, the value of the attribute - @return KErrNone if successful, KErrNotFound if the named attribute is not set. */ - IMPORT_C virtual TInt GetAttribute(const TDesC& aAttributeName, TPtrC& aAttributeValue ) const; - - /** Checks the validity of an attribute and adds it to the DOM if it's valid. - - @param aAttributeName Name of the attribute to set - @param aAttributeValue Value of the attribute - @leave KErrNoMemory Out of memory - @return KErrNone if successful, KErrNotSupported if an invalid attribute name - or attribute value. */ - IMPORT_C virtual TInt SetAttributeL(const TDesC& aAttributeName, const TDesC& aAttributeValue); - - /** Checks the validity of an attribute and adds it to the DOM. The aStoreInvalid - parameter is used to control whether invalid attributes are added to the DOM. - @param aAttributeName Name of the attribute to set - @param aAttributeValue Value of the attribute - @param aStoreInvalid If set to EFalse only attributes that are found to be valid will be added to - the DOM. Set to ETrue to store all attributes in the DOM, even those that are invalid. - @leave KErrNoMemory Out of memory - @return KErrNone if successful, KErrNotSupported if an invalid attribute name - or attribute value. */ - IMPORT_C TInt SetAttributeL(const TDesC& aAttributeName, const TDesC& aAttributeValue, TBool aStoreInvalid); - - /** Removes a specified attribute. - - @param aAttributeName Name of the attribute to remove - @return KErrNone if successful, KErrNotFound if the named attribute is not - present. */ - IMPORT_C virtual TInt RemoveAttribute(const TDesC& aAttributeName); - - /** Tests if a specified attribute is set. - - @param aAttributeName Name of the attribute to test - @return True if the named attribute has a value set, false if not */ - IMPORT_C virtual TBool IsAttributeSpecified(const TDesC& aAttributeName) const; - - - /** Checks the children of this node for validity. - - It checks that the list of child elements conforms to those allowed by the DTD. - - In a generic CMDXMLElement object, this is always true as it has no basis - for a meaningful check. As well as checking the list of direct children, it - calls CheckChildren() for each child element. It does not check child nodes - that are not elements, as they cannot have children. - - @return True if the node has valid children */ - IMPORT_C virtual TBool CheckChildren(); - -// maybe these should be node functions ? - /** Gets a pointer to the first child of a given type if any, otherwise returns - NULL. - - @param aElementType Name of element type to return - @return First child element */ - IMPORT_C CMDXMLElement* FirstChildOfType(const TDesC& aElementType); - - /** Gets a pointer to the last child of a given type if any, otherwise returns - NULL. - - @param aElementType Name of element type to return - @return Last child element */ - IMPORT_C CMDXMLElement* LastChildOfType(const TDesC& aElementType); - - - -protected: //construction - /** - * Constructor - * @param aCanHaveChildren Flag to indicate if the node represents a node which is allowed children - * @param aOwnerDocument Pointer to the document at the root of the DOM tree - if NULL then assume this is the root - */ - IMPORT_C CMDXMLElement( TBool aCanHaveChildren, CMDXMLDocument* aOwnerDocument ); - - void ConstructL(); -protected: - /** - * Check the immediate children of this element - i.e. the first level of children only - * The default implementation returns true - derived classes can override with - * DTD-specific checks. - * @return True if immediate children are valid - */ - IMPORT_C virtual TBool CheckImmediateChildren(); - -private: - TBool DoCheckImmediateChildrenL(); - - -public: - /** Finds an attribute and returns the index of it. - - @param aAttName The attribute to search for - @return The index of the attribute if found, or KErrNotFound */ - IMPORT_C TInt FindIndex(const TDesC &aAttName); - - - /** Gets the name and value of an attribute at a given index. - - @param Index The array index of the element for which details are required - @param aAttributeName The attribute name returned - @param aAttributeValue The attribute value returned - @return KErrNone if index is valid, else KErrNotFound */ - IMPORT_C TInt AttributeDetails(TInt Index, TPtrC& aAttributeName, TPtrC& aAttributeValue); - - /** Gets the number of attributes that this element has. - - @return The number of attributes held by the element */ - IMPORT_C TInt NumAttributes(); - -protected: - /** Store attribute names */ - CDesCArraySeg* iDescAttName; // Store Attribute Names - /** Store attribute values */ - CDesCArraySeg* iDescAttValue; // Store Attribute Values - -}; - - -#endif