class StarListNode

This class holds a list of the nodes that can be inside a star file.

Inheritance:


Public Methods

[more]ASTlist<BlockNode*> * GiveMyDataBlockList ()
Returns a list of nodes that are in the list.
[more]virtual void Unparse (int indent)
[more]virtual bool isOfType ( ASTtype T )
[more]virtual int myLongestStr ( void )
Returns the length of the longest string in this object.
[more]virtual ASTnode::ASTtype myType (void)
[more]virtual void reserve ( size_t initSize )
Just like the vector method of the same name
[more]virtual List<ASTnode*> * searchByTag ( string &searchFor )
Given a tag name, find the AST object it resides in.
[more]virtual List<ASTnode*> * searchByTagValue ( string &tag, string &value )
Given a tag name and a value, find the AST object that that particular tag and value pair resides in.
[more]virtual List<ASTnode*> * searchForType ( ASTtype type, int delim = -1 )
This method returns a list of all the nodes of the given type that are inside this node, or children of this node, or children of children of this node, etc all the way down to the leaf nodes.
[more]virtual bool unlinkChild ( ASTnode* child )
unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode.
[more]virtual ~StarListNode ()
Destructor - also destructs everything in this list

Public Members

[more]


Inherited from ASTnode:

Public Methods

obool NotVirtualIsOfType( ASTtype T )
ovirtual void copyFrom( const ASTnode &copyFromMe )
ovirtual ASTnode* myParent(void)
ovirtual bool removeChild( ASTnode* child )
ovirtual bool removeMe( void )
ovirtual void setParent( ASTnode* p )
ovirtual bool unlinkMe( void )

Public Members

oenum ASTtype

Protected Methods

ovoid printIndent(int indent)


Documentation

This class holds a list of the nodes that can be inside a star file. (data blocks are all that is allowed)
ovirtual ~StarListNode()
Destructor - also destructs everything in this list

ovirtual void reserve( size_t initSize )
Just like the vector method of the same name

ovirtual void Unparse(int indent)

ovirtual ASTnode::ASTtype myType(void)

ovirtual bool isOfType( ASTtype T )

oASTlist<BlockNode*> * GiveMyDataBlockList()
Returns a list of nodes that are in the list. This list is directly manipulatable such that it can be used like an STL vector to insert/erase, and iterate over the items in the list:

o

o THESE FOLLOWING METHODS ARE DEPRECIATED - use STL vector operations on the list returned by GiveMyDataBlockList instead
THESE FOLLOWING METHODS ARE DEPRECIATED - use STL vector operations on the list returned by GiveMyDataBlockList instead

ovoid RemoveSaveFrame(string datablockName, string saveframeName)
DEPRECIATED

ovoid AddSaveFrameToDataBlock(string datablockName, DataNode* newNode)
DEPRECIATED

oStarFileNode::Status AddDataBlock(const string & name)
DEPRECIATED

oStarFileNode::Status AddSaveFrame(const string & name)
DEPRECIATED

oStarFileNode::Status AddSaveFrameDataItem( const string & name, const string & value, DataValueNode::ValType type )
DEPRECIATED

oStarFileNode::Status AddSaveFrameLoop()
DEPRECIATED

oStarFileNode::Status AddSaveFrameLoopDataName(const string & name)
DEPRECIATED

oStarFileNode::Status AddSaveFrameLoopDataValue( const string & value, DataValueNode::ValType type )
DEPRECIATED

o StarListNode( StarListNode &L )
Recursive deep-copy constructor

o StarListNode(ASTlist<BlockNode* >* L)
Dumb shallow copy constructor - don't use unless you really understand the Star library well

o StarListNode()
Make an empty list:

o StarListNode( bool link, StarListNode &L )
Copy with parallel link. Set "link" to true to create a copy with a parallel link, or set it to false to create a copy without a parallel link. See the external documentation for more details on parallel copies.

ovirtual List<ASTnode*> * searchByTag( string &searchFor )
Given a tag name, find the AST object it resides in. It returns a pointer to the lowest level AST object that the tag resides in. The caller of this function needs to use the isOfType() and/or myType() methods to determine what type to cst the object. Returns a NULL if nothing was found.

This search is case-insensitive. The names of things, according to the STAR specification, are supposed to be case-insensitive. This is being applied not only to tag names but also to saveframe names and datablock names.

WARNING: The list returned is allocated in heap space. It is the caller's responsibility to delete the list after it is no longer needed.

Parameters:
searchFor - Look for this string as the tag name.

ovirtual List<ASTnode*> * searchForType( ASTtype type, int delim = -1 )
This method returns a list of all the nodes of the given type that are inside this node, or children of this node, or children of children of this node, etc all the way down to the leaf nodes.
Parameters:
type - the type to search for
delim - the delimiter type if this is a search for a DataValueNode. The default is -1 which means "dont-care"

ovirtual List<ASTnode*> * searchByTagValue( string &tag, string &value )
Given a tag name and a value, find the AST object that that particular tag and value pair resides in. This is like performing an SQL search: WHERE tag = value.

This search is case-insensitive. The names of things, according to the STAR specification, are supposed to be case-insensitive. This is being applied not only to tag names but also to saveframe names and datablock names.

(However, the values are case-sensitive. A search for a tag of _t1 is identical to a search for a tag of _T1, but a search for a value of "V1" is different from a search for a value of "v1".)

WARNING: The list returned is allocated in heap space. It is the caller's responsibility to delete the list after it is no longer needed.

Parameters:
- tag the tag name to search for
value - find it where it has this value.

ovirtual bool unlinkChild( ASTnode* child )
unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode. Does NOT call the destructor of the child node!! Use this function to remove the child from this ASTnode but not free it's space. RETURNS: true if the child was unlinked. false if the given ASTnode was not even in this class anywhere, and therefore nothing was done. This function MUST be overridden for each subclass of ASTnode.

ovirtual int myLongestStr( void )
Returns the length of the longest string in this object. Used by Unparse() at various levels of the AST tree. (In this case it is the longest of the myLongestStr()'s in the list of objects inside this node.)


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java


Starlib is a creation of BioMagResBank: bmrb.wisc.edu starlib banner