Class RuntimeModelBuilder

  • All Implemented Interfaces:
    ModelBuilderI<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>

    public class RuntimeModelBuilder
    extends ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
    ModelBuilder that works at the run-time by using the java.lang.reflect package.

    This extends ModelBuilder by providing more functionalities such as accessing the fields and classes.

    Author:
    Kohsuke Kawaguchi (kk@kohsuke.org)
    • Constructor Detail

      • RuntimeModelBuilder

        public RuntimeModelBuilder​(JAXBContextImpl context,
                                   RuntimeAnnotationReader annotationReader,
                                   java.util.Map<java.lang.Class,​java.lang.Class> subclassReplacements,
                                   java.lang.String defaultNamespaceRemap)
    • Method Detail

      • getClassInfo

        public RuntimeNonElement getClassInfo​(java.lang.Class clazz,
                                              Locatable upstream)
        Description copied from class: ModelBuilder
        Builds a JAXB ClassInfo model from a given class declaration and adds that to this model owner.

        Return type is either ClassInfo or LeafInfo (for types like String or Enum-derived ones)

        Overrides:
        getClassInfo in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
      • getClassInfo

        public RuntimeNonElement getClassInfo​(java.lang.Class clazz,
                                              boolean searchForSuperClass,
                                              Locatable upstream)
        Description copied from class: ModelBuilder
        For limited cases where the caller needs to search for a super class. This is necessary because we don't want ModelBuilder.subclassReplacements to kick in for the super class search, which will cause infinite recursion.
        Overrides:
        getClassInfo in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
      • createEnumLeafInfo

        protected com.sun.xml.bind.v2.model.impl.RuntimeEnumLeafInfoImpl createEnumLeafInfo​(java.lang.Class clazz,
                                                                                            Locatable upstream)
        Overrides:
        createEnumLeafInfo in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
      • createClassInfo

        protected com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl createClassInfo​(java.lang.Class clazz,
                                                                                      Locatable upstream)
        Overrides:
        createClassInfo in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
      • createElementInfo

        public com.sun.xml.bind.v2.model.impl.RuntimeElementInfoImpl createElementInfo​(com.sun.xml.bind.v2.model.impl.RegistryInfoImpl<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method> registryInfo,
                                                                                       java.lang.reflect.Method method)
                                                                                throws IllegalAnnotationException
        Overrides:
        createElementInfo in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
        Throws:
        IllegalAnnotationException
      • createArrayInfo

        public com.sun.xml.bind.v2.model.impl.RuntimeArrayInfoImpl createArrayInfo​(Locatable upstream,
                                                                                   java.lang.reflect.Type arrayType)
        Overrides:
        createArrayInfo in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
      • createTypeInfoSet

        protected com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl createTypeInfoSet()
        Overrides:
        createTypeInfoSet in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
      • link

        public RuntimeTypeInfoSet link()
        Description copied from class: ModelBuilder
        Called after all the classes are added to the type set to "link" them together.

        Don't expose implementation classes in the signature.

        Overrides:
        link in class ModelBuilder<java.lang.reflect.Type,​java.lang.Class,​java.lang.reflect.Field,​java.lang.reflect.Method>
        Returns:
        fully built TypeInfoSet that represents the model, or null if there was an error.