BALL::ResourceEntry Class Reference
[Support for hierarchical text data.]

#include <BALL/FORMAT/resourceFile.h>

Inheritance diagram for BALL::ResourceEntry:
BALL::AutoDeletable

List of all members.


Classes

class  IteratorTraits_

Public Types

typedef ResourceEntryIteratorPosition
typedef ForwardIterator
< ResourceEntry, ResourceEntry,
ResourceEntry
*, IteratorTraits_
Iterator
typedef ConstForwardIterator
< ResourceEntry, ResourceEntry,
ResourceEntry
*, IteratorTraits_
ConstIterator

Public Member Functions

Iterator begin ()
Iterator end ()
ConstIterator begin () const
ConstIterator end () const
Constructors and Destructors
 ResourceEntry ()
 ResourceEntry (const ResourceEntry &entry, bool deep=true)
 ResourceEntry (const String &key, const String &value, ResourceEntry *parent=0)
virtual ~ResourceEntry ()
void clear ()
void destroy ()
Assignment
void set (const ResourceEntry &entry, bool deep=true)
const ResourceEntryoperator= (const ResourceEntry &entry)
void get (ResourceEntry &entry, bool deep=true) const
Miscellaneous
bool operator== (const ResourceEntry &entry) const
bool operator!= (const ResourceEntry &entry) const
ResourceEntrygetRoot ()
const ResourceEntrygetRoot () const
ResourceEntrygetParent ()
const ResourceEntrygetParent () const
ResourceEntrygetChild (Position index)
const ResourceEntrygetChild (Position index) const
ResourceEntrygetEntry (const String &key_path)
const ResourceEntrygetEntry (const String &key_path) const
const StringgetKey () const
void setValue (const String &value)
StringgetValue ()
const StringgetValue () const
String getPath () const
Size countChildren () const
Size countDescendants () const
Size getSize () const
Size getDepth () const
ResourceEntryinsertChild (const String &key, const String &value, bool replace_value=true)
ResourceEntryinsertSibling (const String &key, const String &value, bool replace_value=true)
ResourceEntryinsertChild (ResourceEntry &entry, bool replace_value=true)
ResourceEntryinsert (const String &key_path, const String &name)
bool mergeChildrenOf (ResourceEntry &entry, bool replace_value=true)
bool removeChild (const String &key, ResourceEntry **removed=0)
bool removeKey (const String &key_path)
ResourceEntryfindChild (const String &key)
const ResourceEntryfindChild (const String &key) const
ResourceEntryfindDescendant (const String &key)
const ResourceEntryfindDescendant (const String &key) const
ResourceEntryfindEntry (const String &key)
const ResourceEntryfindEntry (const String &key) const
Attributes
bool hasChild (const String &key) const
bool isEmpty () const
bool isParentOf (const ResourceEntry &entry) const
bool isChildOf (const ResourceEntry &entry) const
bool isAncestorOf (const ResourceEntry &entry) const
bool isDescendantOf (const ResourceEntry &entry) const
bool isRelatedWith (const ResourceEntry &entry) const
bool isRoot () const
Debugging and Diagnostics
bool isValid () const
void dump (std::ostream &s=std::cout, Size depth=0) const
Processor and Visitor related methods
void host (Visitor< ResourceEntry > &visitor)
bool apply (UnaryProcessor< ResourceEntry > &processor)
bool applyChildren (UnaryProcessor< ResourceEntry > &processor)

Protected Member Functions

virtual ResourceEntrynewEntry (const String &key, const String &value, ResourceEntry *parent=0) const
virtual ResourceEntry ** newEntryArray (Size size) const
virtual void deleteEntry (ResourceEntry *entry) const
virtual void deleteEntryArray (ResourceEntry **entry_array) const
bool applyNostart_ (UnaryProcessor< ResourceEntry > &processor)

Private Member Functions

ResourceEntryclone_ (ResourceEntry *parent) const
bool findGreaterOrEqual_ (const String &key, Index &found) const

Private Attributes

String key_
String value_
ResourceEntryparent_
ResourceEntry ** child_
Size number_children_

Friends

class IteratorTraits_

Detailed Description

Resource entry class


Member Typedef Documentation


Constructor & Destructor Documentation

BALL::ResourceEntry::ResourceEntry (  ) 

Default constructor

BALL::ResourceEntry::ResourceEntry ( const ResourceEntry entry,
bool  deep = true 
)

Copy constructor. Creates a new resource entry from another.

Parameters:
entry the ResourceEntry object to be copied
deep create a deep (true) or shallow (false) copy
BALL::ResourceEntry::ResourceEntry ( const String key,
const String value,
ResourceEntry parent = 0 
)

Create a new resource entry. An entry with key and value is created. If parent is given, the new entries parent pointer is set to this value. Take care: the parents child array is not updated - so use this option only if you really know what you are doing. To keep this data consistent, use insertChild .

Parameters:
key the key of the new entry
value the value of the new entry
parent the content of the new entry's parent pointer
virtual BALL::ResourceEntry::~ResourceEntry (  )  [virtual]

Member Function Documentation

bool BALL::ResourceEntry::apply ( UnaryProcessor< ResourceEntry > &  processor  ) 
bool BALL::ResourceEntry::applyChildren ( UnaryProcessor< ResourceEntry > &  processor  ) 
bool BALL::ResourceEntry::applyNostart_ ( UnaryProcessor< ResourceEntry > &  processor  )  [protected]
ConstIterator BALL::ResourceEntry::begin (  )  const [inline]
Iterator BALL::ResourceEntry::begin (  )  [inline]
void BALL::ResourceEntry::clear (  ) 
ResourceEntry* BALL::ResourceEntry::clone_ ( ResourceEntry parent  )  const [private]
Size BALL::ResourceEntry::countChildren (  )  const

Return the number of child entries.

Size BALL::ResourceEntry::countDescendants (  )  const

Return the number of children which are not leaves.

virtual void BALL::ResourceEntry::deleteEntry ( ResourceEntry entry  )  const [protected, virtual]
virtual void BALL::ResourceEntry::deleteEntryArray ( ResourceEntry **  entry_array  )  const [protected, virtual]
void BALL::ResourceEntry::destroy (  ) 
void BALL::ResourceEntry::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const
ConstIterator BALL::ResourceEntry::end (  )  const [inline]
Iterator BALL::ResourceEntry::end (  )  [inline]
const ResourceEntry* BALL::ResourceEntry::findChild ( const String key  )  const
ResourceEntry* BALL::ResourceEntry::findChild ( const String key  ) 
const ResourceEntry* BALL::ResourceEntry::findDescendant ( const String key  )  const
ResourceEntry* BALL::ResourceEntry::findDescendant ( const String key  ) 
const ResourceEntry* BALL::ResourceEntry::findEntry ( const String key  )  const
ResourceEntry* BALL::ResourceEntry::findEntry ( const String key  ) 
bool BALL::ResourceEntry::findGreaterOrEqual_ ( const String key,
Index found 
) const [private]
void BALL::ResourceEntry::get ( ResourceEntry entry,
bool  deep = true 
) const

Assign the contents of a resource enytry to another one.

Parameters:
entry the ResourceEntry object to be copied
deep create a deep (true) or shallow (false) copy
const ResourceEntry* BALL::ResourceEntry::getChild ( Position  index  )  const

Return a const pointer to a child node.

Returns:
0 if the child index does not exist
ResourceEntry* BALL::ResourceEntry::getChild ( Position  index  ) 

Return a pointer to a child node.

Returns:
0 if the child index does not exist
Size BALL::ResourceEntry::getDepth (  )  const

Compute the depth of this entry within the tree.

const ResourceEntry* BALL::ResourceEntry::getEntry ( const String key_path  )  const

Return a const pointer to an entry Searches for an entry via its path.

Returns:
0 if the specified path does not exist
ResourceEntry* BALL::ResourceEntry::getEntry ( const String key_path  ) 

Return a pointer to an entry. Searches for an entry via its path.

Returns:
0 if the specified path does not exist
const String& BALL::ResourceEntry::getKey (  )  const

Return the key of this ResourceEntry.

const ResourceEntry* BALL::ResourceEntry::getParent (  )  const
ResourceEntry* BALL::ResourceEntry::getParent (  ) 
String BALL::ResourceEntry::getPath (  )  const

Return the path of an entry.

const ResourceEntry& BALL::ResourceEntry::getRoot (  )  const
ResourceEntry& BALL::ResourceEntry::getRoot (  ) 
Size BALL::ResourceEntry::getSize (  )  const

????? What is the size of an entry? Why not use size()?

const String& BALL::ResourceEntry::getValue (  )  const

Get a constant reference to the value of this ResourceEntry.

String& BALL::ResourceEntry::getValue (  ) 

Get a mutable reference to the value of this ResourceEntry.

bool BALL::ResourceEntry::hasChild ( const String key  )  const
void BALL::ResourceEntry::host ( Visitor< ResourceEntry > &  visitor  ) 
ResourceEntry* BALL::ResourceEntry::insert ( const String key_path,
const String name 
)

Insert a resource entry at the appropriate place in the tree.

ResourceEntry* BALL::ResourceEntry::insertChild ( ResourceEntry entry,
bool  replace_value = true 
)

Insert a child into the tree below this entry, if the key has not been used yet.

ResourceEntry* BALL::ResourceEntry::insertChild ( const String key,
const String value,
bool  replace_value = true 
)

Insert a child into the tree below this entry, if the key has not been used yet.

ResourceEntry* BALL::ResourceEntry::insertSibling ( const String key,
const String value,
bool  replace_value = true 
)

Insert a child into the tree below the parent entry.

bool BALL::ResourceEntry::isAncestorOf ( const ResourceEntry entry  )  const
bool BALL::ResourceEntry::isChildOf ( const ResourceEntry entry  )  const
bool BALL::ResourceEntry::isDescendantOf ( const ResourceEntry entry  )  const
bool BALL::ResourceEntry::isEmpty (  )  const
bool BALL::ResourceEntry::isParentOf ( const ResourceEntry entry  )  const
bool BALL::ResourceEntry::isRelatedWith ( const ResourceEntry entry  )  const
bool BALL::ResourceEntry::isRoot (  )  const
bool BALL::ResourceEntry::isValid (  )  const
bool BALL::ResourceEntry::mergeChildrenOf ( ResourceEntry entry,
bool  replace_value = true 
)

Merge the children of a resource entry.

virtual ResourceEntry* BALL::ResourceEntry::newEntry ( const String key,
const String value,
ResourceEntry parent = 0 
) const [protected, virtual]
virtual ResourceEntry** BALL::ResourceEntry::newEntryArray ( Size  size  )  const [protected, virtual]
bool BALL::ResourceEntry::operator!= ( const ResourceEntry entry  )  const

Inequality operator

const ResourceEntry& BALL::ResourceEntry::operator= ( const ResourceEntry entry  ) 

Assignment operator.

Parameters:
entry the ResourceEntry object to be copied
bool BALL::ResourceEntry::operator== ( const ResourceEntry entry  )  const

Equality operator

bool BALL::ResourceEntry::removeChild ( const String key,
ResourceEntry **  removed = 0 
)

Remove a child of a resource entry.

bool BALL::ResourceEntry::removeKey ( const String key_path  ) 
void BALL::ResourceEntry::set ( const ResourceEntry entry,
bool  deep = true 
)

Assign a resource entry from another.

Parameters:
entry the ResourceEntry object to be copied
deep create a deep (true) or shallow (false) copy
void BALL::ResourceEntry::setValue ( const String value  ) 

Set the value of this ResourceEntry.


Friends And Related Function Documentation

friend class IteratorTraits_ [friend]

Member Data Documentation