class StarListNode : public ASTnode

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

Inheritance:


Public Methods

ASTlist <BlockNode*> * GiveMyDataBlockList ()
Returns a list of nodes that are in the list
virtual bool isOfType ( ASTtype T )
virtual int myLongestStr ( void )
Returns the length of the longest string in this object
virtual ASTnode::ASTtype myType (void)
virtual List <ASTnode*> * searchByTag ( string &searchFor )
Given a tag name, find the AST object it resides in
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
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
virtual bool unlinkChild ( ASTnode *child )
unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode
virtual void Unparse (int indent)
virtual ~StarListNode ()
Destructor - also destructs everything in this list.

Public



THESE FOLLOWING METHODS ARE DEPRECIATED - use STL vector operations on the list returned by GiveMyDataBlockList instead
DataNode* ReturnDataBlockDataNode (string datablockName, string saveframeName)
DEPRECIATED
void RemoveSaveFrame (string datablockName, string saveframeName)
DEPRECIATED
void AddSaveFrameToDataBlock (string datablockName, DataNode* newNode)
DEPRECIATED
StarFileNode::Status AddDataBlock (const string & name)
DEPRECIATED
StarFileNode::Status AddSaveFrame (const string & name)
DEPRECIATED
StarFileNode::Status AddSaveFrameDataItem ( const string & name, const string & value, DataValueNode::ValType type )
DEPRECIATED
StarFileNode::Status AddSaveFrameLoop ()
DEPRECIATED
StarFileNode::Status AddSaveFrameLoopDataName (const string & name)
DEPRECIATED
StarFileNode::Status AddSaveFrameLoopDataValue ( const string & value, DataValueNode::ValType type )
DEPRECIATED

StarListNode ( StarListNode &L )
Recursive deep-copy constructor.
StarListNode (ASTlist<BlockNode *> *L)
Dumb shallow copy constructor - don't use unless you really understand the Star library well
StarListNode ()
Make an empty list:
StarListNode ( bool link, StarListNode &L )
Copy with parallel link

Inherited from ASTnode:

Public Classes

enum ASTtype
ASTNODE
BLOCKNODE
DATABLOCKNODE
DATAFILENODE
DATAHEADINGNODE
DATAITEMNODE
DATALISTNODE
DATALOOPNAMELISTNODE
DATALOOPDEFLISTNODE
DEPRECIATED - Do not use:
DATALOOPNODE
DATALOOPVALLISTNODE
DATANAMENODE
DATANODE
DATAVALUENODE
GLOBALBLOCKNODE
GLOBALHEADINGNODE
HEADINGNODE
LOOPROWNODE
ITERNODE
DEPRECIATED - Do not use:
LOOPNAMELISTNODE
LOOPDEFLISTNODE
DEPRECIATED - Do not use:
LOOPTABLENODE
LOOPITER
DEPRECIATED - Do not use:
LOOPVALLISTNODE
DEPRECIATED - Do not use:
SAVEFRAMELISTNODE
SAVEFRAMENODE
SAVEHEADINGNODE
STARLISTNODE
STARFILENODE

Public Methods

virtual void copyFrom( const ASTnode ©FromMe )
virtual ASTnode* myParent(void)
bool NotVirtualIsOfType( ASTtype T )
virtual bool removeChild( ASTnode *child )
virtual bool removeMe( void )
virtual void setParent( ASTnode *p )
virtual size_t sizeOfMe(void)
virtual bool unlinkMe( void )

Documentation

This class holds a list of the nodes that can be inside a star file. (data blocks are all that is allowed)

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

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

StarListNode()
Make an empty list:

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.

virtual ~StarListNode()
Destructor - also destructs everything in this list.

virtual void Unparse(int indent)

virtual ASTnode::ASTtype myType(void)

virtual bool isOfType( ASTtype T )

ASTlist <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:

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

DataNode* ReturnDataBlockDataNode(string datablockName, string saveframeName)
DEPRECIATED

void RemoveSaveFrame(string datablockName, string saveframeName)
DEPRECIATED

void AddSaveFrameToDataBlock(string datablockName, DataNode* newNode)
DEPRECIATED

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

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

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

StarFileNode::Status AddSaveFrameLoop()
DEPRECIATED

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

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

virtual 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.

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
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"

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. 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.

virtual 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.

virtual 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 hierarchy of classes


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

generated by doc++