public AssertionBuilderFactoryImpl(PolicyBuilder eng, ConverterRegistry reg) { engine = eng; if (reg == null) { throw new IllegalArgumentException("ConverterRegistry must not be null"); } converters = reg; for (AssertionBuilder<?> builder : Service.providers(AssertionBuilder.class)) { QName[] knownElements = builder.getKnownElements(); for (int i = 0; i < knownElements.length; i++) { registeredBuilders.put(knownElements[i], builder); } } defaultBuilder = new XMLPrimitiveAssertionBuilder(); }
protected AssertionBuilder<?> handleNoRegisteredBuilder(QName qname) { if (ignoreUnknownAssertions) { boolean alreadyWarned = ignored.contains(qname); if (!alreadyWarned) { ignored.add(qname); Message m = new Message("NO_ASSERTIONBUILDER_EXC", BUNDLE, qname.toString()); LOG.warning(m.toString()); } return new XMLPrimitiveAssertionBuilder(); } Message m = new Message("NO_ASSERTIONBUILDER_EXC", BUNDLE, qname.toString()); throw new PolicyException(m); }
protected AssertionBuilder<?> handleNoRegisteredBuilder(QName qname) { if (ignoreUnknownAssertions) { boolean alreadyWarned = ignored.contains(qname); if (!alreadyWarned) { ignored.add(qname); Message m = new Message("NO_ASSERTIONBUILDER_EXC", BUNDLE, qname.toString()); LOG.warning(m.toString()); } return new XMLPrimitiveAssertionBuilder(); } Message m = new Message("NO_ASSERTIONBUILDER_EXC", BUNDLE, qname.toString()); throw new PolicyException(m); }
private static void buildAssertionBuilders() { // Get the current context class loader ClassLoader originalCL = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(NeethiPolicyApplier.class.getClassLoader()); QName XML_ASSERTION_BUILDER = new QName("http://test.org/test", "test"); Iterator<AssertionBuilder> asseryionBuilders = ServiceRegistry.lookupProviders(AssertionBuilder.class); while (asseryionBuilders.hasNext()) { AssertionBuilder builder = asseryionBuilders.next(); for (QName knownElement : builder.getKnownElements()) { PolicyEngine.registerBuilder(knownElement, builder); } } PolicyEngine.registerBuilder(XML_ASSERTION_BUILDER, new XMLPrimitiveAssertionBuilder()); } finally { // Change class loader back to what it was !! Thread.currentThread().setContextClassLoader(originalCL); } }