private void objectTypeRow ( final int row , final int column , final String value , final int mergedColStart ) { if ( value . contains ( "$param" ) || value . contains ( "$1" ) ) { throw new DecisionTableParseException ( "It looks like you have snippets in the row that is " + "meant for object declarations." + " Please insert an additional row before the snippets, " + "at cell " + RuleSheetParserUtil . rc2name ( row , column ) ) ; } ActionType action = getActionForColumn ( row , column ) ; if ( mergedColStart == RuleSheetListener . NON_MERGED ) { if ( action . getCode ( ) == Code . CONDITION ) { SourceBuilder src = new LhsBuilder ( row - 1 , column , value ) ; action . setSourceBuilder ( src ) ; this . sourceBuilders . add ( src ) ; } else if ( action . getCode ( ) == Code . ACTION ) { SourceBuilder src = new RhsBuilder ( Code . ACTION , row - 1 , column , value ) ; action . setSourceBuilder ( src ) ; this . sourceBuilders . add ( src ) ; } } else { if ( column == mergedColStart ) { if ( action . getCode ( ) == Code . CONDITION ) { action . setSourceBuilder ( new LhsBuilder ( row - 1 , column , value ) ) ; this . sourceBuilders . add ( action . getSourceBuilder ( ) ) ; } else if ( action . getCode ( ) == Code . ACTION ) { action . setSourceBuilder ( new RhsBuilder ( Code . ACTION , row - 1 , column , value ) ) ; this . sourceBuilders . add ( action . getSourceBuilder ( ) ) ; } } else { ActionType startOfMergeAction = getActionForColumn ( row , mergedColStart ) ; action . setSourceBuilder ( startOfMergeAction . getSourceBuilder ( ) ) ; } } }
This is for handling a row where an object declaration may appear this is the row immediately above the snippets . It may be blank but there has to be a row here .