use of org.drools.template.model.Import in project drools by kiegroup.
the class DefaultRuleSheetListener method buildRuleSet.
private Package buildRuleSet() {
final String defaultPackageName = "rule_table";
final String rulesetName = getProperties().getSingleProperty(RULESET_TAG, defaultPackageName);
final Package ruleset = new Package((showPackage) ? rulesetName : null);
for (Rule rule : this._ruleList) {
ruleset.addRule(rule);
}
final List<Import> importList = RuleSheetParserUtil.getImportList(getProperties().getProperty(IMPORT_TAG));
for (Import import1 : importList) {
ruleset.addImport(import1);
}
final List<Global> variableList = RuleSheetParserUtil.getVariableList(getProperties().getProperty(VARIABLES_TAG));
for (Global global : variableList) {
ruleset.addVariable(global);
}
final List<String> functions = getProperties().getProperty(FUNCTIONS_TAG);
if (functions != null) {
for (String function : functions) {
ruleset.addFunctions(function);
}
}
final List<String> queries = getProperties().getProperty(QUERIES_TAG);
if (queries != null) {
for (String query : queries) {
ruleset.addQueries(query);
}
}
final List<String> declarations = getProperties().getProperty(DECLARES_TAG);
if (declarations != null) {
for (String declaration : declarations) {
ruleset.addDeclaredType(declaration);
}
}
for (Code code : ActionType.ATTRIBUTE_CODE_SET) {
List<String> values = getProperties().getProperty(code.getColHeader());
if (values != null) {
if (values.size() > 1) {
List<String> cells = getProperties().getPropertyCells(code.getColHeader());
throw new DecisionTableParseException("Multiple values for " + code.getColHeader() + " in cells " + cells.toString());
}
String value = values.get(0);
switch(code) {
case SALIENCE:
try {
ruleset.setSalience(new Integer(value));
} catch (NumberFormatException nfe) {
throw new DecisionTableParseException("Priority is not an integer literal, in cell " + getProperties().getSinglePropertyCell(code.getColHeader()));
}
break;
case DURATION:
try {
ruleset.setDuration(new Long(value));
} catch (NumberFormatException nfe) {
throw new DecisionTableParseException("Duration is not an integer literal, in cell " + getProperties().getSinglePropertyCell(code.getColHeader()));
}
break;
case TIMER:
ruleset.setTimer(value);
break;
case ENABLED:
ruleset.setEnabled(RuleSheetParserUtil.isStringMeaningTrue(value));
break;
case CALENDARS:
ruleset.setCalendars(value);
break;
case NOLOOP:
ruleset.setNoLoop(RuleSheetParserUtil.isStringMeaningTrue(value));
break;
case LOCKONACTIVE:
ruleset.setLockOnActive(RuleSheetParserUtil.isStringMeaningTrue(value));
break;
case AUTOFOCUS:
ruleset.setAutoFocus(RuleSheetParserUtil.isStringMeaningTrue(value));
break;
case ACTIVATIONGROUP:
ruleset.setActivationGroup(value);
break;
case AGENDAGROUP:
ruleset.setAgendaGroup(value);
break;
case RULEFLOWGROUP:
ruleset.setRuleFlowGroup(value);
break;
case DATEEFFECTIVE:
ruleset.setDateEffective(value);
break;
case DATEEXPIRES:
ruleset.setDateExpires(value);
break;
}
}
}
return ruleset;
}
use of org.drools.template.model.Import in project drools by kiegroup.
the class SpreadsheetCompilerUnitTest method testPropertiesXLS.
@Test
public void testPropertiesXLS() {
final List<DataListener> listeners = new ArrayList<DataListener>();
final DefaultRuleSheetListener listener = new DefaultRuleSheetListener();
listeners.add(listener);
final ExcelParser parser = new ExcelParser(listeners);
final InputStream is = this.getClass().getResourceAsStream("Properties.xls");
parser.parseFile(is);
listener.getProperties();
final String rulesetName = listener.getProperties().getSingleProperty(DefaultRuleSheetListener.RULESET_TAG);
assertNotNull(rulesetName);
assertEquals("Properties", rulesetName);
final List<Import> importList = RuleSheetParserUtil.getImportList(listener.getProperties().getProperty(DefaultRuleSheetListener.IMPORT_TAG));
assertNotNull(importList);
assertEquals(1, importList.size());
assertEquals("java.util.List", importList.get(0).getClassName());
final List<Global> variableList = RuleSheetParserUtil.getVariableList(listener.getProperties().getProperty(DefaultRuleSheetListener.VARIABLES_TAG));
assertNotNull(variableList);
assertEquals(1, variableList.size());
assertEquals("java.util.List", variableList.get(0).getClassName());
assertEquals("list", variableList.get(0).getIdentifier());
final List<String> functions = listener.getProperties().getProperty(DefaultRuleSheetListener.FUNCTIONS_TAG);
assertNotNull(functions);
assertEquals(1, functions.size());
assertEquals("A function", functions.get(0));
final List<String> queries = listener.getProperties().getProperty(DefaultRuleSheetListener.QUERIES_TAG);
assertNotNull(queries);
assertEquals(1, queries.size());
assertEquals("A query", queries.get(0));
final List<String> declarations = listener.getProperties().getProperty(DefaultRuleSheetListener.DECLARES_TAG);
assertNotNull(declarations);
assertEquals(1, declarations.size());
assertEquals("A declared type", declarations.get(0));
final String sequentialFlag = listener.getProperties().getSingleProperty(DefaultRuleSheetListener.SEQUENTIAL_FLAG);
assertNotNull(sequentialFlag);
assertEquals("false", sequentialFlag);
final String escapeQuotesFlag = listener.getProperties().getSingleProperty(DefaultRuleSheetListener.ESCAPE_QUOTES_FLAG);
assertNotNull(escapeQuotesFlag);
assertEquals("false", escapeQuotesFlag);
}
use of org.drools.template.model.Import in project drools by kiegroup.
the class DefaultTemplateRuleBase method addImports.
private void addImports(org.drools.template.model.Package p) {
Import drlImport1 = new Import();
drlImport1.setClassName(Map.class.getName());
Import drlImport2 = new Import();
drlImport2.setClassName(HashMap.class.getName());
p.addImport(drlImport1);
p.addImport(drlImport2);
}
use of org.drools.template.model.Import in project drools-wb by kiegroup.
the class DecisionTableXLSToDecisionTableGuidedConverter method makeGlobalsModel.
private GlobalsModel makeGlobalsModel(final List<Import> imports, final List<Global> globals, final ConversionResult result) {
final GlobalsModel model = new GlobalsModel();
for (Global global : globals) {
if (global.getClassName().contains(".")) {
model.getGlobals().add(new org.drools.workbench.screens.globals.model.Global(global.getIdentifier(), global.getClassName()));
} else {
boolean mapped = false;
for (Import imp : imports) {
if (imp.getClassName().contains(".")) {
final String fullyQualifiedClassName = imp.getClassName();
final String leafClassName = fullyQualifiedClassName.substring(fullyQualifiedClassName.lastIndexOf(".") + 1);
if (global.getClassName().equals(leafClassName)) {
model.getGlobals().add(new org.drools.workbench.screens.globals.model.Global(global.getIdentifier(), fullyQualifiedClassName));
mapped = true;
break;
}
}
}
if (!mapped) {
result.addMessage("Unable to determine Fully Qualified Class Name for Global '" + global.getIdentifier() + "'. Skipping.", ConversionMessageType.ERROR);
}
}
}
return model;
}
use of org.drools.template.model.Import in project drools-wb by kiegroup.
the class DecisionTableXLSToDecisionTableGuidedConverter method makeDRL.
private String makeDRL(final List<Import> imports, final String baseDRL) {
final StringBuilder sb = new StringBuilder();
if (!(imports == null || imports.isEmpty())) {
for (Import item : imports) {
sb.append("import ").append(item.getClassName()).append(";\n");
}
sb.append("\n");
}
sb.append(baseDRL).append("\n");
return sb.toString();
}
Aggregations