private void addModifiersToAction(final String modifiers, final ActionFieldList action, final String variable, final Map<String, String> boundParams, final PackageDataModelOracle dmo, final RuleModel model, final boolean isJavaDialect) { for (String statement : splitArgumentsList(modifiers)) { int argStart = statement.indexOf('('); String methodName = statement.substring(0, argStart).trim(); addSetterToAction(action, variable, boundParams, dmo, model, isJavaDialect, statement, methodName); } }
private static void parseInsertDescr(RuleBuildContext context, JavaBlockDescr block, StringBuilder consequence) { String expr = block.getTargetExpression(); if (expr.startsWith("new ")) { int argsStart = expr.indexOf('('); if (argsStart > 0) { String className = expr.substring(4, argsStart).trim(); Class<?> typeClass = findClassByName(context, className); TypeDeclaration typeDeclaration = typeClass == null ? null : context.getPackageBuilder().getTypeDeclaration(typeClass); if (typeDeclaration != null) { ConsequenceMetaData.Statement statement = new ConsequenceMetaData.Statement(ConsequenceMetaData.Statement.Type.INSERT, typeClass); context.getRule().getConsequenceMetaData().addStatement(statement); String constructorParams = expr.substring(argsStart+1, expr.indexOf(')')).trim(); List<String> args = splitArgumentsList(constructorParams); ClassDefinition classDefinition = typeDeclaration.getTypeClassDef(); List<FactField> fields = classDefinition.getFields(); if (args.size() == fields.size()) { for (int i = 0; i < args.size(); i++) { statement.addField(fields.get(i).getName(), args.get(i)); } } } } } }
String methodParams = exprStr.substring(endMethodName+1, endMethodArgs).trim(); List<String> args = splitArgumentsList(methodParams); int argsNr = args.size();