private void addSettersToAction( List<String> setters, ActionFieldList action, boolean isJavaDialect ) { if ( setters != null ) { for ( String statement : setters ) { int dotPos = statement.indexOf( '.' ); int argStart = statement.indexOf( '(' ); String methodName = statement.substring( dotPos + 1, argStart ).trim(); String field = getSettedField( methodName ); String value = unwrapParenthesis( statement ); String dataType = inferDataType( value, isJavaDialect ); action.addFieldValue( buildFieldValue( isJavaDialect, field, value, dataType ) ); } } }
private Expr parseExpr( String expr ) { List<String> splittedExpr = splitExpression( expr ); if ( splittedExpr.size() == 1 ) { String singleExpr = splittedExpr.get( 0 ); if ( singleExpr.startsWith( "(" ) ) { return parseExpr( singleExpr.substring( 1 ) ); } else if ( singleExpr.startsWith( "eval" ) ) { return new EvalExpr( unwrapParenthesis( singleExpr ) ); } else { return new SimpleExpr( singleExpr ); } } ComplexExpr complexExpr = new ComplexExpr( splittedExpr.get( 1 ) ); for ( int i = 0; i < splittedExpr.size(); i += 2 ) { complexExpr.subExprs.add( parseExpr( splittedExpr.get( i ) ) ); } return complexExpr; }
String fact = unwrapParenthesis( line ); String type = getStatementType( fact, factsType ); if ( type != null ) { String fact = unwrapParenthesis( line ); String type = getStatementType( fact, factsType ); if ( type != null ) { String variable = unwrapParenthesis( line ); ActionUpdateField action = new ActionUpdateField(); action.setVariable( variable ); addSettersToAction( setStatements, variable, action, isJavaDialect ); } else if ( line.startsWith( "retract" ) ) { String variable = unwrapParenthesis( line ); m.addRhsItem( new ActionRetractFact( variable ) ); } else if ( line.startsWith( "org.kie.internal.process.instance.impl.WorkItemImpl wiWorkItem" ) ) { } else if ( line.startsWith( "wiWorkItem.getParameters().put" ) ) { String statement = line.substring( "wiWorkItem.getParameters().put".length() ); statement = unwrapParenthesis( statement ); int commaPos = statement.indexOf( ',' ); String name = statement.substring( 0, commaPos ).trim(); acm.setVariable( variable ); m.addRhsItem( acm ); String params = unwrapParenthesis( line ); for ( String param : params.split( "," ) ) { param = param.trim();