switch( actionType.getCode() ){
case CONDITION:
case ACTION:
case METADATA:
if (actionType.getSourceBuilder() == null) {
throw new DecisionTableParseException( "Data cell " +
RuleSheetParserUtil.rc2name( row, column ) +
" has an empty column header." );
}
actionType.addCellValue( row, column, value, _currentEscapeQuotesFlag );
break;
case SALIENCE:
// Only if rule set is not sequential!
if( ! this._currentSequentialFlag ){
if( value.startsWith( "(" ) && value.endsWith( ")" ) ){
this._currentRule.setSalience( value );
} else {
try {
this._currentRule.setSalience( new Integer( value ) );
} catch( NumberFormatException nfe ){
throw new DecisionTableParseException( "Priority is not an integer literal, in cell " +
RuleSheetParserUtil.rc2name( row, column ) );
}
}
}
break;
case NAME:
this._currentRule.setName( value );
break;
case DESCRIPTION:
this._currentRule.setDescription( value );
break;
case ACTIVATIONGROUP:
this._currentRule.setActivationGroup( value );
break;
case AGENDAGROUP:
this._currentRule.setAgendaGroup( value );
break;
case RULEFLOWGROUP:
this._currentRule.setRuleFlowGroup( value );
break;
case NOLOOP:
this._currentRule.setNoLoop( RuleSheetParserUtil.isStringMeaningTrue( value ) );
break;
case LOCKONACTIVE:
this._currentRule.setLockOnActive( RuleSheetParserUtil.isStringMeaningTrue( value ) );
break;
case AUTOFOCUS:
this._currentRule.setAutoFocus( RuleSheetParserUtil.isStringMeaningTrue( value ) );
break;
case DURATION:
try {
this._currentRule.setDuration( new Long( value ) );
} catch( NumberFormatException nfe ){
throw new DecisionTableParseException( "Duration is not an integer literal, in cell " +
RuleSheetParserUtil.rc2name( row, column ) );
}
break;
case TIMER:
this._currentRule.setTimer( value );