com.tibco.n2.service.adapter.dynamic

## Class DynamicAdapterHandler

- java.lang.Object
- - com.tibco.n2.service.adapter.dynamic.AbstractAdapterHandler
  - - com.tibco.n2.service.adapter.dynamic.DynamicAdapterHandler

- All Implemented Interfaces:
    java.lang.reflect.InvocationHandler

      public class DynamicAdapterHandler
      extends AbstractAdapterHandler

  TODO Give a useful description of the type.
  Since:
    TODO

- - ### Field Summary

    - ### Fields inherited from class com.tibco.n2.service.adapter.dynamic.AbstractAdapterHandler

      `handler, isBindingMethod, serviceAdapter, subjectService`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DynamicAdapterHandler(Processor serviceAdapter, java.lang.Object subjectService)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `buildWrapperObject(java.lang.Object axisObject, java.lang.reflect.Method method, java.lang.Object[] args)` Wraps and builds the parameter wrapper object
    `protected java.lang.String` | `getMsgInBinding(java.lang.reflect.Method method)` Retrieves the message in binding method specified in the method annotation
    `protected java.lang.String` | `getMsgOutBinding(java.lang.reflect.Method method)` Retrieves the message out binding method specified in the method annotation
    `protected java.lang.Object` | `getParameterWrappedObject(java.lang.Object wrapper, java.lang.String wrappedMethod)` Gets the parameter wrapped object in which all the parameters need to be set
    `protected void` | `handleArrayTypeParameters(java.lang.Object axisObject, java.lang.String param, java.lang.Object arg)` Axis handles arrays by calling the set**Array method with a single input parameter.
    `protected void` | `handleListTypeParameters(java.lang.Object axisObject, java.lang.String param, java.lang.Object arg)` The way axis handles list type of parameters is a little different It does not have setter methods to set the list type of parameters, instead it sets the list parameter in the following way get().addAll()
    `protected java.lang.Object[]` | `handleMessageIn(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)` Adapts the method parameter types of the client interface to axis specific document wrapped or rpc wrapper object
    `protected java.lang.Object` | `handleMessageOut(java.lang.Object axisObject, java.lang.reflect.Method method)` Adapts the method return types to the client interface from axis specific wrapper object
    `protected java.lang.Object` | `handleServiceInvocation(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)` TODO Describe this method
    `protected java.lang.Object` | `hookAfterInvocation(java.lang.Object object, java.lang.reflect.Method method)`
    `protected boolean` | `isAdaptArgumentType(java.lang.reflect.Method method, java.lang.Object[] args)` TODO Describe this method
    `protected boolean` | `isAdaptReturnType(java.lang.reflect.Method method, java.lang.Object[] args)` TODO Describe this method
    `protected boolean` | `isArrayType(java.lang.String param)` Checks if the parameter is prefixed with .This indicates that the parameter that needs to be set is of List type.Axis sets the list type of objects into a wrapper object using a specific notation setArray**
    `protected boolean` | `isListType(java.lang.String param)` Checks if the parameter is prefixed with .This indicates that the parameter that needs to be set is of List type.Axis sets the list type of objects into a wrapper object using a specific notation get().addAll()
    `protected boolean` | `isMessageInWrapped(java.lang.reflect.Method method)` Check if the message in of the web service operation is wrapped in axis specific object
    `protected boolean` | `isMessageOutVoid(java.lang.reflect.Method method)` Check if the message out of the web service operation is defined as void (meaning an IN_ONLY MEP)
    `protected boolean` | `isMessageOutWrapped(java.lang.reflect.Method method)` Check if the message out of the web service operation is wrapped in axis specific object

    - ### Methods inherited from class com.tibco.n2.service.adapter.dynamic.AbstractAdapterHandler

      `adaptArguments, adaptReturnType, considerMethodAnnotations, getAdaptedMethod, getAllFields, getAllInterfaces, getAuditAction, getComponentType, getDeclaredMatchingMethod, getDeclaredMatchingMethod, getDeclaredMatchingMethod, getFieldValue, getInterface, getIterator, getMatchingMethod, getMatchingMethod, getReturnParameterizedType, getterMethod, handleArray, handleCollection, hookBeforeInvocation, invoke, invokeMethod, invokeMethod, invokeMethodOnServiceAdapter, invokeMethodOnSubjectService, isAnnotated, isArray, isCollection, isCompatibleType, isDeclared, isHandleByAdapter, isProxy, isSimilar, loadClass, printFields, printFields, printInterfaceNames, printMethodInfo, printMethods, printParameterizedTypeInfo, proxyIt, proxyIt, setterMethod, unProxy`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DynamicAdapterHandler

          public DynamicAdapterHandler(Processor serviceAdapter,
                                       java.lang.Object subjectService)

  - ### Method Detail

    - #### handleServiceInvocation

          protected java.lang.Object handleServiceInvocation(java.lang.Object proxy,
                                                             java.lang.reflect.Method method,
                                                             java.lang.Object[] args)
                                                      throws java.lang.Throwable

      Description copied from class: `AbstractAdapterHandler`
      TODO Describe this method
      Specified by:
        `handleServiceInvocation` in class `AbstractAdapterHandler`
      Returns:
      Throws:
        `java.lang.Throwable`

    - #### handleMessageOut

          protected java.lang.Object handleMessageOut(java.lang.Object axisObject,
                                                      java.lang.reflect.Method method)
                                               throws java.lang.Throwable

      Adapts the method return types to the client interface from axis specific wrapper object
      Parameters:
        `axisObject` -
        `method` -
      Returns:
      Throws:
        `java.lang.Throwable`

    - #### handleMessageIn

          protected java.lang.Object[] handleMessageIn(java.lang.Object proxy,
                                                       java.lang.reflect.Method method,
                                                       java.lang.Object[] args)
                                                throws java.lang.Throwable

      Adapts the method parameter types of the client interface to axis specific document wrapped or rpc wrapper object
      Parameters:
        `proxy` -
        `method` -
        `args` -
      Returns:
      Throws:
        `java.lang.Throwable`

    - #### hookAfterInvocation

          protected java.lang.Object hookAfterInvocation(java.lang.Object object,
                                                         java.lang.reflect.Method method)
                                                  throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### isAdaptArgumentType

          protected boolean isAdaptArgumentType(java.lang.reflect.Method method,
                                                java.lang.Object[] args)

      Description copied from class: `AbstractAdapterHandler`
      TODO Describe this method
      Specified by:
        `isAdaptArgumentType` in class `AbstractAdapterHandler`
      Returns:

    - #### isAdaptReturnType

          protected boolean isAdaptReturnType(java.lang.reflect.Method method,
                                              java.lang.Object[] args)

      Description copied from class: `AbstractAdapterHandler`
      TODO Describe this method
      Specified by:
        `isAdaptReturnType` in class `AbstractAdapterHandler`
      Returns:

    - #### getMsgOutBinding

          protected java.lang.String getMsgOutBinding(java.lang.reflect.Method method)

      Retrieves the message out binding method specified in the method annotation
      Parameters:
        `method` -
      Returns:

    - #### getMsgInBinding

          protected java.lang.String getMsgInBinding(java.lang.reflect.Method method)

      Retrieves the message in binding method specified in the method annotation
      Parameters:
        `method` -
      Returns:

    - #### isMessageInWrapped

          protected boolean isMessageInWrapped(java.lang.reflect.Method method)

      Check if the message in of the web service operation is wrapped in axis specific object
      Parameters:
        `method` -
      Returns:

    - #### isMessageOutWrapped

          protected boolean isMessageOutWrapped(java.lang.reflect.Method method)

      Check if the message out of the web service operation is wrapped in axis specific object
      Parameters:
        `method` -
      Returns:

    - #### isMessageOutVoid

          protected boolean isMessageOutVoid(java.lang.reflect.Method method)

      Check if the message out of the web service operation is defined as void (meaning an IN_ONLY MEP)
      Parameters:
        `method` -
      Returns:

    - #### getParameterWrappedObject

          protected java.lang.Object getParameterWrappedObject(java.lang.Object wrapper,
                                                               java.lang.String wrappedMethod)

      Gets the parameter wrapped object in which all the parameters need to be set
      Parameters:
        `wrapper` -
        `wrappedMethod` -
      Returns:

    - #### buildWrapperObject

          protected void buildWrapperObject(java.lang.Object axisObject,
                                            java.lang.reflect.Method method,
                                            java.lang.Object[] args)
                                     throws java.lang.Throwable

      Wraps and builds the parameter wrapper object
      Parameters:
        `axisObject` -
        `method` -
        `args` -
      Throws:
        `java.lang.Throwable`

    - #### isListType

          protected boolean isListType(java.lang.String param)

      Checks if the parameter is prefixed with .This indicates that the parameter that needs to be set is of List type.Axis sets the list type of objects into a wrapper object using a specific notation get().addAll()
      Parameters:
        `param` -
      Returns:

    - #### isArrayType

          protected boolean isArrayType(java.lang.String param)

      Checks if the parameter is prefixed with .This indicates that the parameter that needs to be set is of List type.Axis sets the list type of objects into a wrapper object using a specific notation setArray**
      Parameters:
        `param` -
      Returns:

    - #### handleListTypeParameters

          protected void handleListTypeParameters(java.lang.Object axisObject,
                                                  java.lang.String param,
                                                  java.lang.Object arg)
                                           throws AdapterHandlerException

      The way axis handles list type of parameters is a little different It does not have setter methods to set the list type of parameters, instead it sets the list parameter in the following way get().addAll()
      Parameters:
        `axisObject` -
        `param` -
        `arg` -
      Throws:
        `java.lang.Throwable`
        `AdapterHandlerException`

    - #### handleArrayTypeParameters

          protected void handleArrayTypeParameters(java.lang.Object axisObject,
                                                   java.lang.String param,
                                                   java.lang.Object arg)
                                            throws AdapterHandlerException

      Axis handles arrays by calling the set**Array method with a single input parameter.
      Parameters:
        `axisObject` -
        `param` -
        `arg` -
      Throws:
        `AdapterHandlerException`

Copyright © 2018 TIBCO Software Inc. All Rights Reserved.