@Test public void testExpandDRLUsingInjectedExpander() throws Exception { String dsl = "[condition]Something=Something()" + NL + "[then]another=another();"; String drl = "rule 'foo' " + NL + " when " + NL + " Something " + NL + " then " + NL + " another " + NL + "end"; DefaultExpanderResolver resolver = new DefaultExpanderResolver(new StringReader(dsl)); final DSLMappingFile file = new DSLTokenizedMappingFile(); if ( file.parseAndLoad( new StringReader(dsl) ) ) { final Expander expander = new DefaultExpander(); expander.addDSLMapping( file.getMapping() ); resolver.addExpander("*", expander); } else { throw new RuntimeException( "Error parsing and loading DSL file." + file.getErrors() ); } DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); String result = parser.getExpandedDRL( drl, resolver); Assertions.assertThat("rule 'foo' " + NL + " when " + NL + " Something() " + NL + " then " + NL + " another(); " + NL + "end") .isEqualToIgnoringWhitespace(result); }
@Test public void testMultiLineTemplates() throws Exception { final Reader source = new InputStreamReader( getClass().getResourceAsStream( "rule_with_expander_multiline.dslr" ) ); final Reader dsl = new InputStreamReader( getClass().getResourceAsStream( "test_dsl_multiline.dsl" ) ); Expander ex = new DefaultExpanderResolver(dsl).get("*", null); String r = ex.expand(source); assertEquals("when Car(color==\"Red\") then doSomething();", r.trim()); }
@Test public void testExpanderErrorsAfterExpansion() throws Exception { String name = "expander_post_errors.dslr"; Expander expander = new DefaultExpander(); String expanded = expander.expand( this.getReader( name ) ); DRLParser parser = parse( name, expanded ); parser.compilationUnit(); assertTrue( parser.hasErrors() ); assertEquals( 1, parser.getErrors().size() ); DroolsParserException err = (DroolsParserException) parser.getErrors().get( 0 ); assertEquals(6, err.getLineNumber()); }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public String getSource(final Path path, final RuleModel model) throws SourceGenerationFailedException { try { final String dslr = RuleModelDRLPersistenceImpl.getInstance().marshal(model); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return drl; } catch (Exception e) { throw new SourceGenerationFailedException(e.getMessage()); } }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public IndexBuilder fillIndexBuilder(final Path path) throws Exception { final String dslr = ioService.readAllString(path); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return fillDrlIndexBuilder(path, drl); }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public IndexBuilder fillIndexBuilder(final Path path) throws Exception { final String dslr = ioService.readAllString(path); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return fillDrlIndexBuilder(path, drl); }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public IndexBuilder fillIndexBuilder(final Path path) throws Exception { final String dslr = ioService.readAllString(path); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return fillDrlIndexBuilder(path, drl); }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public String getSource(final Path path, final RuleModel model) throws SourceGenerationFailedException { try { final String dslr = RuleModelDRLPersistenceImpl.getInstance().marshal(model); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return drl; } catch (Exception e) { throw new SourceGenerationFailedException(e.getMessage()); } }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). * @param path The {@link Path} of the resource to index * @return a {@link Expander} used to produce a DRL of the file */ public Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public IndexBuilder fillIndexBuilder(final Path path) throws Exception { final String dslr = ioService.readAllString(path); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return fillDrlIndexBuilder(path, drl); }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public String getSource(final Path path, final GuidedDecisionTable52 model) throws SourceGenerationFailedException { try { final String dslr = GuidedDTDRLPersistence.getInstance().marshal(model); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return drl; } catch (Exception e) { throw new SourceGenerationFailedException(e.getMessage()); } }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). */ private Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }
@Override public String getSource(final Path path, final TemplateModel model) throws SourceGenerationFailedException { try { if (model == null) { return ""; } else { final String dslr = RuleTemplateModelDRLPersistenceImpl.getInstance().marshal(model); final Expander expander = getDSLExpander(path); final String drl = expander.expand(dslr); return drl; } } catch (Exception e) { throw new SourceGenerationFailedException(e.getMessage()); } }
/** * Returns an expander for DSLs (only if there is a DSL configured for this package). * @param path The {@link Path} of the resource to index * @return a {@link Expander} used to produce a DRL of the file */ public Expander getDSLExpander(final Path path) { final Expander expander = new DefaultExpander(); final List<DSLMappingFile> dsls = getDSLMappingFiles(path); for (DSLMappingFile dsl : dsls) { expander.addDSLMapping(dsl.getMapping()); } return expander; }