public Map createVariableContext( final String className, final String text, final ProcessBuildContext context, final String[] globals, final Set<String> unboundIdentifiers, final ContextResolver contextResolver) { Map map = createVariableContext(className, text, context, globals); List<String> variables = new ArrayList<String>(); final List variableTypes = new ArrayList(globals.length); for (String variableName: unboundIdentifiers) { VariableScope variableScope = (VariableScope) contextResolver.resolveContext(VariableScope.VARIABLE_SCOPE, variableName); if (variableScope != null) { variables.add(variableName); variableTypes.add(variableScope.findVariable(variableName).getType().getStringType()); } } map.put("variables", variables); map.put("variableTypes", variableTypes); return map; }
public void generateTemplates(final String ruleTemplate, final String invokerTemplate, final ProcessBuildContext context, final String className, final Map vars, final Object invokerLookup, final BaseDescr descrLookup) { TemplateRegistry registry = getRuleTemplateRegistry(); context.getMethods().add((String) TemplateRuntime.execute(registry.getNamedTemplate(ruleTemplate), null, new MapVariableResolverFactory(vars), registry) ); registry = getInvokerTemplateRegistry(); final String invokerClassName = context.getPkg().getName() + "." + context.getProcessDescr().getClassName() + StringUtils.ucFirst(className) + "Invoker"; context.getInvokers().put(invokerClassName, (String)TemplateRuntime.execute(registry.getNamedTemplate(invokerTemplate), null, new MapVariableResolverFactory(vars), registry) ); context.addInvokerLookup(invokerClassName, invokerLookup); context.addDescrLookups(invokerClassName, descrLookup); }
public void generateTemplates(final String ruleTemplate, final String invokerTemplate, final ProcessBuildContext context, final String className, final Map vars, final Object invokerLookup, final BaseDescr descrLookup) { TemplateRegistry registry = getRuleTemplateRegistry(); context.getMethods().add((String) TemplateRuntime.execute(registry.getNamedTemplate(ruleTemplate), null, new MapVariableResolverFactory(vars), registry) ); registry = getInvokerTemplateRegistry(); final String invokerClassName = context.getPkg().getName() + "." + context.getProcessDescr().getClassName() + StringUtils.ucFirst(className) + "Invoker"; context.getInvokers().put(invokerClassName, (String)TemplateRuntime.execute(registry.getNamedTemplate(invokerTemplate), null, new MapVariableResolverFactory(vars), registry) ); context.addInvokerLookup(invokerClassName, invokerLookup); context.addDescrLookups(invokerClassName, descrLookup); }
public Map createVariableContext( final String className, final String text, final ProcessBuildContext context, final String[] globals, final Set<String> unboundIdentifiers, final ContextResolver contextResolver) { Map map = createVariableContext(className, text, context, globals); List<String> variables = new ArrayList<String>(); final List variableTypes = new ArrayList(globals.length); for (String variableName: unboundIdentifiers) { VariableScope variableScope = (VariableScope) contextResolver.resolveContext(VariableScope.VARIABLE_SCOPE, variableName); if (variableScope != null) { variables.add(variableName); variableTypes.add(variableScope.findVariable(variableName).getType().getStringType()); } } map.put("variables", variables); map.put("variableTypes", variableTypes); return map; }