Class AbstractWrapperBeanGenerator<T,​C,​M,​A extends Comparable>


  • public abstract class AbstractWrapperBeanGenerator<T,​C,​M,​A extends Comparable>
    extends Object
    Finds request/response wrapper and exception bean memebers.

    It uses JAXB's AnnotationReader, Navigator so that tools can use this with annotation processing, and the runtime can use this with reflection.

    Author:
    Jitendra Kotamraju
    • Constructor Detail

      • AbstractWrapperBeanGenerator

        protected AbstractWrapperBeanGenerator​(org.glassfish.jaxb.core.v2.model.annotation.AnnotationReader<T,​C,​?,​M> annReader,
                                               org.glassfish.jaxb.core.v2.model.nav.Navigator<T,​C,​?,​M> nav,
                                               AbstractWrapperBeanGenerator.BeanMemberFactory<T,​A> factory)
    • Method Detail

      • getSafeType

        protected abstract T getSafeType​(T type)
      • getHolderValueType

        protected abstract T getHolderValueType​(T type)
        Returns Holder's value type.
        Returns:
        null if it not a Holder, otherwise return Holder's value type
      • isVoidType

        protected abstract boolean isVoidType​(T type)
      • collectRequestBeanMembers

        public List<A> collectRequestBeanMembers​(M method)
        Computes request bean members for a method. Collects all IN and INOUT parameters as request bean fields. In this process, if a parameter has any known JAXB annotations they are collected as well. Special processing for @XmlElement annotation is done.
        Parameters:
        method - SEI method for which request bean members are computed
        Returns:
        List of request bean members
      • collectResponseBeanMembers

        public List<A> collectResponseBeanMembers​(M method)
        Computes response bean members for a method. Collects all OUT and INOUT parameters as response bean fields. In this process, if a parameter has any known JAXB annotations they are collected as well. Special processing for @XmlElement annotation is done.
        Parameters:
        method - SEI method for which response bean members are computed
        Returns:
        List of response bean members
      • collectExceptionBeanMembers

        public Collection<A> collectExceptionBeanMembers​(C exception)
        Computes and sorts exception bean members for a given exception as per the 3.7 section of the spec. It takes all getter properties in the exception and its superclasses(except getCause, getLocalizedMessage, getStackTrace, getClass). The returned collection is sorted based on the property names.

        But if the exception has @XmlType its values are honored. Only the propOrder properties are considered. The returned collection is sorted as per the given propOrder.

        Parameters:
        exception -
        Returns:
        list of properties in the correct order for an exception bean
      • collectExceptionBeanMembers

        public Collection<A> collectExceptionBeanMembers​(C exception,
                                                         boolean decapitalize)
        Computes and sorts exception bean members for a given exception as per the 3.7 section of the spec. It takes all getter properties in the exception and its superclasses(except getCause, getLocalizedMessage, getStackTrace, getClass). The returned collection is sorted based on the property names.

        But if the exception has @XmlType its values are honored. Only the propOrder properties are considered. The returned collection is sorted as per the given propOrder.

        Parameters:
        exception -
        decapitalize - if true, all the property names are decapitalized
        Returns:
        list of properties in the correct order for an exception bean