/** * Ctor. * * @param configurationEventTypeXMLDOM is the XML DOM configuration such as root element and * schema names * @param metadata event type metadata * @param eventAdapterService for registration and lookup of types */ public BaseXMLEventType( EventTypeMetadata metadata, int eventTypeId, ConfigurationEventTypeXMLDOM configurationEventTypeXMLDOM, EventAdapterService eventAdapterService) { super(eventAdapterService, metadata, eventTypeId, Node.class); this.rootElementName = configurationEventTypeXMLDOM.getRootElementName(); this.configurationEventTypeXMLDOM = configurationEventTypeXMLDOM; xPathFactory = XPathFactory.newInstance(); if (configurationEventTypeXMLDOM.getXPathFunctionResolver() != null) { try { XPathFunctionResolver fresolver = (XPathFunctionResolver) JavaClassHelper.instantiate( XPathFunctionResolver.class, configurationEventTypeXMLDOM.getXPathFunctionResolver()); xPathFactory.setXPathFunctionResolver(fresolver); } catch (ClassInstantiationException ex) { throw new ConfigurationException( "Error configuring XPath function resolver for XML type '" + configurationEventTypeXMLDOM.getRootElementName() + "' : " + ex.getMessage(), ex); } } if (configurationEventTypeXMLDOM.getXPathVariableResolver() != null) { try { XPathVariableResolver vresolver = (XPathVariableResolver) JavaClassHelper.instantiate( XPathVariableResolver.class, configurationEventTypeXMLDOM.getXPathVariableResolver()); xPathFactory.setXPathVariableResolver(vresolver); } catch (ClassInstantiationException ex) { throw new ConfigurationException( "Error configuring XPath variable resolver for XML type '" + configurationEventTypeXMLDOM.getRootElementName() + "' : " + ex.getMessage(), ex); } } }