ruleDescr.setResource( resource );
PackageRegistry pkgRegistry = this.pkgRegistryMap.get( ruleDescr.getNamespace() );
DialectCompiletimeRegistry ctr = pkgRegistry.getDialectCompiletimeRegistry();
RuleBuildContext context = new RuleBuildContext( this,
ruleDescr,
ctr,
pkgRegistry.getPackage(),
ctr.getDialect( pkgRegistry.getDialect() ) );
this.ruleBuilder.build( context );
this.results.addAll( context.getErrors() );
if ( resource != null && ((InternalResource) resource).hasURL() ) {
context.getRule().setResource( resource );
}
context.getDialect().addRule( context );
if ( this.ruleBase != null ) {
if ( pkgRegistry.getPackage().getRule( ruleDescr.getName() ) != null ) {
this.ruleBase.removeRule( pkgRegistry.getPackage(),
pkgRegistry.getPackage().getRule( ruleDescr.getName() ) );
}
}
pkgRegistry.getPackage().addRule( context.getRule() );
}