question: public void filterRows ( ) { if ( m_parent == null ) return ; CascadedRowManager rowman = ( CascadedRowManager ) m_rows ; IntIterator crows = m_rows . rows ( ) ; while ( crows . hasNext ( ) ) { int crow = crows . nextInt ( ) ; if ( ! m_rowFilter . getBoolean ( m_parent . getTuple ( rowman . getParentRow ( crow ) ) ) ) { removeCascadedRow ( crow ) ; } } Iterator ptuples = m_parent . tuples ( m_rowFilter ) ; while ( ptuples . hasNext ( ) ) { Tuple pt = ( Tuple ) ptuples . next ( ) ; int prow = pt . getRow ( ) ; if ( rowman . getChildRow ( prow ) == - 1 ) addCascadedRow ( prow ) ; } }
target:  Manually trigger a re-filtering of the rows of this table. If the filtering predicate concerns only items within this table, calling this method should be unnecessary. It is only when the filtering predicate references data outside of this table that a manual re-filtering request may be necessary. For example, filtering valid edges of a graph from a pool of candidate edges will depend on the available nodes.