/*
* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:
*
*/
/** ----------------------------------------------------------------------- **
@package: NW_HED
@synopsis: Convenience functions for accessing the DOM.
@description: default
** ----------------------------------------------------------------------- **/
#ifndef NW_HED_DOM_HELPER_H
#define NW_HED_DOM_HELPER_H
#include "nw_dom_node.h"
#include "nw_string_string.h"
#include "nw_hed_context.h"
#include "nw_hed_entityset.h"
#include "BrsrStatusCodes.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* ------------------------------------------------------------------------- *
public data types
* ------------------------------------------------------------------------- */
/** ----------------------------------------------------------------------- **
@struct: NW_HED_DomHelper_t
@synopsis: default
@scope: public
@variables:
const NW_HED_EntitySet_t*
default
NW_HED_Context_t* context
default
NW_Bool resolvePlainTextVariablesAndEntities
default
@description: default
** ----------------------------------------------------------------------- **/
typedef struct NW_HED_DomHelper_s{
const NW_HED_EntitySet_t* entitySet;
NW_HED_Context_t* context;
NW_Bool resolvePlainTextVariablesAndEntities;
} NW_HED_DomHelper_t;
/* ------------------------------------------------------------------------- *
public methods
* ------------------------------------------------------------------------- */
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_ResolveEntities
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_EntitySet_t* entitySet
default
[in] const NW_Ucs2* origText
default
[out] NW_String_t* destString
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_ResolveEntities (const NW_HED_EntitySet_t* entitySet,
const NW_Ucs2* origText,
NW_String_t* destString);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetAttributeValue
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] const NW_DOM_Node_t* element
default
[in] NW_Uint16 attribute
default
[out] NW_String_t* value
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_GetAttributeValue (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* element,
NW_Uint16 attribute,
NW_String_t* value);
TBrowserStatusCode NW_HED_DomHelper_GetHTMLAttributeValue (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* element,
NW_Uint16 attribute,
NW_String_t* value);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetText
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] const NW_DOM_Node_t* element
default
[in] NW_Bool forceUcs2Copy
default
[out] NW_String_t* value
default
[out] NW_Uint32* valueEncoding
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_GetText (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* element,
NW_Bool forceUcs2Copy,
NW_String_t* value,
NW_Uint32* valueEncoding);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetChildText
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] const NW_DOM_Node_t* element
default
[out] NW_String_t* value
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_GetChildText (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* element,
NW_String_t* value);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_AttributeEquals
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] const NW_DOM_Node_t* element
default
[in] NW_Uint16 attribute
default
[in] const NW_String_t* value
default
@description: default
@returns: NW_Bool
default
** ----------------------------------------------------------------------- **/
NW_Bool NW_HED_DomHelper_AttributeEquals (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* element,
NW_Uint16 attribute,
const NW_String_t* value);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_IsMatch
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] const NW_DOM_Node_t* element
default
[in] NW_Uint16 elementType
default
[in] NW_Uint16 attribute
default
[in] const attributeMatchString
default
@description: default
@returns: NW_Bool
default
[default]
default
** ----------------------------------------------------------------------- **/
NW_Bool NW_HED_DomHelper_IsMatch (const NW_HED_DomHelper_t* domHelper,
NW_DOM_Node_t* element,
NW_Uint16 elementType,
NW_Uint16 attribute,
const NW_String_t* attributeMatchString);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_FindElement
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] NW_DOM_Node_t* rootNode
default
[in] NW_Int32 maxSearchDepth
default
[in] NW_Uint16 elementType
default
[in] NW_Uint16 attribute
default
[in] const NW_String_t* attributeMatchString
default
@description: default
@returns: NW_DOM_Node_t*
default
** ----------------------------------------------------------------------- **/
NW_DOM_Node_t* NW_HED_DomHelper_FindElement (const NW_HED_DomHelper_t* domHelper,
NW_DOM_Node_t* rootNode,
NW_Int32 maxSearchDepth,
NW_Uint16 elementType,
NW_Uint16 attribute,
const NW_String_t* attributeMatchString);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetEncoding
@synopsis: default
@scope: public
@parameters:
[in] const NW_DOM_Node_t* element
default
@description: default
@returns: NW_Uint32
default
** ----------------------------------------------------------------------- **/
NW_Uint32 NW_HED_DomHelper_GetEncoding (const NW_DOM_Node_t* element);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetDictionary
@synopsis: default
@scope: public
@parameters:
[in] const NW_DOM_Node_t* element
default
@description: default
@returns: NW_WBXML_Dictionary_t*
default
** ----------------------------------------------------------------------- **/
NW_WBXML_Dictionary_t* NW_HED_DomHelper_GetDictionary (const NW_DOM_Node_t* element);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetAttributeName
@synopsis: default
@scope: public
@parameters:
[in] const NW_DOM_Node_t* element
default
[in] NW_Uint16 attribute
default
[out] NW_String_t* name
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_GetAttributeName (const NW_DOM_Node_t* element,
NW_Uint16 attribute,
NW_String_t* name);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetElementToken
@synopsis: default
@scope: public
@parameters:
[in] const NW_DOM_Node_t* element
default
@description: default
@returns: NW_Uint16
default
** ----------------------------------------------------------------------- **/
NW_Uint16 NW_HED_DomHelper_GetElementToken (const NW_DOM_Node_t* element);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_GetElementName
@synopsis: default
@scope: public
@parameters:
[in] const NW_DOM_Node_t* element
default
[out] NW_String_t* name
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_GetElementName (const NW_DOM_Node_t* element,
NW_String_t* name);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_PrintTree
@synopsis: default
@scope: public
@parameters:
[in] const NW_HED_DomHelper_t* domHelper
default
[in] const rootNode
const NW_DOM_Node_t* rootNode
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_PrintTree (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* rootNode);
TBrowserStatusCode NW_HED_DomHelper_PrintNode (const NW_HED_DomHelper_t* domHelper,
const NW_DOM_Node_t* domNode);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_CatString
@synopsis: default
@scope: public
@parameters:
[in-out] NW_String_t* destString
default
[in] const NW_String_t* srcString
default
[in] NW_Uint32 srcEncoding
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_CatString (NW_String_t* destString,
const NW_String_t* srcString,
NW_Uint32 srcEncoding);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_CatUcs2String
@synopsis: default
@scope: public
@parameters:
[in-out] NW_String_t* destString
default
[in] const NW_Ucs2* srcString
default
@description: default
@returns: TBrowserStatusCode
default
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_CatUcs2String (NW_String_t* destString,
const NW_Ucs2* srcString);
/** ----------------------------------------------------------------------- **
@function: NW_HED_DomHelper_HasAttribute
@synopsis: default
@scope: public
@parameters:
[in] const NW_DOM_Node_t* element
default
[in] NW_Uint16 attribute
default
@description: default
@returns: TBrowserStatusCode
KBrsrSuccess- Attribute is found.
KBrsrNotFound - Attribute is not found.
KBrsrDomNodeTypeErr - not a DOM node
[default]
default
** ----------------------------------------------------------------------- **/
TBrowserStatusCode NW_HED_DomHelper_HasAttribute(const NW_DOM_Node_t* element,
NW_Uint16 attributeToken);
#ifdef __cplusplus
} // extern "C" {
#endif /* __cplusplus */
#endif /* NW_HED_DOM_HELPER_H */