public String emitDRL(PMML pmml) { List<Rule> ruleList = createRuleList(pmml); String pkgName = ScorecardPMMLUtils.getExtensionValue( pmml.getHeader().getExtensions(), PMMLExtensionNames.SCORECARD_PACKAGE); org.drools.template.model.Package aPackage = new org.drools.template.model.Package(pkgName); DRLOutput drlOutput = new DRLOutput(); for (Rule rule : ruleList) { aPackage.addRule(rule); } addDeclaredTypes(pmml, aPackage); addImports(pmml, aPackage); addGlobals(pmml, aPackage); internalEmitDRL(pmml, ruleList, aPackage); aPackage.renderDRL(drlOutput); String drl = drlOutput.getDRL(); return drl; }
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); }