public class BasicServiceInvocationHandler extends java.lang.Object implements java.lang.reflect.InvocationHandler, ISwitchCall
| Modifier and Type | Field and Description | 
|---|---|
| protected Cause | causeThe root cause that was given at creation time. | 
| protected IInternalAccess | compThe internal access. | 
| protected java.util.List<IServiceInvocationInterceptor> | interceptorsThe list of interceptors. | 
| protected java.util.logging.Logger | loggerThe logger for errors/warnings. | 
| protected static java.util.Map<java.lang.Object,IService> | pojoproxiesThe pojo service map (pojo -> proxy). | 
| static java.lang.String | PROXYTYPE_DECOUPLEDThe (default) decoupled proxy type (decouples from caller thread to component thread). | 
| static java.lang.String | PROXYTYPE_DIRECTThe direct proxy type (supports custom interceptors, but uses caller thread). | 
| static java.lang.String | PROXYTYPE_RAWThe raw proxy type (i.e. | 
| protected boolean | requiredThe flag if the proxy is required (provided otherwise). | 
| protected java.lang.Object | serviceThe service. | 
| protected IServiceIdentifier | sidThe service identifier. | 
| protected boolean | switchcallThe flag if a switchcall should be done. | 
| Constructor and Description | 
|---|
| BasicServiceInvocationHandler(IInternalAccess comp,
                             IServiceIdentifier sid,
                             java.util.logging.Logger logger,
                             boolean realtime,
                             Cause cause,
                             boolean required)Create a new invocation handler. | 
| BasicServiceInvocationHandler(IInternalAccess comp,
                             IService service,
                             java.util.logging.Logger logger,
                             Cause cause,
                             boolean required)Create a new invocation handler. | 
| BasicServiceInvocationHandler(IInternalAccess comp,
                             ServiceInfo service,
                             java.util.logging.Logger logger,
                             Cause cause)Create a new invocation handler. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addFirstServiceInterceptor(IServiceInvocationInterceptor interceptor)Add an interceptor. | 
| static void | addPojoServiceProxy(java.lang.Object pojo,
                   IService proxy)Add a service proxy. | 
| protected static void | addProvidedInterceptors(BasicServiceInvocationHandler handler,
                       java.lang.Object service,
                       IServiceInvocationInterceptor[] ics,
                       IInternalAccess ia,
                       java.lang.String proxytype,
                       boolean monitoring,
                       IServiceIdentifier sid)Add the standard and custom interceptors. | 
| void | addServiceInterceptor(IServiceInvocationInterceptor interceptor)Add an interceptor. | 
| void | addServiceInterceptor(IServiceInvocationInterceptor interceptor,
                     int pos)Add an interceptor. | 
| static IInternalService | createDelegationProvidedServiceProxy(IInternalAccess ia,
                                    IServiceIdentifier sid,
                                    RequiredServiceInfo info,
                                    RequiredServiceBinding binding,
                                    java.lang.ClassLoader classloader,
                                    boolean realtime)Static method for creating a delegation service proxy for 
  provided service that is not offered by the component itself. | 
| protected static BasicServiceInvocationHandler | createProvidedHandler(java.lang.String name,
                     IInternalAccess ia,
                     java.lang.Class<?> type,
                     java.lang.Object service,
                     ProvidedServiceInfo info,
                     java.lang.String scope)Create a basic invocation handler. | 
| static IInternalService | createProvidedServiceProxy(IInternalAccess ia,
                          java.lang.Object service,
                          java.lang.String name,
                          java.lang.Class<?> type,
                          java.lang.String proxytype,
                          IServiceInvocationInterceptor[] ics,
                          boolean monitoring,
                          ProvidedServiceInfo info,
                          java.lang.String scope)Static method for creating a standard service proxy for a provided service. | 
| static IService | createRequiredServiceProxy(IInternalAccess ia,
                          IService service,
                          IRequiredServiceFetcher fetcher,
                          RequiredServiceInfo info,
                          RequiredServiceBinding binding,
                          boolean realtime)Static method for creating a standard service proxy for a required service. | 
| boolean | equals(java.lang.Object obj)Test if two objects are equal. | 
| java.lang.Object | getDomainService()Get the domain service. | 
| IServiceInvocationInterceptor[] | getInterceptors()Get interceptors. | 
| static IService | getPojoServiceProxy(java.lang.Object pojo)Get the proxy of a pojo service. | 
| java.lang.Object | getService()Get the service. | 
| IServiceIdentifier | getServiceIdentifier()Get the sid. | 
| int | hashCode()Return the hash code. | 
| java.lang.Object | invoke(java.lang.Object proxy,
      java.lang.reflect.Method method,
      java.lang.Object[] args)A proxy method has been invoked. | 
| static boolean | isProvidedServiceProxy(java.lang.Object service)Test if a service is a provided service proxy. | 
| boolean | isRequired()Check if the handler is for a required service proxy. | 
| static boolean | isRequiredServiceProxy(java.lang.Object service)Test if a service is a required service proxy. | 
| boolean | isSwitchCall()Check if a switch call should be done. | 
| static void | removePojoServiceProxy(IServiceIdentifier sid)Remove a pojo - proxy pair. | 
| void | removeServiceInterceptor(IServiceInvocationInterceptor interceptor)Remove an interceptor. | 
| java.lang.String | toString()Get a string representation. | 
public static final java.lang.String PROXYTYPE_RAW
public static final java.lang.String PROXYTYPE_DIRECT
public static final java.lang.String PROXYTYPE_DECOUPLED
protected IInternalAccess comp
protected IServiceIdentifier sid
protected java.lang.Object service
protected java.util.logging.Logger logger
protected java.util.List<IServiceInvocationInterceptor> interceptors
protected Cause cause
protected boolean required
protected boolean switchcall
protected static java.util.Map<java.lang.Object,IService> pojoproxies
public BasicServiceInvocationHandler(IInternalAccess comp, IServiceIdentifier sid, java.util.logging.Logger logger, boolean realtime, Cause cause, boolean required)
public BasicServiceInvocationHandler(IInternalAccess comp, IService service, java.util.logging.Logger logger, Cause cause, boolean required)
public BasicServiceInvocationHandler(IInternalAccess comp, ServiceInfo service, java.util.logging.Logger logger, Cause cause)
public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
                        throws java.lang.Throwable
invoke in interface java.lang.reflect.InvocationHandlerjava.lang.Throwablepublic IServiceIdentifier getServiceIdentifier()
public java.lang.Object getService()
public java.lang.Object getDomainService()
public void addFirstServiceInterceptor(IServiceInvocationInterceptor interceptor)
public void addServiceInterceptor(IServiceInvocationInterceptor interceptor, int pos)
public void addServiceInterceptor(IServiceInvocationInterceptor interceptor)
public void removeServiceInterceptor(IServiceInvocationInterceptor interceptor)
public IServiceInvocationInterceptor[] getInterceptors()
public int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic static IInternalService createProvidedServiceProxy(IInternalAccess ia, java.lang.Object service, java.lang.String name, java.lang.Class<?> type, java.lang.String proxytype, IServiceInvocationInterceptor[] ics, boolean monitoring, ProvidedServiceInfo info, java.lang.String scope)
protected static BasicServiceInvocationHandler createProvidedHandler(java.lang.String name, IInternalAccess ia, java.lang.Class<?> type, java.lang.Object service, ProvidedServiceInfo info, java.lang.String scope)
protected static void addProvidedInterceptors(BasicServiceInvocationHandler handler, java.lang.Object service, IServiceInvocationInterceptor[] ics, IInternalAccess ia, java.lang.String proxytype, boolean monitoring, IServiceIdentifier sid)
public static IInternalService createDelegationProvidedServiceProxy(IInternalAccess ia, IServiceIdentifier sid, RequiredServiceInfo info, RequiredServiceBinding binding, java.lang.ClassLoader classloader, boolean realtime)
public static IService createRequiredServiceProxy(IInternalAccess ia, IService service, IRequiredServiceFetcher fetcher, RequiredServiceInfo info, RequiredServiceBinding binding, boolean realtime)
public static void addPojoServiceProxy(java.lang.Object pojo,
                                       IService proxy)
pojo - The pojo.proxy - The proxy.public static void removePojoServiceProxy(IServiceIdentifier sid)
sid - The service identifier.public static IService getPojoServiceProxy(java.lang.Object pojo)
pojo - The pojo service.public boolean isSwitchCall()
isSwitchCall in interface ISwitchCallpublic boolean isRequired()
public static boolean isRequiredServiceProxy(java.lang.Object service)
service - The service.public static boolean isProvidedServiceProxy(java.lang.Object service)
service - The service.