A LoopTableNode is a table of rows in a DataLoopNode
![]() | indentFlag |
![]() | myIters |
![]() | myTflag |
![]() | rowsPerLine |
![]() | addValue (const DataLoopNameListNode::Status dstat, const int row, const int currRow, DataValueNode *value) DEPRECIATED - use the STL vector operations instead. |
![]() | FlattenNestedLoop (List<DataValueNode*>* M) DEPRECIATED - use the STL vector operations instead. |
![]() | LoopTableNode::RemoveColumnValues ( int nest, int ele ) DEPRECIATED - use the STL vector operations instead |
![]() | myLongestStr ( void ) Returns the length of the longest string in this object |
![]() | reset () DEPRECIATED - use the STL vector operations instead. |
![]() | returnLoopValues (unsigned position) DEPRECIATED - use the STL vector operations instead. |
![]() | returnNextLoopElement (DataValueNode* & v) DEPRECIATED - use the STL vector operations instead. |
![]() | 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 |
![]() | unlinkChild ( ASTnode *child ) unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode |
![]() | calcPrintSizes ( List |
A LoopTableNode is a table of rows in a DataLoopNode.You can think of a loop in a STAR file as being a table of values, with each iteration of the loop being a row on the table. This is the view taken by the starlib. Things are further complicated by the fact that each row of the table can have another table under it (another nesting level), but even then, those tables are the same structure as the outermost one.
Thus, this class, LoopTableNode, stores a table at some arbitrary nesting level in the loop. A simple singly nested loop will have only one loop table node, but a multiply nested loop will have a whole tree of loop tables.
typedef LoopRowNode* value_type
typedef value_type* pointer
typedef const value_type* const_pointer
typedef value_type& reference
iterator()
iterator( const ASTlist<LoopRowNode*>::iterator ©Me )
iterator( value_type ©Me )
~iterator()
bool operator==( const iterator &x ) const
bool operator!=( const iterator &x ) const
reference operator*() const
value_type operator->() const
iterator& operator++()
iterator& operator++(int)
iterator& operator--()
const_iterator()
const_iterator( const ASTlist<LoopRowNode*>::const_iterator ©Me )
const_iterator( const value_type ©Me )
~const_iterator()
bool operator==( const iterator &x ) const
bool operator!=( const iterator &x ) const
const_reference operator*() const
const value_type operator->() const
const_iterator& operator++()
const_iterator& operator++(int)
const_iterator& operator--()
const_iterator& operator--(int)
bool insert( iterator pos, vector<DataValueNode*> &v, const bool tflag )
Insert - Insert before 'pos', the row of data given by
'v'. Returns true if it worked or false otherwise.
(Will fail if the number of values does not match
what is in the loop's tagname list.)
(This function makes a copy of the passed vector, it does not use
the passed vector itself (in other words, you can delete
it after calling (and the DataValueNodes it points to).
bool insert( iterator pos, LoopRowNode &v )
Insert - Insert before 'pos', the LoopRowNode given. If the
LoopRowNode given has the wrong number of values, it
will fail and return false, else it returns true.
(This function makes a copy of the passed LoopRowNode, it does not use
the passed LoopRowNode itself (in other words, you can delete
it after calling (The LoopRowNode and the DataValueNodes IN the
LoopRowNode).)
This version makes a deep copy of the node given:
bool insert( iterator pos, LoopRowNode *v )
bool insert( iterator pos, LoopTableNode &t )
Insert - Insert before 'pos', the table of data given
by the LoopTableNode. If the layout of values is not
consistent with the layout defined by the names
in the DataLoopNode, it will fail and return false,
else it returns true.
(This function performs a DEEP COPY of the given loop node, so
everything in the passed argument can be deleted after calling,
if it is appropriate.)
bool insert( iterator pos, LoopTableNode *t )
void erase( iterator pos )
void erase( iterator from, iterator to )
LoopTableNode( bool tflag )
LoopTableNode( LoopIter& I)
LoopTableNode( bool link, LoopIter& I)
bool getIndentFlag( void ) const
bool getRowsPerLine( void ) const
bool getTabFlag( void )
void FlattenNestedLoop(List<DataValueNode*>* M)
void reset()
DataLoopValListNode::Status returnNextLoopElement(DataValueNode* & v)
ASTlist <DataValueNode *> * returnLoopValues(unsigned position)
StarFileNode::Status LoopTableNode::RemoveColumnValues( int nest, int ele )
(Removing the tagname from the name list with the erase() operator
causes it to remove the values under that name.)
virtual List <ASTnode*> * searchForType( ASTtype type, int delim = -1 )
delim - the delimiter type virtual bool unlinkChild( ASTnode *child )
private : bool myTflag
ASTlist <LoopRowNode *> myIters
bool indentFlag
int rowsPerLine
virtual int myLongestStr( void )
virtual void calcPrintSizes( List
alphabetic index hierarchy of classes
generated by doc++