1 #ifndef __IArrayNode_h__ 2 #define __IArrayNode_h__ 1 38 kAFUnordered = 1 << 0,
44 kAFAlternative = 1 << 2,
54 virtual eArrayForm APICALL GetArrayForm()
const = 0;
61 virtual eNodeType APICALL GetChildNodeType()
const = 0;
71 virtual spINode APICALL GetNodeAtIndex(
sizet index ) = 0;
73 return const_cast< IArrayNode_v1 *
>( this )->GetNodeAtIndex( index );
88 auto node = GetNodeAtIndex( index );
89 if ( node )
return node->ConvertToSimpleNode();
94 auto node = GetNodeAtIndex( index );
95 if ( node )
return node->ConvertToSimpleNode();
111 auto node = GetNodeAtIndex( index );
112 if ( node )
return node->ConvertToStructureNode();
117 auto node = GetNodeAtIndex( index );
118 if ( node )
return node->ConvertToStructureNode();
134 auto node = GetNodeAtIndex( index );
135 if ( node )
return node->ConvertToArrayNode();
140 auto node = GetNodeAtIndex( index );
141 if ( node )
return node->ConvertToArrayNode();
158 virtual void APICALL InsertNodeAtIndex(
const spINode & node,
sizet index ) = 0;
182 virtual spINode APICALL RemoveNodeAtIndex(
sizet index ) = 0;
194 return const_cast< IArrayNode_v1 *
>( this )->GetActualIArrayNode();
207 return const_cast< IArrayNode_v1 *
>( this )->GetIArrayNode_I();
221 return MakeShared( const_cast< pIArrayNode_base >( ptr ) );
294 #ifdef FRIEND_CLASS_DECLARATION 295 FRIEND_CLASS_DECLARATION();
303 #endif // __IArrayNode_h__
static const uint64 kIArrayNodeID(0x634172724e6f6465)
XMP_PRIVATE spcISimpleNode GetSimpleNodeAtIndex(sizet index) const
Get the node at the specified index as simple node, if possible.
shared_ptr< ISimpleNode > spISimpleNode
XMP_PRIVATE spIStructureNode GetStructureNodeAtIndex(sizet index)
XMP_PRIVATE spIArrayNode GetArrayNodeAtIndex(sizet index)
shared_ptr< IStructureNode > spIStructureNode
eArrayForm
Indicates different kinds of array forms possible in XMP i.e, unordered, ordered and alternative...
IArrayNode_I * pIArrayNode_I
shared_ptr< const IArrayNode > spcIArrayNode
static const uint32 kAllBits(0xFFFFFFFF)
Version1 of the interface that serves as a base interface to all types of nodes in the XMP DOM...
Version1 of the interface that serves as a base interface to all composite types of nodes in the XMP ...
shared_ptr< IArrayNode > spIArrayNode
const IArrayNode_I * pcIArrayNode_I
virtual ~IArrayNode_v1() __NOTHROW__
Version1 of the interface that represents an Array Node of XMP DOM.
Version1 of the interface that represents an error/warning encountered during processing.
XMP_PRIVATE spISimpleNode GetSimpleNodeAtIndex(sizet index)
XMP_PRIVATE spcINode GetNodeAtIndex(sizet index) const
eNodeType
Indicates various types of node available in XMP Data Model like simple, array and structure...
shared_ptr< const ISimpleNode > spcISimpleNode
const IArrayNode * pcIArrayNode
#define REQ_FRIEND_CLASS_DECLARATION()
XMP_PRIVATE spcIStructureNode GetStructureNodeAtIndex(sizet index) const
Get the node at the specified index as structure node, if possible.
shared_ptr< INode > spINode
XMP_PRIVATE spcIArrayNode GetArrayNodeAtIndex(sizet index) const
Get the node at the specified index as an array node, if possible.
shared_ptr< const INode > spcINode
shared_ptr< const IStructureNode > spcIStructureNode