org.apache.tuscany.sca.implementation.osgi.runtime
Class OSGiRemotableInvoker

java.lang.Object
  extended by org.apache.tuscany.sca.implementation.osgi.runtime.OSGiTargetInvoker
      extended by org.apache.tuscany.sca.implementation.osgi.runtime.OSGiRemotableInvoker
All Implemented Interfaces:
DataExchangeSemantics, Invoker

public class OSGiRemotableInvoker
extends OSGiTargetInvoker
implements DataExchangeSemantics

An interceptor to enforce pass-by-value semantics for remotable interfaces


Field Summary
 
Fields inherited from class org.apache.tuscany.sca.implementation.osgi.runtime.OSGiTargetInvoker
target
 
Constructor Summary
OSGiRemotableInvoker(OSGiAnnotations osgiAnnotations, DataBindingExtensionPoint registry, Operation operation, OSGiImplementationProvider provider, RuntimeComponentService service)
           
 
Method Summary
 boolean allowsPassByReference()
          Indicate if the data can be passed in by reference as they won't be mutated.
 java.lang.Object[] copy(java.lang.Object[] args)
           
 java.lang.Object copy(java.lang.Object arg, DataType dataType, DataBinding argDataBinding)
           
 java.lang.Object invokeMethod(java.lang.Object targetObject, java.lang.reflect.Method m, Message msg)
           
 
Methods inherited from class org.apache.tuscany.sca.implementation.osgi.runtime.OSGiTargetInvoker
getInstance, invoke
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OSGiRemotableInvoker

public OSGiRemotableInvoker(OSGiAnnotations osgiAnnotations,
                            DataBindingExtensionPoint registry,
                            Operation operation,
                            OSGiImplementationProvider provider,
                            RuntimeComponentService service)
Parameters:
registry -
operation -
method -
component -
Method Detail

invokeMethod

public java.lang.Object invokeMethod(java.lang.Object targetObject,
                                     java.lang.reflect.Method m,
                                     Message msg)
                              throws java.lang.reflect.InvocationTargetException
Overrides:
invokeMethod in class OSGiTargetInvoker
Throws:
java.lang.reflect.InvocationTargetException

copy

public java.lang.Object[] copy(java.lang.Object[] args)

copy

public java.lang.Object copy(java.lang.Object arg,
                             DataType dataType,
                             DataBinding argDataBinding)

allowsPassByReference

public boolean allowsPassByReference()
Description copied from interface: DataExchangeSemantics
Indicate if the data can be passed in by reference as they won't be mutated.

Specified by:
allowsPassByReference in interface DataExchangeSemantics
Returns:
true if pass-by-reference is allowed
See Also:
org.apache.tuscany.sca.invocation.PassByValueAware#allowsPassByReference()