DataProvider::DataProviderTypeEntry Class Reference

the DataProviderTypeEntry class More...

Inherits Serializable.

## Public Member Functions

| addChild (string child)
| Adds a child node to the entry. More...
bool | clear ()
| Clears the type hierarchy of all non-locked types.
| constructor ()
| Creates the entry as a root node.
| constructor (string path, string name)
| Creates the entry as a child node.
*DataProviderTypeEntry | getChild (string child)
| Returns the given child, if any. More...
*DataProviderTypeEntry | getChildEx (string child)
| Returns the given child, if any, otherwise throws an exception. More...
*list< string > | getChildNames ()
| Returns a list of child entry names, if any. More...
DataProviderTypeEntry | getCreateChild (string child)
| Returns the given child and creates it if necessary. More...
hash< DataProviderTypeEntryInfo > | getInfo (*bool rec_children_only)
| Returns information about this entry. More...
string | getName ()
| Returns the name of the entry.
string | getPath ()
| Returns the path of the entry.
*AbstractDataProviderType | getType ()
| Returns the type at the entry level, if any. More...
*AbstractDataProviderType | getTypeEx ()
| Returns the type at the entry level, if any, otherwise throws an exception. More...
bool | hasType ()
| Returns True if the entry has a type.
*list< string > | listTypes ()
| Returns a list of registered data provider type paths. More...
bool | lock ()
| Locks the entry, so it can't be removed or changed. More...
| lockAll ()
| Locks all types.
| removeChild (string child)
| Removes the given child, if it exists. More...
*AbstractDataProviderType | setOrReplaceType (AbstractDataProviderType type)
| Sets or replaces the type for the entry. More...
bool | setType (AbstractDataProviderType type, bool locked=False)
| Sets the type for the entry. More...

## Protected Attributes

*hash< string, DataProviderTypeEntry > | children
| Children of this entry.
bool | locked = False
| True if the entry is locked and therefore cannot be deleted or updated More...
string | name
| The name of this entry.
string | path
| The path to this entry.
*hash< string, DataProviderTypeEntry > | rec_children
| Names of attributes that can be referenced as children that have their own fields.
*AbstractDataProviderType | type
| The type at this location.
*hash< string, DataProviderTypeEntry > | type_children
| Names of attributes that can be referenced as children.

## Private Member Functions

| constructor (string path, string name, AbstractDataProviderType type)
| Creates the entry as a child node.
| setTypeChildren ()
| Sets up attributes as children.

## Detailed Description

the DataProviderTypeEntry class

## Member Function Documentation

## addChild()

DataProvider::DataProviderTypeEntry::addChild | ( | string | child | ) |

Adds a child node to the entry.

Parameters

  child | the name of the child node to add

Exceptions

  CHILD-ERROR | a child with the same name already exists

## getChild()

*DataProviderTypeEntry DataProvider::DataProviderTypeEntry::getChild | ( | string | child | ) |

Returns the given child, if any.

Returns
  the given child, if any

## getChildEx()

*DataProviderTypeEntry DataProvider::DataProviderTypeEntry::getChildEx | ( | string | child | ) |

Returns the given child, if any, otherwise throws an exception.

Returns
  the given child, if any, otherwise throws an exception

Exceptions

  INVALID-CHILD | the given child is unknown

## getChildNames()

*list<string> DataProvider::DataProviderTypeEntry::getChildNames | ( |  | ) |

Returns a list of child entry names, if any.

Returns
  a list of child entry names, if any

## getCreateChild()

DataProviderTypeEntry DataProvider::DataProviderTypeEntry::getCreateChild | ( | string | child | ) |

Returns the given child and creates it if necessary.

Returns
  the given child and creates it if necessary

## getInfo()

hash<DataProviderTypeEntryInfo> DataProvider::DataProviderTypeEntry::getInfo | ( | *bool | rec_children_only | ) |

Returns information about this entry.

Parameters

  rec_children_only | if True, then only children with fields are returned

Returns
  information about this entry

## getType()

*AbstractDataProviderType DataProvider::DataProviderTypeEntry::getType | ( |  | ) |

Returns the type at the entry level, if any.

Returns
  the type at the entry level, if any

## getTypeEx()

*AbstractDataProviderType DataProvider::DataProviderTypeEntry::getTypeEx | ( |  | ) |

Returns the type at the entry level, if any, otherwise throws an exception.

Returns
  the type at the entry level, if any, otherwise throws an exception

Exceptions

  NO-TYPE | this entry has no type, only children

## listTypes()

*list<string> DataProvider::DataProviderTypeEntry::listTypes | ( |  | ) |

Returns a list of registered data provider type paths.

Note
  types are stored based on the path provided which may differ from their type names (which may be generic and therefore not suitable for indexing)

## lock()

bool DataProvider::DataProviderTypeEntry::lock | ( |  | ) |

Locks the entry, so it can't be removed or changed.

Returns
  the previous lock status

Exceptions

  TYPE-LOCK-ERROR | the entry cannot be locked, because it does not have a type

Note
  Locking is a one-way operation

## removeChild()

DataProvider::DataProviderTypeEntry::removeChild | ( | string | child | ) |

Removes the given child, if it exists.

Exceptions

  TYPE-LOCK-ERROR | the given child cannot be removed because it is locked

## setOrReplaceType()

*AbstractDataProviderType DataProvider::DataProviderTypeEntry::setOrReplaceType | ( | AbstractDataProviderType | type | ) |

Sets or replaces the type for the entry.

Parameters

  type | the type to set for this entry

Returns
  True if a new type was added, False if not

Exceptions

  TYPE-LOCK-ERROR | type entry cannot be replaced, because it is locked

## setType()

bool DataProvider::DataProviderTypeEntry::setType | ( | AbstractDataProviderType | type,
|  | bool | locked = `False`
| ) |  |

Sets the type for the entry.

Parameters

  type | the type to set for this entry
  locked | if the data type should be locked, prohibiting updates and deletions

Returns
  True if a new type was added, False if not

Exceptions

  TYPE-ERROR | a type has already been set for this entry

## Member Data Documentation

## locked

bool DataProvider::DataProviderTypeEntry::locked = False

protected

True if the entry is locked and therefore cannot be deleted or updated

Note
  only type entries can be locked