/** * Generates DRL from a data provider for the spreadsheet data and templates. * * @param dataProvider the data provider for the spreadsheet data * @param templateStream the InputStream for reading the templates * @return the generated DRL text as a String */ public String compile(final DataProvider dataProvider, final InputStream templateStream) { return compile(dataProvider,templateStream, true ); }
/** * Generates DRL from a data provider for the spreadsheet data and templates. * * @param dataProvider the data provider for the spreadsheet data * @param listener a template data listener * @return the generated DRL text as a String */ public String compile(final DataProvider dataProvider, final TemplateDataListener listener) { return compile(dataProvider, listener, true); }
/** * Generates DRL from a data provider for the spreadsheet data and templates. * * @param dataProvider the data provider for the spreadsheet data * @param template the string containing the template resource name * @return the generated DRL text as a String */ public String compile(final DataProvider dataProvider, final String template) { final InputStream templateStream = this.getClass().getResourceAsStream(template); return compile(dataProvider, templateStream); }
/** * Generates DRL from a data provider for the spreadsheet data and templates. * * @param dataProvider the data provider for the spreadsheet data * @param template the string containing the template resource name * @return the generated DRL text as a String */ public String compile(final DataProvider dataProvider, final String template, boolean replaceOptionals) { final InputStream templateStream = this.getClass().getResourceAsStream(template); return compile(dataProvider, templateStream); }
protected void addPolicyRule(DroolsPolicyRule uriPolicyRule) { InputStream templateStream = DroolsPolicy.class.getClassLoader().getResourceAsStream("templates/DroolsPolicyTemplate.drl"); DroolsPolicyTemplateDataProvider tdp = new DroolsPolicyTemplateDataProvider(uriPolicyRule); DataProviderCompiler converter = new DataProviderCompiler(); String drl = converter.compile(tdp, templateStream); if (log.isDebugEnabled()) { log.debug("------------ ADDING NEW POLICY RULE INTO DROOLS ENGINE ----------------------"); log.debug(drl); log.debug("------------ END NEW POLICY RULE ------------------"); } // Then add it into drools RuleBase addPackage(drl); }
@Override public String marshal(final RuleModel model) { //Build rule final String ruleTemplate = marshalRule(model); log.debug("ruleTemplate:\n{}", ruleTemplate); log.debug("generated template:\n{}", ruleTemplate); final DataProvider dataProvider = chooseDataProvider(model); final DataProviderCompiler tplCompiler = new DataProviderCompiler(); final InputStream templateStream = new ByteArrayInputStream(ruleTemplate.getBytes(IoUtils.UTF8_CHARSET)); final DefaultTemplateContainer tc = new DefaultTemplateContainer(templateStream, false); final TemplateDataListener listener = new TemplateDataListener(tc, false); final String generatedDrl = tplCompiler.compile(dataProvider, listener); log.debug("generated drl:\n{}", generatedDrl); return generatedDrl; }
/** * Generates DRL from a data provider for the spreadsheet data and templates. * * @param dataProvider the data provider for the spreadsheet data * @param templateStream the InputStream for reading the templates * @return the generated DRL text as a String */ public String compile(final DataProvider dataProvider, final InputStream templateStream, boolean replaceOptionals) { DefaultTemplateContainer tc = new DefaultTemplateContainer(templateStream, replaceOptionals); closeStream(templateStream); return compile(dataProvider, new TemplateDataListener(tc)); }
public static void main(String[] args) { InputStream template = RuleTemplateArrayDemo.class.getResourceAsStream("/com/template/template.drt"); DataProvider dataProvider = new ArrayDataProvider(new String[][]{ {"1", "Tom"}, {"2", "Lucy"} }); DataProviderCompiler compiler = new DataProviderCompiler(); String drl = compiler.compile(dataProvider, template); KieSession kieSession = getKieSessionByDrl(drl); Person person = new Person(1,""); kieSession.insert(person); kieSession.fireAllRules(); System.out.println("Person's username is " + person.getUsername()); }