Class KnowledgeBuilderHelper


  • public class KnowledgeBuilderHelper
    extends java.lang.Object
    Provides helper methods for working with JAXB and a Knowledgebase, it takes care of the Classpath issues when mapping against internal type declarations.

    This api is experimental and thus the classes and the interfaces returned are subject to change.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String[] addXsdModel​(org.kie.api.io.Resource resource, KnowledgeBuilder kbuilder, com.sun.tools.xjc.Options xjcOpts, java.lang.String systemId)
      Generates pojos for a given XSD using XJC and adds them to the specified KnowlegeBase.
      static DroolsJaxbHelperProvider getDroolsJaxbHelperProvider()  
      static javax.xml.bind.JAXBContext newJAXBContext​(java.lang.String[] classNames, java.util.Map<java.lang.String,​?> properties, org.kie.api.KieBase kbase)  
      static javax.xml.bind.JAXBContext newJAXBContext​(java.lang.String[] classNames, org.kie.api.KieBase kbase)
      Creates a new JAXBContext, from which the Marshaller and Unmarshaller can be created, which are used by the Transformer pipeline stage.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • KnowledgeBuilderHelper

        public KnowledgeBuilderHelper()
    • Method Detail

      • addXsdModel

        public static java.lang.String[] addXsdModel​(org.kie.api.io.Resource resource,
                                                     KnowledgeBuilder kbuilder,
                                                     com.sun.tools.xjc.Options xjcOpts,
                                                     java.lang.String systemId)
                                              throws java.io.IOException
        Generates pojos for a given XSD using XJC and adds them to the specified KnowlegeBase.
         Options xjcOpts = new Options();
         xjcOpts.setSchemaLanguage( Language.XMLSCHEMA );
         KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        
         String[] classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource( "order.xsd",
                                                                                                         getClass() ),
                                                                   kbuilder,
                                                                   xjcOpts,
                                                                   "xsd" );
         
        Parameters:
        resource - The resource to the XSD model
        kbuilder - the KnowledgeBuilder where the generated .class files will be placed
        xjcOpts - XJC Options
        systemId - XJC systemId
        Returns:
        Returns an array of class names that where generated by the XSD.
        Throws:
        java.io.IOException
      • newJAXBContext

        public static javax.xml.bind.JAXBContext newJAXBContext​(java.lang.String[] classNames,
                                                                org.kie.api.KieBase kbase)
                                                         throws javax.xml.bind.JAXBException
        Creates a new JAXBContext, from which the Marshaller and Unmarshaller can be created, which are used by the Transformer pipeline stage.
        Parameters:
        classNames - An array of class names that can be resolved by this JAXBContext
        kbase - The KnowledgeBase
        Returns:
        The JAXB Context
        Throws:
        javax.xml.bind.JAXBException
      • newJAXBContext

        public static javax.xml.bind.JAXBContext newJAXBContext​(java.lang.String[] classNames,
                                                                java.util.Map<java.lang.String,​?> properties,
                                                                org.kie.api.KieBase kbase)
                                                         throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException