Fawkes API Fawkes Development Version
InterfaceField Class Reference

Interface generator internal representation of a field as parsed from the XML template file. More...

#include <interfaces/generator/field.h>

Public Member Functions

 InterfaceField (std::vector< InterfaceEnumConstant > *enum_constants=NULL)
 Constructor. More...
 
void setComment (const std::string &comment)
 Set comment of field. More...
 
void setName (const std::string &name)
 Set name of field. More...
 
void setType (const std::string &type)
 Set type of field. More...
 
bool isEnumType () const
 Check if type is an enum type. More...
 
void setLength (const std::string &length)
 Set length of field. More...
 
void setFlags (const std::vector< std::string > &flags)
 Set flags. More...
 
void setValidFor (const std::string &validfor)
 Set valid for time. More...
 
void setDefaultValue (const std::string &default_value)
 Set default value. More...
 
void setAttribute (const std::string &attr_name, const std::string &attr_value)
 Set attribute. More...
 
void valid (const std::set< std::string > &reserved_names)
 Assert validity. More...
 
std::string getName () const
 Get name of field. More...
 
std::string getComment () const
 Get comment of field. More...
 
std::string getType () const
 Get type of field. More...
 
std::string getAccessType () const
 Get type as used for accessor methods of class. More...
 
std::string getStructType () const
 Get type used to formulate struct. More...
 
std::string getPlainAccessType () const
 Get non-array accessor type. More...
 
std::string getLength () const
 Get field length. More...
 
std::string getMaxIdx () const
 Get maximum index (length - 1) More...
 
unsigned int getLengthValue () const
 Get length value. More...
 
std::vector< std::string > getFlags () const
 Get flags. More...
 
std::string getValidFor () const
 Get valid for time. More...
 
std::string getDefaultValue () const
 Get default value. More...
 
const std::vector< InterfaceEnumConstant > * getEnumConstants () const
 Get vector of enum constants. More...
 
const InterfaceEnumConstantgetEnumConstant (const std::string &name) const
 Get specific enum constant. More...
 
bool operator< (const InterfaceField &f) const
 Check order of two elements. More...
 

Detailed Description

Interface generator internal representation of a field as parsed from the XML template file.

Definition at line 32 of file field.h.

Constructor & Destructor Documentation

◆ InterfaceField()

InterfaceField::InterfaceField ( std::vector< InterfaceEnumConstant > *  enum_constants = NULL)

Constructor.

Parameters
enum_constantsenumeration constants that are available and which can be used as value type.

Definition at line 38 of file field.cpp.

Member Function Documentation

◆ getAccessType()

std::string InterfaceField::getAccessType ( ) const

Get type as used for accessor methods of class.

Returns
accessor type

Definition at line 77 of file field.cpp.

◆ getComment()

std::string InterfaceField::getComment ( ) const

Get comment of field.

Returns
comment of field.

Definition at line 68 of file field.cpp.

◆ getDefaultValue()

std::string InterfaceField::getDefaultValue ( ) const

Get default value.

Returns
default value

Definition at line 190 of file field.cpp.

◆ getEnumConstant()

const InterfaceEnumConstant & InterfaceField::getEnumConstant ( const std::string &  name) const

Get specific enum constant.

Parameters
nametype name of enum constant
Returns
const reference on enum constant
Exceptions
Exceptionthrown if no enum constant of the given name could be found

Definition at line 211 of file field.cpp.

◆ getEnumConstants()

const std::vector< InterfaceEnumConstant > * InterfaceField::getEnumConstants ( ) const

Get vector of enum constants.

Returns
const reference to vector of interface enum constants.

Definition at line 199 of file field.cpp.

◆ getFlags()

std::vector< std::string > InterfaceField::getFlags ( ) const

Get flags.

Returns
flags.

Definition at line 230 of file field.cpp.

◆ getLength()

std::string InterfaceField::getLength ( ) const

Get field length.

Returns
field length

Definition at line 151 of file field.cpp.

◆ getLengthValue()

unsigned int InterfaceField::getLengthValue ( ) const

Get length value.

This gives the length of the value as a uint instead of a string which is sufficient for the generation of the interface but may not be sufficient for more elaborated usage.

Returns
length of the value

Definition at line 172 of file field.cpp.

◆ getMaxIdx()

std::string InterfaceField::getMaxIdx ( ) const

Get maximum index (length - 1)

Returns
maximum index

Definition at line 160 of file field.cpp.

◆ getName()

std::string InterfaceField::getName ( void  ) const

Get name of field.

Returns
name of field.

Definition at line 50 of file field.cpp.

Referenced by InterfaceParser::getFields().

◆ getPlainAccessType()

std::string InterfaceField::getPlainAccessType ( ) const

Get non-array accessor type.

Returns
accessor type

Definition at line 106 of file field.cpp.

◆ getStructType()

std::string InterfaceField::getStructType ( ) const

Get type used to formulate struct.

Returns
struct type

Definition at line 123 of file field.cpp.

◆ getType()

std::string InterfaceField::getType ( ) const

Get type of field.

Returns
type of field.

Definition at line 59 of file field.cpp.

◆ getValidFor()

std::string InterfaceField::getValidFor ( ) const

Get valid for time.

Returns
valid for time

Definition at line 181 of file field.cpp.

◆ isEnumType()

bool InterfaceField::isEnumType ( ) const

Check if type is an enum type.

Returns
true if the type of this field is an enum type, false otherwise

Definition at line 142 of file field.cpp.

◆ operator<()

bool InterfaceField::operator< ( const InterfaceField f) const

Check order of two elements.

The overall order is like the following:

  1. unsigned int
  2. int
  3. unsigned long int
  4. long int
  5. float
  6. double
  7. bool
  8. byte
  9. char *
    Parameters
    ffield to compare to
    Returns
    true, if current instance is small than f, false otherwise

Definition at line 416 of file field.cpp.

◆ setAttribute()

void InterfaceField::setAttribute ( const std::string &  attr_name,
const std::string &  attr_value 
)

Set attribute.

Parameters
attr_nameattribute name
attr_valueattribute value.

Definition at line 339 of file field.cpp.

References setDefaultValue(), setLength(), setName(), setType(), and setValidFor().

Referenced by InterfaceParser::getFields().

◆ setComment()

void InterfaceField::setComment ( const std::string &  comment)

Set comment of field.

Parameters
commentnew comment of field.

Definition at line 266 of file field.cpp.

Referenced by InterfaceParser::getFields().

◆ setDefaultValue()

void InterfaceField::setDefaultValue ( const std::string &  default_value)

Set default value.

Parameters
default_valuenew default value

Definition at line 295 of file field.cpp.

Referenced by setAttribute().

◆ setFlags()

void InterfaceField::setFlags ( const std::vector< std::string > &  flags)

Set flags.

Parameters
flagsnew flags of field

Definition at line 304 of file field.cpp.

◆ setLength()

void InterfaceField::setLength ( const std::string &  length)

Set length of field.

Parameters
lengthset length of field.

Definition at line 275 of file field.cpp.

Referenced by setAttribute().

◆ setName()

void InterfaceField::setName ( const std::string &  name)

Set name of field.

Parameters
namenew name of field.

Definition at line 257 of file field.cpp.

Referenced by setAttribute().

◆ setType()

void InterfaceField::setType ( const std::string &  type)

Set type of field.

Parameters
typenew type of field.

Definition at line 239 of file field.cpp.

Referenced by setAttribute().

◆ setValidFor()

void InterfaceField::setValidFor ( const std::string &  validfor)

Set valid for time.

Parameters
validfornew valid for time

Definition at line 286 of file field.cpp.

Referenced by setAttribute().

◆ valid()

void InterfaceField::valid ( const std::set< std::string > &  reserved_names)

Assert validity.

Calling valid() acts like an assertion. An Exception is thrown if something is wrong.

Parameters
reserved_namesreserved names that may not be used
Exceptions
InterfaceGeneratorInvalidTypeExceptionthrown if InterfaceDataTypeChecker reports invalid type.
InterfaceGeneratorInvalidValueExceptionthrown if any supplied value is illegal.
InterfaceGeneratorInvalidFlagExceptionthrown if invalid flag has been supplied.

Definition at line 367 of file field.cpp.

References InterfaceChecker::validName(), InterfaceChecker::validType(), and InterfaceChecker::validValue().

Referenced by InterfaceParser::getFields().


The documentation for this class was generated from the following files: