ACEXML_Debug_Attribute_Builder Class Reference

#include <parser/debug_validator/Debug_Attributes_Builder.h>

Inheritance diagram for ACEXML_Debug_Attribute_Builder:

Inheritance graph
[legend]
Collaboration diagram for ACEXML_Debug_Attribute_Builder:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACEXML_Debug_Attribute_Builder ()
 ACEXML_Debug_Attribute_Builder (const ACEXML_Debug_Attribute_Builder &rhs)
virtual ~ACEXML_Debug_Attribute_Builder ()
virtual int setName (const ACEXML_Char *n)
virtual const ACEXML_ChargetName (void)
virtual int setAttType (const ATT_TYPE type ACEXML_ENV_ARG_DECL)
virtual int insertList (const ACEXML_Char *Name ACEXML_ENV_ARG_DECL)
virtual int setDefault (const DEFAULT_DECL def, const ACEXML_Char *value ACEXML_ENV_ARG_DECL)
virtual int validAttr (void)
virtual void dump (void)

Private Attributes

ACEXML_String name_
 Attribute name.
ATT_TYPE type_
 Type of attribute.
DEFAULT_DECL default_decl_
 Default value type.
ACEXML_String default_value_
 Default attribute value.
ACEXML_STRING_QUEUE att_value_queue_
 Holds a queue of enumerated attribute values.

Detailed Description

This class prints out the Attribute definition for debugging purpose.

Definition at line 34 of file Debug_Attributes_Builder.h.


Constructor & Destructor Documentation

ACEXML_Debug_Attribute_Builder::ACEXML_Debug_Attribute_Builder (  ) 

Definition at line 6 of file Debug_Attributes_Builder.cpp.

00007   : type_ (ERROR_TYPE),
00008     default_decl_ (INVALID)
00009 {
00010 }

ACEXML_Debug_Attribute_Builder::ACEXML_Debug_Attribute_Builder ( const ACEXML_Debug_Attribute_Builder rhs  ) 

Definition at line 12 of file Debug_Attributes_Builder.cpp.

00013   : name_ (rhs.name_),
00014     type_ (rhs.type_),
00015     default_decl_ (rhs.default_decl_),
00016     default_value_ (rhs.default_value_),
00017     att_value_queue_ (rhs.att_value_queue_)
00018 {
00019 }

ACEXML_Debug_Attribute_Builder::~ACEXML_Debug_Attribute_Builder (  )  [virtual]

Definition at line 21 of file Debug_Attributes_Builder.cpp.

00022 {
00023 }


Member Function Documentation

void ACEXML_Debug_Attribute_Builder::dump ( void   )  [virtual]

Dump the content of the attribute definition.

Implements ACEXML_Attribute_Def_Builder.

Definition at line 79 of file Debug_Attributes_Builder.cpp.

References ACE_Unbounded_Queue_Iterator< T >::advance(), ACEXML_Attribute_Def_Builder::CDATA, default_value_, ACEXML_Attribute_Def_Builder::ENTITIES, ACEXML_Attribute_Def_Builder::ENTITY, ACEXML_Attribute_Def_Builder::ENUMERATION, ACEXML_Attribute_Def_Builder::FIXED, ACEXML_Attribute_Def_Builder::ID, ACEXML_Attribute_Def_Builder::IDREF, ACEXML_Attribute_Def_Builder::IDREFS, ACEXML_Attribute_Def_Builder::IMPLIED, name_, ACE_Unbounded_Queue_Iterator< T >::next(), ACEXML_Attribute_Def_Builder::NMTOKEN, ACEXML_Attribute_Def_Builder::NMTOKENS, ACEXML_Attribute_Def_Builder::NOTATION, and ACEXML_Attribute_Def_Builder::REQUIRED.

00080 {
00081   cout << this->name_ << " ";
00082 
00083   switch (this->type_)
00084     {
00085     case CDATA:
00086       cout << "CDATA ";
00087       break;
00088     case ID:
00089       cout << "ID ";
00090       break;
00091     case IDREF:
00092       cout << "IDREF ";
00093       break;
00094     case IDREFS:
00095       cout << "IDREFS ";
00096       break;
00097     case ENTITY:
00098       cout << "ENTITY ";
00099       break;
00100     case ENTITIES:
00101       cout << "ENTITIES ";
00102       break;
00103     case NMTOKEN:
00104       cout << "NMTOKEN ";
00105       break;
00106     case NMTOKENS:
00107       cout << "NMTOKENS ";
00108       break;
00109     case NOTATION:
00110       cout << "NOTATION ";
00111       // Fall thru
00112     case ENUMERATION:
00113       {
00114         cout << "(";
00115         ACEXML_STRING_QUEUE_ITERATOR iter (this->att_value_queue_);
00116         ACEXML_String *n = 0;
00117 
00118         while (iter.advance () != 0)
00119           {
00120             if (n == 0)
00121               cout << " | ";
00122             iter.next (n);
00123             cout << *n;
00124           }
00125         cout << ") ";
00126       }
00127       break;
00128     default:
00129       cout << "*** UNKNOWN TYPE ***";
00130       break;
00131     }
00132 
00133   switch (this->default_decl_)
00134     {
00135     case REQUIRED:
00136       cout << "#REQUIRED";
00137       break;
00138     case IMPLIED:
00139       cout << "#IMPLIED";
00140       break;
00141     case FIXED:
00142       cout << "#FIXED " << this->default_value_;
00143       break;
00144     default:
00145       cout << "**** UNDEFINED DEFAULT DECL ****";
00146       break;
00147     }
00148 }

const ACEXML_Char * ACEXML_Debug_Attribute_Builder::getName ( void   )  [virtual]

Get the name of the attribute.

Implements ACEXML_Attribute_Def_Builder.

Definition at line 33 of file Debug_Attributes_Builder.cpp.

References ACE_String_Base< CHAR >::fast_rep(), and name_.

00034 {
00035   return this->name_.fast_rep ();
00036 }

virtual int ACEXML_Debug_Attribute_Builder::insertList ( const ACEXML_Char *Name  ACEXML_ENV_ARG_DECL  )  [virtual]

Insert an element for NOTATION or ENUMERATION type attribute.

Implements ACEXML_Attribute_Def_Builder.

int ACEXML_Debug_Attribute_Builder::setAttType ( const ATT_TYPE type  ACEXML_ENV_ARG_DECL  )  [virtual]

Set the attribute type.

Definition at line 39 of file Debug_Attributes_Builder.cpp.

References ACE_TEXT, ACEXML_THROW_RETURN, ACEXML_Attribute_Def_Builder::ERROR_TYPE, and type_.

00041 {
00042   if (this->type_ == ERROR_TYPE)
00043     {
00044       this->type_ = type;
00045       return 0;
00046     }
00047   ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("Attribute type redefinition in Debug Validator")), -1);
00048 
00049 }

int ACEXML_Debug_Attribute_Builder::setDefault ( const DEFAULT_DECL  def,
const ACEXML_Char *value  ACEXML_ENV_ARG_DECL 
) [virtual]

Set default attribute declaration.

Definition at line 62 of file Debug_Attributes_Builder.cpp.

References default_decl_, default_value_, and ACE_String_Base< CHAR >::set().

00065 {
00066   this->default_decl_ = def;
00067   this->default_value_.set (value, 0);
00068   return 0;
00069 }

int ACEXML_Debug_Attribute_Builder::setName ( const ACEXML_Char n  )  [virtual]

Specify the name of the attribute.

Implements ACEXML_Attribute_Def_Builder.

Definition at line 26 of file Debug_Attributes_Builder.cpp.

References name_, and ACE_String_Base< CHAR >::set().

00027 {
00028   this->name_.set (n, 0);
00029   return 0;
00030 }

int ACEXML_Debug_Attribute_Builder::validAttr ( void   )  [virtual]

Check validity of the current attribute definition being built.

Return values:
0 if the attribute is not a valid combo.

Implements ACEXML_Attribute_Def_Builder.

Definition at line 72 of file Debug_Attributes_Builder.cpp.

00073 {
00074   // @@ Not implemented.  Always return 1 (true) for now.
00075   return 1;
00076 }


Member Data Documentation

ACEXML_STRING_QUEUE ACEXML_Debug_Attribute_Builder::att_value_queue_ [private]

Holds a queue of enumerated attribute values.

Definition at line 93 of file Debug_Attributes_Builder.h.

DEFAULT_DECL ACEXML_Debug_Attribute_Builder::default_decl_ [private]

Default value type.

Definition at line 87 of file Debug_Attributes_Builder.h.

Referenced by setDefault().

ACEXML_String ACEXML_Debug_Attribute_Builder::default_value_ [private]

Default attribute value.

Definition at line 90 of file Debug_Attributes_Builder.h.

Referenced by dump(), and setDefault().

ACEXML_String ACEXML_Debug_Attribute_Builder::name_ [private]

Attribute name.

Definition at line 81 of file Debug_Attributes_Builder.h.

Referenced by dump(), getName(), and setName().

ATT_TYPE ACEXML_Debug_Attribute_Builder::type_ [private]

Type of attribute.

Definition at line 84 of file Debug_Attributes_Builder.h.

Referenced by setAttType().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:37:14 2010 for ACEXML by  doxygen 1.4.7