LinkedHashMap<String, RuleDescr> sorted = new LinkedHashMap<String, RuleDescr>(); for ( RuleDescr ruleDescr : packageDescr.getRules() ) { if ( !ruleDescr.hasParent() ) { roots.add(ruleDescr); packageDescr.getRules().clear(); for ( RuleDescr descr : sorted.values() ) { packageDescr.getRules().add( descr);
private void validateUniqueRuleNames( final PackageDescr packageDescr ) { final Set<String> names = new HashSet<String>(); PackageRegistry packageRegistry = this.pkgRegistryMap.get( packageDescr.getNamespace() ); Package pkg = null; if (packageRegistry != null) { pkg = packageRegistry.getPackage(); } for (final RuleDescr rule : packageDescr.getRules()) { validateRule(packageDescr, rule); final String name = rule.getName(); if (names.contains( name )) { this.results.add( new ParserError( rule.getResource(), "Duplicate rule name: " + name, rule.getLine(), rule.getColumn(), packageDescr.getNamespace() ) ); } if (pkg != null && pkg.getRule( name ) != null) { this.results.add( new DuplicateRule( rule, packageDescr, this.configuration ) ); } names.add( name ); } }
void compileAllRules(PackageDescr packageDescr, PackageRegistry pkgRegistry) { pkgRegistry.setDialect( getPackageDialect(packageDescr) ); // only try to compile if there are no parse errors if (!hasErrors()) { compileRules(packageDescr, pkgRegistry); } compileAll(); try { reloadAll(); } catch (Exception e) { this.results.add( new DialectError( null, "Unable to wire compiled classes, probably related to compilation failures:" + e.getMessage() ) ); } updateResults(); // iterate and compile if (! hasErrors() && this.ruleBase != null) { for (RuleDescr ruleDescr : packageDescr.getRules()) { pkgRegistry = this.pkgRegistryMap.get(ruleDescr.getNamespace()); this.ruleBase.addRule(pkgRegistry.getPackage(), pkgRegistry.getPackage().getRule(ruleDescr.getName())); } } }
for (RuleDescr descr : packageDescr.getRules()) { if (!ruleDescrs.contains(descr)) { addRule(descr);
public void visitPackageDescr(final PackageDescr packageDescr) { final String packageName = packageDescr.getName(); final String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> " + XmlDumper.eol + " <package name=\"" + packageName + "\" " + XmlDumper.eol + "\txmlns=\"http://drools.org/drools-5.2\" " + XmlDumper.eol + "\txmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\" " + XmlDumper.eol + "\txs:schemaLocation=\"http://drools.org/drools-5.2 drools.org/drools-5.2.xsd\"> " + XmlDumper.eol; appendXmlDump( xmlString ); appendXmlDump( processImportsList( packageDescr.getImports() ) ); appendXmlDump( processGlobalsList( packageDescr.getGlobals() ) ); appendXmlDump( processFunctionImportsList( packageDescr.getFunctionImports() )); appendXmlDump( processFunctionsList( packageDescr.getFunctions() ) ); appendXmlDump( processRules( packageDescr.getRules() ) ); appendXmlDump( "</package>" ); }
for (RuleDescr ruleDescr : packageDescr.getRules()) { if (isEmpty(ruleDescr.getNamespace())) {