summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-01-13 08:04:07 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-01-13 08:04:07 +0000
commit7ce753df89bd8b69cd57c1dd65e524f61fd4b17a (patch)
treea152dd370db022ffff6e9dbdd126597738855d3d
parent7fc769477e6f686664c4cd86625938a343989fd3 (diff)
downloadATCD-7ce753df89bd8b69cd57c1dd65e524f61fd4b17a.tar.gz
*** empty log message ***
-rw-r--r--ACEXML/common/Attributes_Def_Builder.h8
-rw-r--r--ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp53
-rw-r--r--ACEXML/parser/debug_validator/Debug_Attributes_Builder.h53
-rw-r--r--ACEXML/parser/debug_validator/Element_Tree.i10
-rw-r--r--ACEXML/parser/parser/Entity_Manager.h2
5 files changed, 111 insertions, 15 deletions
diff --git a/ACEXML/common/Attributes_Def_Builder.h b/ACEXML/common/Attributes_Def_Builder.h
index e684a6a1b37..4cd44509b8f 100644
--- a/ACEXML/common/Attributes_Def_Builder.h
+++ b/ACEXML/common/Attributes_Def_Builder.h
@@ -54,6 +54,12 @@ public:
virtual ~ACEXML_Attribute_Def_Builder () = 0;
/**
+ * Specify the name of the attribute.
+ */
+ virtual int setName (const ACEXML_Char *n) = 0;
+ virtual const ACEXML_Char *getName (void) = 0;
+
+ /**
* Set the attribute type.
*/
virtual int setAttType (const ATT_TYPE type,
@@ -64,7 +70,7 @@ public:
/**
* Insert an element for NOTATION or ENUMERATION type attribute.
*/
- virtual int insertList (const ACEXML_Char Name,
+ virtual int insertList (const ACEXML_Char *Name,
ACEXML_Env &xmlenv)
// ACE_THORW_SPEC ((ACEXML_SAXException))
= 0;
diff --git a/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp b/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp
index 78ef1d18086..6236b29187c 100644
--- a/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp
+++ b/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp
@@ -9,11 +9,33 @@ ACEXML_Debug_Attribute_Builder::ACEXML_Debug_Attribute_Builder ()
{
}
+ACEXML_Debug_Attribute_Builder::ACEXML_Debug_Attribute_Builder (const ACEXML_Debug_Attribute_Builder &rhs)
+ : name_ (rhs.name_),
+ type_ (rhs.type_),
+ default_decl_ (rhs.default_decl_),
+ default_value_ (rhs.default_value_),
+ att_value_queue_ (rhs.att_value_queue_)
+{
+}
+
ACEXML_Debug_Attribute_Builder::~ACEXML_Debug_Attribute_Builder ()
{
}
int
+ACEXML_Debug_Attribute_Builder::setName (const ACEXML_Char *n)
+{
+ this->name_.set (n, 0);
+ return 0;
+}
+
+const ACEXML_Char *
+ACEXML_Debug_Attribute_Builder::getName (void)
+{
+ return this->name_.fast_rep ();
+}
+
+int
ACEXML_Debug_Attribute_Builder::setAttType (const ATT_TYPE type,
ACEXML_Env &xmlenv)
// ACE_THORW_SPEC ((ACEXML_SAXException))
@@ -28,25 +50,32 @@ ACEXML_Debug_Attribute_Builder::setAttType (const ATT_TYPE type,
}
int
-ACEXML_Debug_Attribute_Builder::insertList (const ACEXML_Char Name,
- ACEXML_Env &xmlenv)
+ACEXML_Debug_Attribute_Builder::insertList (const ACEXML_Char *n,
+ ACEXML_Env &)
// ACE_THORW_SPEC ((ACEXML_SAXException))
{
+ ACEXML_String str (n, 0, 0);
+ this->att_value_queue_.enqueue_tail (str);
+ return 0;
}
int
ACEXML_Debug_Attribute_Builder::setDefault (const DEFAULT_DECL def,
const ACEXML_Char *value,
- ACEXML_Env &xmlenv)
+ ACEXML_Env &)
// ACE_THORW_SPEC ((ACEXML_SAXException))
{
-
+ this->default_decl_ = def;
+ this->default_value_.set (value, 0);
+ return 0;
}
int
ACEXML_Debug_Attribute_Builder::validAttr (void)
{
+ // @@ Not implemented. Always return 1 (true) for now.
+ return 1;
}
// ========================================
@@ -66,6 +95,8 @@ ACEXML_Debug_Attributes_Builder::setElement (const ACEXML_Char *namespaceURI,
ACEXML_Env &xmlenv)
// ACE_THROW_SPEC ((ACEXML_SAXException))
{
+ this->element_name_.set (qName, 0);
+ return 0;
}
ACEXML_Attribute_Def_Builder *
@@ -81,9 +112,19 @@ ACEXML_Debug_Attributes_Builder::getAttribute_Def_Builder ()
int
ACEXML_Debug_Attributes_Builder::insertAttribute (ACEXML_Attribute_Def_Builder *def,
- ACEXML_Env &)
+ ACEXML_Env &xmlenv)
{
ACEXML_Attribute_Def_Builder::VAR ptr (def);
- return 0;
+ if (def != 0)
+ {
+ ACEXML_String attname (def->getName (), 0, 0);
+ ACEXML_Debug_Attribute_Builder *ptr =
+ ACE_dynamic_cast (ACEXML_Debug_Attribute_Builder *, def);
+ this->attributes_.bind (attname, *ptr);
+ return 0;
+ }
+ xmlenv.exception (new ACEXML_SAXParseException ("ACEXML_Debug_Attributes_Builder internal error"));
+ return -1;
+
}
diff --git a/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h b/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h
index 906e2c3ec93..7737964927d 100644
--- a/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h
+++ b/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h
@@ -14,6 +14,11 @@
#include "common/Attributes_Def_Builder.h"
#include "parser/debug_validator/Debug_DTD_Manager_Export.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Unbounded_Queue.h"
+
+typedef ACE_Unbounded_Queue<ACEXML_String> ACEXML_STRING_QUEUE;
+typedef ACE_Unbounded_Queue_Iterator<ACEXML_String> ACEXML_STRING_QUEUE_ITERATOR;
/**
* @ class ACEXML_Debug_Attribute_Builder Debug_Attributes_Builder.h "parser/debug_validator/Debug_Attributes_Builder.h"
@@ -26,9 +31,17 @@ class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_Attribute_Builder
public:
ACEXML_Debug_Attribute_Builder ();
+ ACEXML_Debug_Attribute_Builder (const ACEXML_Debug_Attribute_Builder &rhs);
+
virtual ~ACEXML_Debug_Attribute_Builder ();
/**
+ * Specify the name of the attribute.
+ */
+ virtual int setName (const ACEXML_Char *n);
+ virtual const ACEXML_Char *getName (void);
+
+ /**
* Set the attribute type.
*/
virtual int setAttType (const ATT_TYPE type,
@@ -39,7 +52,7 @@ public:
/**
* Insert an element for NOTATION or ENUMERATION type attribute.
*/
- virtual int insertList (const ACEXML_Char Name,
+ virtual int insertList (const ACEXML_Char *Name,
ACEXML_Env &xmlenv)
// ACE_THORW_SPEC ((ACEXML_SAXException))
;
@@ -61,13 +74,43 @@ public:
virtual int validAttr (void);
private:
+ /// Attribute name.
+ ACEXML_String name_;
+
/// Type of attribute.
ATT_TYPE type_;
/// Default value type.
DEFAULT_DECL default_decl_;
+
+ /// Default attribute value.
+ ACEXML_String default_value_;
+
+ /// Holds a queue of enumerated attribute values.
+ ACEXML_STRING_QUEUE att_value_queue_;
};
+typedef ACE_Hash_Map_Entry<ACEXML_String,
+ ACEXML_Debug_Attribute_Builder> ACEXML_ATT_MAP_ENTRY;
+
+typedef ACE_Hash_Map_Manager_Ex <ACEXML_String,
+ ACEXML_Debug_Attribute_Builder,
+ ACE_Hash<ACEXML_String>,
+ ACE_Equal_To<ACEXML_String>,
+ ACE_Null_Mutex> ACEXML_ATT_MAP;
+
+typedef ACE_Hash_Map_Iterator_Ex<ACEXML_String,
+ ACEXML_Debug_Attribute_Builder,
+ ACE_Hash<ACEXML_String>,
+ ACE_Equal_To<ACEXML_String>,
+ ACE_Null_Mutex> ACEXML_ATT_MAP_ITER;
+
+typedef ACE_Hash_Map_Reverse_Iterator_Ex<ACEXML_String,
+ ACEXML_Debug_Attribute_Builder,
+ ACE_Hash<ACEXML_String>,
+ ACE_Equal_To<ACEXML_String>,
+ ACE_Null_Mutex> ACEXML_ATT_MAP_REVERSE_ITER;
+
/**
* @ class ACEXML_Debug_Attributes_Builder Debug_Attributes_Builder.h "parser/debug_validator/Debug_Attributes_Builder.h"
*
@@ -104,6 +147,14 @@ public:
virtual int insertAttribute (ACEXML_Attribute_Def_Builder *def,
ACEXML_Env &xmlenv);
+protected:
+ /// The name of the element type these attributes applied.
+ ACEXML_String element_name_;
+
+ /// Collection of attributes.
+ ACEXML_ATT_MAP attributes_;
};
+
+
#endif /* _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_ */
diff --git a/ACEXML/parser/debug_validator/Element_Tree.i b/ACEXML/parser/debug_validator/Element_Tree.i
index 9d0d3cab8cf..4b408835403 100644
--- a/ACEXML/parser/debug_validator/Element_Tree.i
+++ b/ACEXML/parser/debug_validator/Element_Tree.i
@@ -61,20 +61,20 @@ ACEXML_Element_Tree_List_Stack::ACEXML_Element_Tree_List_Stack (void)
}
ACEXML_INLINE ACEXML_Element_Tree_List_Node *
-ACEXML_Element_Tree_list_Stack::top ()
+ACEXML_Element_Tree_List_Stack::top ()
{
return this->top_;
}
ACEXML_INLINE void
-ACEXML_Element_Tree_list_Stack::push (ACEXML_Element_Tree_List_Node *n)
+ACEXML_Element_Tree_List_Stack::push (ACEXML_Element_Tree_List_Node *n)
{
n->pop_next_ = this->top_;
this->top_ = n;
}
ACEXML_INLINE ACEXML_Element_Tree_List_Node *
-ACEXML_Element_Tree_list_Stack::pop ()
+ACEXML_Element_Tree_List_Stack::pop ()
{
if (this->top_ != 0)
{
@@ -85,8 +85,8 @@ ACEXML_Element_Tree_list_Stack::pop ()
return 0;
}
-ACEXML_INLINE ACEXML_Element_Tree_List_Node *
-ACEXML_Element_Tree_list_Stack::empty ()
+ACEXML_INLINE int
+ACEXML_Element_Tree_List_Stack::empty ()
{
return this->top_ == 0;
}
diff --git a/ACEXML/parser/parser/Entity_Manager.h b/ACEXML/parser/parser/Entity_Manager.h
index cd168af29b3..205715e7a4e 100644
--- a/ACEXML/parser/parser/Entity_Manager.h
+++ b/ACEXML/parser/parser/Entity_Manager.h
@@ -15,9 +15,7 @@
#include "common/XML_Types.h"
#include "parser/parser/Parser_export.h"
-#include "ace/Functor.h"
#include "ace/Hash_Map_Manager.h"
-#include "ace/Containers_T.h"
typedef ACE_Hash_Map_Entry<ACEXML_String,
ACEXML_String> ACEXML_ENTITY_ENTRY;