#include <composite.h>
Public Types |
|
typedef ForwardIterator < Composite, Composite, Composite *, AncestorIteratorTraits > |
AncestorIterator |
typedef ConstForwardIterator < Composite, Composite, Composite *, AncestorIteratorTraits > |
AncestorConstIterator |
typedef BidirectionalIterator < Composite, Composite, Composite *, ChildCompositeIteratorTraits > |
ChildCompositeIterator |
typedef ConstBidirectionalIterator < Composite, Composite, Composite *, ChildCompositeIteratorTraits > |
ChildCompositeConstIterator |
typedef std::reverse_iterator < ChildCompositeIterator > |
ChildCompositeReverseIterator |
typedef std::reverse_iterator < ChildCompositeConstIterator > |
ChildCompositeConstReverseIterator |
typedef BidirectionalIterator < Composite, Composite, Composite *, CompositeIteratorTraits > |
CompositeIterator |
typedef ConstBidirectionalIterator < Composite, Composite, Composite *, CompositeIteratorTraits > |
CompositeConstIterator |
typedef std::reverse_iterator < CompositeIterator > |
CompositeReverseIterator |
typedef std::reverse_iterator < CompositeConstIterator > |
CompositeConstReverseIterator |
Type Definitions and Enums
|
|
enum | StampType { MODIFICATION = 1, SELECTION = 2, BOTH = 3 } |
Time stamp type. |
|
typedef UnaryPredicate< Composite > | KernelPredicateType |
Composite predicate type. |
|
Public Member Functions |
|
AncestorIterator | beginAncestor () |
AncestorIterator | endAncestor () |
AncestorConstIterator | beginAncestor () const |
AncestorConstIterator | endAncestor () const |
ChildCompositeIterator | beginChildComposite () |
ChildCompositeIterator | endChildComposite () |
ChildCompositeConstIterator | beginChildComposite () const |
ChildCompositeConstIterator | endChildComposite () const |
ChildCompositeReverseIterator | rbeginChildComposite () |
ChildCompositeReverseIterator | rendChildComposite () |
ChildCompositeConstReverseIterator | rbeginChildComposite () const |
ChildCompositeConstReverseIterator | rendChildComposite () const |
CompositeIterator | beginComposite () |
CompositeIterator | endComposite () |
CompositeConstIterator | beginComposite () const |
CompositeConstIterator | endComposite () const |
CompositeReverseIterator | rbeginComposite () |
CompositeReverseIterator | rendComposite () |
CompositeConstReverseIterator | rbeginComposite () const |
CompositeConstReverseIterator | rendComposite () const |
void | deleteChildrenList_ (std::list< Composite * > &composites) |
Construction and Destruction
|
|
Composite () | |
Default constructor. |
|
Composite (const Composite &composite, bool deep=true) | |
Copy constructor. |
|
virtual | ~Composite () |
Destructor. |
|
virtual void | clear () |
Clear the composite properties.
|
|
virtual void | destroy () |
Destroy the composite. |
|
void | destroy (bool virtual_destroy) |
Non-virtual destroy method. |
|
void * | clone (Composite &root) const |
Clone with a predicate. |
|
Persistence
|
|
virtual void | persistentWrite (PersistenceManager &pm, const char *name=0) const throw (Exception::GeneralException) |
Write a persistent copy of the
object. |
|
virtual void | persistentRead (PersistenceManager &pm) throw (Exception::GeneralException) |
Read a persistent object. |
|
Predicates
|
|
bool | operator== (const Composite &composite) const |
Equality operator. |
|
bool | operator!= (const Composite &composite) const |
Inequality operator. |
|
bool | isEmpty () const |
Return true if the node does not
contain children. |
|
bool | isRoot () const |
Return true if the node has no
parent. |
|
bool | isRootOf (const Composite &composite) const |
Return true if the node is root of
composite. |
|
bool | isInterior () const |
Return true if the node is not the
root or a leaf. |
|
bool | hasChild () const |
Return true if the node has a
child. |
|
bool | isChildOf (const Composite &composite) const |
Return true if the node has the
parent composite . |
|
bool | isFirstChild () const |
Return true if the node is the first
child of its parent. |
|
bool | isFirstChildOf (const Composite &composite) const |
Return true if the node is the first
child of composite . |
|
bool | isLastChild () const |
Return true if the node is the last
child of its parent. |
|
bool | isLastChildOf (const Composite &composite) const |
Return true if the node is the last
child of composite . |
|
bool | hasParent () const |
Return true if the node has a
parent. |
|
bool | isParentOf (const Composite &composite) const |
Return true if the node is the
parent of composite . |
|
bool | hasSibling () const |
Return true if the node has a
sibling. |
|
bool | isSiblingOf (const Composite &composite) const |
Return true if the node is a sibling
of composite . |
|
bool | hasPreviousSibling () const |
Return true if the node has a
previous sibling. |
|
bool | isPreviousSiblingOf (const Composite &composite) const |
Return true if the node is a
previous sibling of composite . |
|
bool | hasNextSibling () const |
Return true if the node has a
previous sibling. |
|
bool | isNextSiblingOf (const Composite &composite) const |
Return true if the node is a next
sibling of composite . |
|
bool | isDescendantOf (const Composite &composite) const |
Return true if the node is a
descendent of composite . |
|
template<typename T > | |
bool | hasAncestor (const T &dummy) const |
Return true if the node has a
ancestor of the same type as dummy. |
|
bool | isAncestorOf (const Composite &composite) const |
Return true if the node has
composite as descendent. |
|
bool | isRelatedWith (const Composite &composite) const |
Return true if the node has
composite as ancestor or composite is ancestor of this
node. |
|
bool | isHomomorph (const Composite &composite) const |
Return true if composite is
homomorph to this node. |
|
bool | containsSelection () const |
Return true if any descendant is
selected. |
|
Debugging and Diagnostics
|
|
virtual bool | isValid () const |
Test if the subtree with this node
as root is valid. |
|
virtual void | dump (std::ostream &s=std::cout, Size depth=0) const |
Dump the constent of this instance
to an ostream. |
|
Application and Hosting
|
|
void | host (Visitor< Composite > &visitor) throw (Exception::GeneralException) |
Visitor host method. |
|
template<typename T > | |
bool | applyAncestor (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to all ancestors
of this node. |
|
template<typename T > | |
bool | applyChild (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to all children of
this node. |
|
template<typename T > | |
bool | applyDescendantPreorder (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to all descendents
of this node. |
|
template<typename T > | |
bool | applyDescendantPostorder (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to all descendents
of this node. |
|
template<typename T > | |
bool | applyDescendant (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to all descendents
of this node. |
|
template<typename T > | |
bool | applyPreorder (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to the node and
its subtree. |
|
template<typename T > | |
bool | applyPostorder (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to the node and
its subtree. |
|
template<typename T > | |
bool | apply (UnaryProcessor< T > &processor) throw (Exception::GeneralException) |
Apply a processor to the node and
its subtree. |
|
template<typename T > | |
bool | applyLevel (UnaryProcessor< T > &processor, long level) throw (Exception::GeneralException) |
Apply a processor to the node and
its siblings. |
|
Static Public Attributes |
|
static UnaryProcessor< Composite > | DEFAULT_PROCESSOR |
static KernelPredicateType | DEFAULT_UNARY_PREDICATE |
Friends |
|
class | AncestorIteratorTraits |
class | ChildCompositeIteratorTraits |
class | CompositeIteratorTraits |
Modifying and Accessing the Tree |
|
void | set (const Composite &composite, bool deep=true) |
Assignment. |
|
Composite & | operator= (const Composite &composite) |
Assignment operator. |
|
void | get (Composite &composite, bool deep=true) const |
Assignment of a tree to another.
|
|
Size | getDegree () const |
Return the degree of the node.
|
|
Size | count (const KernelPredicateType &predicate) const |
Count the number of nodes fulfilling
a predicate in this subtree. |
|
Size | countDescendants () const |
Count the number of descendants.
|
|
Size | getPathLength (const Composite &composite) const |
Get the length of the path between
two composite objects. |
|
Size | getDepth () const |
Get the depth of this item in its
tree. |
|
Size | getHeight () const |
Get the height of this item in its
tree. |
|
Composite & | getRoot () |
Get the root of this item. |
|
const Composite & | getRoot () const |
Get a const reference to the root of
this item. |
|
Composite * | getLowestCommonAncestor (const Composite &composite) |
Get the lowest common ancestor of
this item with an other. |
|
const Composite * | getLowestCommonAncestor (const Composite &composite) const |
Get a const reference to the lowest
common ancestor of this item with an other. |
|
template<typename T > | |
T * | getAncestor (const T &) |
Find the first ancestor of type T.
|
|
template<typename T > | |
const T * | getAncestor (const T &) const |
Find the first ancestor of type T
(const method). |
|
template<typename T > | |
T * | getPrevious (const T &) |
Find the nearest previous composite
of type T. |
|
template<typename T > | |
const T * | getPrevious (const T &dummy) const |
Find the nearest previous composite
of type T (const method). |
|
template<typename T > | |
T * | getNext (const T &) |
Find the next composite of type T.
|
|
template<typename T > | |
const T * | getNext (const T &dummy) const |
Find the next composite of type T
(const method). |
|
Composite * | getParent () |
Return the composite's parent.
|
|
const Composite * | getParent () const |
Return the composite's parent (const
method). |
|
Composite * | getChild (Index index) |
Return the index th child of
this composite. |
|
const Composite * | getChild (Index index) const |
Return a const pointer to the
index th child of this composite. |
|
Composite * | getSibling (Index index) |
Return a pointer to the sibling
index positions from this composite. |
|
const Composite * | getSibling (Index index) const |
Return a const pointer to the
sibling index positions from this composite. |
|
Composite * | getFirstChild () |
Return a pointer to the first child.
|
|
const Composite * | getFirstChild () const |
Return a const pointer to the first
child. |
|
Composite * | getLastChild () |
Return a pointer to the last child.
|
|
const Composite * | getLastChild () const |
Return a const pointer to the last
child. |
|
const PreciseTime & | getModificationTime () const |
Return the time of last
modification. |
|
const PreciseTime & | getSelectionTime () const |
Return the time of last change of
selection. |
|
void | stamp (StampType stamp=BOTH) |
Modify a time stamp. |
|
void | prependChild (Composite &composite) |
Insert a composite as the first
child of this composite. |
|
void | appendChild (Composite &composite) |
Insert a composite as the last child
of this composite. |
|
void | insertBefore (Composite &composite) |
Insert a node before this node.
|
|
void | insertAfter (Composite &composite) |
Insert a node after this node.
|
|
void | spliceBefore (Composite &composite) |
Prepend all children of
composite to the children of this composite.
|
|
void | spliceAfter (Composite &composite) |
Append all children of
composite to the children of this composite.
|
|
void | splice (Composite &composite) |
Insert the children of composite
into this composite. |
|
bool | removeChild (Composite &child) |
Remove a child from its parent.
|
|
Size | removeSelected () |
Remove selected subcomposites.
|
|
Size | removeUnselected () |
Remove unselected subcomposites.
|
|
void | replace (Composite &composite) |
This instance and its subtree is
removed form its tree and replaced by
composite and its subtree. |
|
void | swap (Composite &composite) |
Swap the contents of two composites.
|
|
virtual void | select () |
Select a composite. |
|
virtual void | deselect () |
Deselect a composite. |
|
static bool | insertParent (Composite &parent, Composite &first, Composite &last, bool destroy_parent=true) |
Insert a new parent node. |
This class implements a variant of the composite design pattern. A Composite may contain an arbitrary number of other composites, thus forming a tree. All BALL kernel classes are derived from Composite. This provides a unique interface for all kernel classes.
Composite predicate type.
This type declares a predicate operating on composites. As it is used as a predicate for all kernel classes, it is named KernelPredicateType.
BALL::Composite::Composite | ( | ) |
Default constructor.
This constructor creates an empty composite object.
BALL::Composite::Composite | ( | const Composite & | composite, | |
bool | deep =
true |
|||
) |
Copy constructor.
Creates a copy of a composite. Deep copies include the whole composite tree, shallow copies contain anly a single composite.
composite | the composite to be cloned (the root of the tree in the case of a deep copy) | |
deep | make a deep copy (true) or shallow copy (false) |
virtual BALL::Composite::~Composite | ( | ) | [virtual] |
Destructor.
The destructor calls destroy to remove the composite from potential tree structures. It also recursively destructs all children of the composite.
void BALL::Composite::appendChild | ( | Composite & | composite | ) |
Insert a composite as the last child of this composite.
Updates the modification time stamp. Note that
this method alters the composite tree from which
composite
is taken, if there is such a
tree.
composite | the composite to be inserted |
bool BALL::Composite::apply | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to the node and its subtree.
applyPreorder is used.
bool BALL::Composite::applyAncestor | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to all ancestors of this node.
References BALL::Processor::BREAK.
bool BALL::Composite::applyChild | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to all children of this node.
bool BALL::Composite::applyDescendant | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to all descendents of this node.
The node itself is not processed. applyDescendantPreorder is used.
bool BALL::Composite::applyDescendantPostorder | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to all descendents of this node.
The node itself is not processed. The root of a subtree is accessed after the nodes in its left and right subtree.
bool BALL::Composite::applyDescendantPreorder | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to all descendents of this node.
The node itself is not processed. The root of a subtree is accessed before the nodes in its left and right subtree.
bool BALL::Composite::applyLevel | ( | UnaryProcessor< T > & | processor, | |
long | level | |||
) | throw (Exception::GeneralException) |
Apply a processor to the node and its siblings.
bool BALL::Composite::applyPostorder | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to the node and its subtree.
The root of a subtree is accessed after the nodes in its left and right subtree.
References BALL::Processor::BREAK.
bool BALL::Composite::applyPreorder | ( | UnaryProcessor< T > & | processor | ) | throw (Exception::GeneralException) |
Apply a processor to the node and its subtree.
The root of a subtree is accessed before the nodes in its left and right subtree.
virtual void BALL::Composite::clear | ( | ) | [virtual] |
Clear the composite properties.
This method removes the composite's children and destructs them if they are auto-deletable.
this
.Reimplemented from BALL::Selectable.
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, and BALL::SecondaryStructure.
void* BALL::Composite::clone | ( | Composite & | root | ) | const |
Clone with a predicate.
This method copies the attributes of this
composite to root (shallow copy) and then adds recursively
each of its children.
root | the cloning target root is
destroy ed prior to any copying |
&root
)bool BALL::Composite::containsSelection | ( | ) | const |
Return true if any descendant is selected.
This method does not check all nodes recursively. Instead, on each modification of the tree, internal flags are updated and the information is propagated upwards in the tree.
Size BALL::Composite::count | ( | const KernelPredicateType & | predicate | ) | const |
Count the number of nodes fulfilling a predicate in this subtree.
predicate | the predicate |
Size BALL::Composite::countDescendants | ( | ) | const |
Count the number of descendants.
virtual void BALL::Composite::deselect | ( | ) | [virtual] |
Deselect a composite.
This method deselects the composite and all the composites therein.
Reimplemented from BALL::Selectable.
void BALL::Composite::destroy | ( | bool | virtual_destroy | ) |
Non-virtual destroy method.
This method behaves exactly like destroy except for a small difference: when called with true, it calls the virtual clear function. If called with false it calls the original clear function of Composite. This is useful when implementing the behaviour of derived classes.
this
.virtual_destroy | call the virtual clear method (true) or
Composite::clear()
(false) |
virtual void BALL::Composite::destroy | ( | ) | [virtual] |
Destroy the composite.
This method removes the composite from potential parental structures and then calls clear to destruct all children.
this
.Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, and BALL::SecondaryStructure.
virtual void BALL::Composite::dump | ( | std::ostream & | s =
std::cout , |
|
Size | depth =
0 |
|||
) | const [virtual] |
Dump the constent of this instance to an ostream.
s | the stream to which we will dump | |
depth | the indentation depth of the output |
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::Chain, BALL::Fragment, BALL::Molecule, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, and BALL::SecondaryStructure.
void BALL::Composite::get | ( | Composite & | composite, | |
bool | deep =
true |
|||
) | const |
Assignment of a tree to another.
Create a deep (deep
= true) or
shallow copy of a composite and assign it to
composite
. composite
is destroyed
first.
composite | the composite to assign the copy to | |
deep | true for a deep copy |
const T * BALL::Composite::getAncestor | ( | const T & | ) | const |
Find the first ancestor of type T (const method).
This method operates also on constant trees.
References parent_.
T * BALL::Composite::getAncestor | ( | const T & | ) |
Find the first ancestor of type T.
This method walks up the tree from parent to parent and
checks whether the composite object is a kind of
T
. This method is useful to identify special
container classes.
References parent_.
Referenced by hasAncestor().
const Composite* BALL::Composite::getChild | ( | Index | index | ) | const |
Return a const pointer to the index th child of this composite.
If no such child exists, 0 is returned. The index of the first child is 0.
index | the index of the child to return |
Composite* BALL::Composite::getChild | ( | Index | index | ) |
Return the index th child of this composite.
If no such child exists, 0 is returned. The index of the first child is 0.
index | the index of the child to return |
Size BALL::Composite::getDegree | ( | ) | const |
Return the degree of the node.
This method returns the number of children of a composite object.
Size BALL::Composite::getDepth | ( | ) | const |
Get the depth of this item in its tree.
The depth of a root item is 0.
const Composite* BALL::Composite::getFirstChild | ( | ) | const |
Return a const pointer to the first child.
Composite* BALL::Composite::getFirstChild | ( | ) |
Return a pointer to the first child.
Size BALL::Composite::getHeight | ( | ) | const |
Get the height of this item in its tree.
The hight of a leaf is 0.
const Composite* BALL::Composite::getLastChild | ( | ) | const |
Return a const pointer to the last child.
Composite* BALL::Composite::getLastChild | ( | ) |
Return a pointer to the last child.
Get a const reference to the lowest common ancestor of this item with an other.
If no common ancestor exists, 0 is returned.
Get the lowest common ancestor of this item with an other.
If no common ancestor exists 0 is returned.
const PreciseTime& BALL::Composite::getModificationTime | ( | ) | const |
Return the time of last modification.
const T * BALL::Composite::getNext | ( | const T & | dummy | ) | const |
Find the next composite of type T (const method).
This method walks backward in the tree from composite to
composite and checks whether the composite object is a kind
of T
.
References getNext().
T * BALL::Composite::getNext | ( | const T & | ) |
Find the next composite of type T.
This method walks backward in the tree from composite to
composite and checks whether the composite object is a kind
of T
.
References getRoot(), BALL::BaseIterator< Container, DataType, Position, Traits >::getTraits(), and BALL::BaseIterator< Container, DataType, Position, Traits >::isValid().
Referenced by getNext().
const Composite* BALL::Composite::getParent | ( | ) | const |
Return the composite's parent (const method).
Composite* BALL::Composite::getParent | ( | ) |
Return the composite's parent.
Size BALL::Composite::getPathLength | ( | const Composite & | composite | ) | const |
Get the length of the path between two composite objects.
If no path exists INVALID_SIZE
is
returned.
composite | the second object |
const T * BALL::Composite::getPrevious | ( | const T & | dummy | ) | const |
Find the nearest previous composite of type T (const method).
This method walks backward in the tree from composite to
composite and checks whether the composite object is a kind
of T
.
References getPrevious().
T * BALL::Composite::getPrevious | ( | const T & | ) |
Find the nearest previous composite of type T.
This method walks backward in the tree from composite to
composite and checks whether the composite object is a kind
of T
.
References getRoot(), and BALL::BaseIterator< Container, DataType, Position, Traits >::getTraits().
Referenced by getPrevious().
const Composite& BALL::Composite::getRoot | ( | ) | const |
Get a const reference to the root of this item.
Composite& BALL::Composite::getRoot | ( | ) |
const PreciseTime& BALL::Composite::getSelectionTime | ( | ) | const |
Return the time of last change of selection.
const Composite* BALL::Composite::getSibling | ( | Index | index | ) | const |
Return a const pointer to the sibling index positions from this composite.
A pointer to the sibling index
positions to
the right (for positive values of index
) or
-index
positions to the left (for negative
values of index
) is returned. For Index = 0
the this-pointer is returned.
index | the index of the sibling |
Composite* BALL::Composite::getSibling | ( | Index | index | ) |
Return a pointer to the sibling index positions from this composite.
A pointer to the sibling index
positions to
the right (for positive values of index
) or
-index
positions to the left (for negative
values of index
) is returned. For Index = 0
the this-pointer is returned.
index | the index of the sibling |
bool BALL::Composite::hasNextSibling | ( | ) | const |
Return true if the node has a previous sibling.
(Its parent has a child after this.)
bool BALL::Composite::hasPreviousSibling | ( | ) | const |
Return true if the node has a previous sibling.
(Its parent has a child before this.)
bool BALL::Composite::hasSibling | ( | ) | const |
Return true if the node has a sibling.
(Its parent has other childs.)
void BALL::Composite::host | ( | Visitor< Composite > & | visitor | ) | throw (Exception::GeneralException) |
Visitor host method.
Composites may be visited. For an example look into Composite_test.C
visitor | the visitor |
void BALL::Composite::insertAfter | ( | Composite & | composite | ) |
Insert a node after this node.
This method inserts composite
after
this
node, if this
node has a
parent and is not a descendant of composite
.
Self-insertion is recognized and ignored (nothing is
done).
composite | the node to be inserted in the tree after of
this |
void BALL::Composite::insertBefore | ( | Composite & | composite | ) |
Insert a node before this node.
This method inserts composite
before
this
node, if this
node has a
parent and is not a descendant of composite
.
Self-insertion is recognized and ignored (nothing is
done).
composite | the node to be inserted in the tree before
this |
static bool BALL::Composite::insertParent | ( | Composite & | parent, | |
Composite & | first, | |||
Composite & | last, | |||
bool | destroy_parent =
true |
|||
) | [static] |
Insert a new parent node.
This method is used to combine a range of nodes into a
single parent. First, the parent
composite is
destroy
ed. Then, all nodes from
first
through last
are inserted
into parent
and parent
is
inserted in the former position of first
. The
method returns false, if { first} or
last
have differing parents, if
parent
is identical with either
first
or last
, or if
first
is already a descendant of
parent
.
parent | the new parent of the nodes from
first through last |
|
first | the first of the nodes to be inserted into
parent |
|
last | the last of the nodes to be inserted into
parent |
|
destroy_parent | keeps the current contents of
parent if set to
true |
bool BALL::Composite::isEmpty | ( | ) | const |
Return true if the node does not contain children.
number_of_children_ ==
0
bool BALL::Composite::isHomomorph | ( | const Composite & | composite | ) | const |
Return true if composite is homomorph to this node.
(The subtrees of the two instances have to be of the same form.)
bool BALL::Composite::isRoot | ( | ) | const |
Return true if the node has no parent.
parent_ == 0
virtual bool BALL::Composite::isValid | ( | ) | const [virtual] |
Test if the subtree with this node as root is valid.
(The structure of the subtree has to be valid.)
Reimplemented from BALL::Object.
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::NucleicAcid, BALL::Nucleotide, BALL::Protein, BALL::Residue, and BALL::SecondaryStructure.
bool BALL::Composite::operator!= | ( | const Composite & | composite | ) | const |
Inequality operator.
Assignment operator.
composite | the Composite tree to assign from |
bool BALL::Composite::operator== | ( | const Composite & | composite | ) | const |
Equality operator.
Compares the handles of two Composite objects, therefore two Composite objects can never be equal.
composite | the composite against which equality will be tested |
virtual void BALL::Composite::persistentRead | ( | PersistenceManager & | pm | ) | throw (Exception::GeneralException)
[virtual] |
Read a persistent object.
pm | the persistence manager |
Reimplemented from BALL::PersistentObject.
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::Chain, BALL::Fragment, BALL::Molecule, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, BALL::SecondaryStructure, and BALL::System.
virtual void BALL::Composite::persistentWrite | ( | PersistenceManager & | pm, | |
const char * | name =
0 |
|||
) | const throw (Exception::GeneralException)
[virtual] |
Write a persistent copy of the object.
pm | the persistence manager | |
name | the object name |
Reimplemented from BALL::PersistentObject.
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::Chain, BALL::Fragment, BALL::Molecule, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, BALL::SecondaryStructure, and BALL::System.
void BALL::Composite::prependChild | ( | Composite & | composite | ) |
Insert a composite as the first child of this composite.
Updates the modification time stamp.
composite | the composite to be inserted |
bool BALL::Composite::removeChild | ( | Composite & | child | ) |
Remove a child from its parent.
child
is only removed, if it is a true
child of this
.
this
.child | the child to remove |
Size BALL::Composite::removeSelected | ( | ) |
Remove selected subcomposites.
This method iterates over all children of the current
composite and removes all selected composites by
delete
ing them. If the respective Composite are not AutoDeletable,
they are just remove d from the
hierarchy, but not deleted.
This method is useful in combination with the Selector class in order to remove unwanted partitions of kernel data structures.
Size BALL::Composite::removeUnselected | ( | ) |
Remove unselected subcomposites.
This method iterates over all children of the current
composite and removes all unselected composites by
delete
ing them. If the respective Composite are not AutoDeletable,
they are just remove d from the
hierarchy, but not deleted.
This method is useful in combination with the Selector class in order to remove unwanted partitions of kernel data structures.
void BALL::Composite::replace | ( | Composite & | composite | ) |
This instance and its subtree is removed form its tree
and replaced by composite
and its subtree.
this
and composite
.composite | the composite which will be inserted |
virtual void BALL::Composite::select | ( | ) | [virtual] |
Select a composite.
This method selects the composite and all the composites therein.
Reimplemented from BALL::Selectable.
void BALL::Composite::set | ( | const Composite & | composite, | |
bool | deep =
true |
|||
) |
Assignment.
composite | the Composite tree to assign from | |
deep | a bool deciding whether the
assignment will be deep or shallow. |
void BALL::Composite::splice | ( | Composite & | composite | ) |
Insert the children of composite into this composite.
The children of composite
are inserted at
the position of composite
if
composite
is a child of this
.
Otherwise the children are inserted using spliceBefore .
composite | the composite to be spliced |
void BALL::Composite::spliceAfter | ( | Composite & | composite | ) |
Append all children of composite
to the
children of this composite.
The method does nothing, if composite
is
identical to this
or is a descendent of
this
.
composite | the composite to be spliced |
void BALL::Composite::spliceBefore | ( | Composite & | composite | ) |
Prepend all children of composite
to the
children of this composite.
The method does nothing, if composite
is
identical to this
or is a descendent of
this
.
the | composite to be spliced |
void BALL::Composite::stamp | ( | StampType | stamp =
BOTH |
) |
Modify a time stamp.
Update one or both of the two time stamps with the current time. The time stamp is then propagated up to the root of the composite tree. Each composite contains two stamps. the modification stamp is updated each time the tree structure changes, while the selection stamp is updated each time the selection status changes.
stamp | the time stamp type |