public int evaluate ( FieldContainer container ) { // // First step - determine the list of criteria we are should use // List < GraphicalIndicatorCriteria > criteria ; if ( container instanceof Task ) { Task task = ( Task ) container ; if ( NumberHelper . getInt ( task . getUniqueID ( ) ) == 0 ) { if ( m_projectSummaryInheritsFromSummaryRows == false ) { criteria = m_projectSummaryCriteria ; } else { if ( m_summaryRowsInheritFromNonSummaryRows == false ) { criteria = m_summaryRowCriteria ; } else { criteria = m_nonSummaryRowCriteria ; } } } else { if ( task . getSummary ( ) == true ) { if ( m_summaryRowsInheritFromNonSummaryRows == false ) { criteria = m_summaryRowCriteria ; } else { criteria = m_nonSummaryRowCriteria ; } } else { criteria = m_nonSummaryRowCriteria ; } } } else { // It is possible to have a resource summary row, but at the moment // I can't see how you can determine this. criteria = m_nonSummaryRowCriteria ; } // // Now we have the criteria, evaluate each one until we get a result // int result = - 1 ; for ( GraphicalIndicatorCriteria gic : criteria ) { result = gic . evaluate ( container ) ; if ( result != - 1 ) { break ; } } // // If we still don't have a result at the end, return the // default value, which is 0 // if ( result == - 1 ) { result = 0 ; } return ( result ) ; }
This method evaluates a if a graphical indicator should be displayed given a set of Task or Resource data . The method will return - 1 if no indicator should be displayed .