Package org.kie.internal.builder.help

## Class KnowledgeBuilderHelper

- java.lang.Object
- - org.kie.internal.builder.help.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.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `KnowledgeBuilderHelper()` |

  - ### 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`

    - #### getDroolsJaxbHelperProvider

          public static DroolsJaxbHelperProvider getDroolsJaxbHelperProvider()