private void addImports(PMML pmml, Package aPackage) { String importsFromDelimitedString = ScorecardPMMLUtils.getExtensionValue( pmml.getHeader().getExtensions(), PMMLExtensionNames.SCORECARD_IMPORTS); if (!(importsFromDelimitedString == null || importsFromDelimitedString.isEmpty())) { for (String importStatement : importsFromDelimitedString.split(",")) { Import imp = new Import(); imp.setClassName(importStatement); aPackage.addImport(imp); } } Import defaultScorecardImport = new Import(); defaultScorecardImport.setClassName("org.drools.scorecards.DroolsScorecard"); aPackage.addImport(defaultScorecardImport); defaultScorecardImport = new Import(); defaultScorecardImport.setClassName("org.drools.scorecards.PartialScore"); aPackage.addImport(defaultScorecardImport); defaultScorecardImport = new Import(); defaultScorecardImport.setClassName("org.drools.scorecards.InitialScore"); aPackage.addImport(defaultScorecardImport); defaultScorecardImport = new Import(); defaultScorecardImport.setClassName("org.drools.scorecards.BaselineScore"); aPackage.addImport(defaultScorecardImport); }
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; }