class LoopRowNode |
This class is a single row of values in a loop.
| FlattenNestedLoop (List<DataValueNode*>* M) DEPRECIATED - use the STL vector operations instead | |
| RemoveColumnValues ( int nest, int ele ) DEPRECIATED - use the STL vector operations instead | |
| Unparse (int indent) Print the output of this row of the list: | |
| Unparse (int indent, List<int>* presizes, List<int>* postsizes ) This version is for internal use only, but had to be made public for technical reasons - don't call it. | |
| addInnerLoopValue (const DataLoopNameListNode::Status dstat, const int row, const int currRow, DVNWithPos* value) DEPRECIATED - use the STL vector operations instead | |
| addValue (DVNWithPos* value) DEPRECIATED - use the STL vector operations instead | |
| back () const | |
| back () | |
| begin () const | |
| begin () | |
| empty () const | |
| end () | |
| end () const | |
| front () const | |
| front () | |
| isInLoop (void) isInLoop: Returns true if this LoopRowNode is inside a DataLoopNode, or false if it is not. | |
| isOfType ( ASTtype T ) | |
| myLongestStr ( void ) Returns the length of the longest string in this object. | |
| myLoop ( void ) Returns a pointer to the inner loop that is under this row. | |
| myType (void) | |
| operator[] ( size_type n) const | |
| operator[] ( size_type n ) | |
| reserve ( size_type n ) | |
| reset () DEPRECIATED - use the STL vector operations instead | |
| returnLoopValue (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. | |
| setMyLoop ( LoopTableNode* tbl ) Sets the interior loop under this row. | |
| size () const | |
| unlinkChild ( ASTnode* child ) unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode. | |
| ~LoopRowNode () Destructor - recursively destructs the values in the loop too |
| | |
This class is a single row of values in a loop.A single row of values in the loop is a list (STL vector) of DataValueNodes. In addition each loop row can have a table of values hanging "under" it at the next nesting level. And the rows of that table can have other tables under them, and so on.
The value returned is an integer. It is a count of how many nesting levels deep this is in the loop that it was found it. Thus if it is zero (false) it was not found in a loop, and if it is 1 then it was found in nesting level 1 of a loop, 2 = nesting level 2, etc.
Note that this is off-by-one with the index used in the [] operator, which starts counting at zero. This was done so that this method could be used like a boolean. (zero means not found, nonzero means 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.
*-------------------------------------------------- * insert() and erase() * *-------------------------------------------------- * The following functions will only work if this LoopRowNode has not * yet been attached to a loop in a STAR tree.
*-------------------------------------------------- * insert() and erase() * *-------------------------------------------------- * The following functions will only work if this LoopRowNode has not * yet been attached to a loop in a STAR tree. if this LoopRowNode * *HAS* been attached to a loop in the STAR tree already, then these * methods will be disallowed because that would cause a mismatch * between the number of values in the loop row and the number of * tagnames for the loop. * * Thus this can work: * DataLoopNode some_loop; * LoopRowNode some_row; * ... * some_row.insert( some_row.end(), * new DataValueNode( "hello" ); * some_row.insert( some_row.end(), * new DataValueNode( "world" ); * some_loop.getVals.insert( begin(), some_row ); * * (it only works assuming that two values per row is * * the proper amount for some_loop, else it's an error.) * * But this will not work: * DataLoopNode some_loop; * LoopRowNode some_row; * ... * ... * some_loop.getVals[0].insert( end(), * new DataValueNode( "hello " ); * * (You cannot insert or delete values from a row * * of data that is already in a loop. You can only * * insert or delete entire rows at a time from an * * existing loop.) ** * Insert - Insert before 'pos', the data value 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.) * *
Alphabetic index HTML hierarchy of classes or Java