Package jadex.bridge.service.component
Class ProvidedServicesComponentFeature
- java.lang.Object
- 
- jadex.bridge.component.impl.AbstractComponentFeature
- 
- jadex.bridge.service.component.ProvidedServicesComponentFeature
 
 
- 
- All Implemented Interfaces:
- IComponentFeature,- IExternalProvidedServicesFeature,- IProvidedServicesFeature
 
 public class ProvidedServicesComponentFeature extends jadex.bridge.component.impl.AbstractComponentFeature implements IProvidedServicesFeature Feature for provided services.
- 
- 
Field SummaryFields Modifier and Type Field Description protected java.util.Map<IServiceIdentifier,ProvidedServiceInfo>serviceinfosThe map of provided service infos.protected java.util.Map<IServiceIdentifier,MethodListenerHandler>servicelistenersThe map of provided service infos.protected java.util.Map<java.lang.Class<?>,java.util.Collection<IInternalService>>servicesThe map of platform services.
 - 
Constructor SummaryConstructors Constructor Description ProvidedServicesComponentFeature(IInternalAccess component, ComponentCreationInfo cinfo)Factory method constructor for instance level.
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddInterceptor(IServiceInvocationInterceptor interceptor, java.lang.Object service, int pos)Add a service interceptor.voidaddMethodInvocationListener(IServiceIdentifier sid, MethodInfo mi, IMethodInvocationListener listener)Add a method invocation handler.protected voidaddService(IInternalService service, ProvidedServiceInfo info)Add a service.IFuture<java.lang.Void>addService(java.lang.String name, java.lang.Class<?> type, java.lang.Object service)Add a service to the platform.IFuture<java.lang.Void>addService(java.lang.String name, java.lang.Class<?> type, java.lang.Object service, PublishInfo pi, ServiceScope scope)Add a service to the platform.IFuture<java.lang.Void>addService(java.lang.String name, java.lang.Class<?> type, java.lang.Object service, java.lang.String proxytype)Add a service to the platform.IFuture<java.lang.Void>addService(java.lang.String name, java.lang.Class<?> type, java.lang.String proxytype, IServiceInvocationInterceptor[] ics, java.lang.Object service, ProvidedServiceInfo info, ServiceScope scope)Add a service to the component.IFuture<java.lang.Object>createServiceImplementation(ProvidedServiceInfo info, IValueFetcher fetcher)Create a service implementation from description.protected java.util.Collection<IInternalService>getAllServices()Get all services in a single collection.IServiceInvocationInterceptor[]getInterceptors(java.lang.Object service)Get the interceptors of a service.java.lang.ObjectgetProvidedService(IServiceIdentifier sid)Get the provided service implementation object by id.<T> TgetProvidedService(java.lang.Class<T> clazz)Get provided (declared) service.IServicegetProvidedService(java.lang.String name)Get provided (declared) service.protected ProvidedServiceInfogetProvidedServiceInfo(IServiceIdentifier sid)Get the provided service info for a service.java.lang.ObjectgetProvidedServiceRawImpl(IServiceIdentifier sid)Get the provided service implementation object by id.<T> TgetProvidedServiceRawImpl(java.lang.Class<T> clazz)Get the raw implementation of the provided service.java.lang.ObjectgetProvidedServiceRawImpl(java.lang.String name)Get the provided service implementation object by name.<T> T[]getProvidedServices(java.lang.Class<T> clazz)Get provided (declared) service.static IFuture<IPublishService>getPublishService(IInternalAccess instance, java.lang.String type, ServiceScope scope, java.util.Iterator<IPublishService> services)Get the publish service for a publish type (e.g.java.util.Map<java.lang.Class<?>,java.util.Collection<IInternalService>>getServices()Get the services.IFuture<java.lang.Class<?>>getServiceType(IServiceIdentifier sid)IFuture<java.util.Collection<java.lang.Class<?>>>getServiceTypes(IServiceIdentifier sid)booleanhasMethodListeners(IServiceIdentifier sid, MethodInfo mi)Test if service and method has listeners.booleanhasUserBody()Check if the feature potentially executed user code in body.IFuture<java.lang.Void>init()Initialize the feature.protected IFuture<java.lang.Void>initService(IInternalService is)Init a service, i.e.protected IFuture<java.lang.Void>initServices(java.util.Iterator<IInternalService> services)Init the services one by one.voidnotifyMethodListeners(IServiceIdentifier sid, boolean start, java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args, java.lang.Object callid, ServiceInvocationContext context)Notify listeners that a service method has been called.voidremoveInterceptor(IServiceInvocationInterceptor interceptor, java.lang.Object service)Remove a service interceptor.voidremoveMethodInvocationListener(IServiceIdentifier sid, MethodInfo mi, IMethodInvocationListener listener)Remove a method invocation handler.protected voidremoveService(IInternalService service)Remove a service.IFuture<java.lang.Void>removeService(IServiceIdentifier sid)Removes a service from the platform (shutdowns also the service).IFuture<java.lang.Void>serviceShutdowned(IInternalService service)Called after a service has been shutdowned.IFuture<java.lang.Void>serviceStarted(IInternalService service)Called after a service has been started.IFuture<java.lang.Void>setTags(IServiceIdentifier sid, java.lang.String... tags)Sets the tags of a service.IFuture<java.lang.Void>shutdown()Called when the feature is shutdowned.protected IFuture<java.lang.Void>shutdownServices(java.util.Iterator<IInternalService> services)Shutdown the services one by one.
 
- 
- 
- 
Field Detail- 
servicesprotected java.util.Map<java.lang.Class<?>,java.util.Collection<IInternalService>> services The map of platform services.
 - 
servicelistenersprotected java.util.Map<IServiceIdentifier,MethodListenerHandler> servicelisteners The map of provided service infos. (sid -> method listener)
 - 
serviceinfosprotected java.util.Map<IServiceIdentifier,ProvidedServiceInfo> serviceinfos The map of provided service infos. (sid -> provided service info)
 
- 
 - 
Constructor Detail- 
ProvidedServicesComponentFeaturepublic ProvidedServicesComponentFeature(IInternalAccess component, ComponentCreationInfo cinfo) Factory method constructor for instance level.
 
- 
 - 
Method Detail- 
initpublic IFuture<java.lang.Void> init() Initialize the feature.- Specified by:
- initin interface- IComponentFeature
- Overrides:
- initin class- jadex.bridge.component.impl.AbstractComponentFeature
 
 - 
hasUserBodypublic boolean hasUserBody() Check if the feature potentially executed user code in body. Allows blocking operations in user bodies by using separate steps for each feature. Non-user-body-features are directly executed for speed. If unsure just return true. ;-)- Specified by:
- hasUserBodyin interface- IComponentFeature
- Overrides:
- hasUserBodyin class- jadex.bridge.component.impl.AbstractComponentFeature
 
 - 
shutdownpublic IFuture<java.lang.Void> shutdown() Called when the feature is shutdowned.- Specified by:
- shutdownin interface- IComponentFeature
- Overrides:
- shutdownin class- jadex.bridge.component.impl.AbstractComponentFeature
 
 - 
addServiceprotected void addService(IInternalService service, ProvidedServiceInfo info) Add a service.- Parameters:
- service- The service object.
- info- The service info.
 
 - 
getProvidedServiceInfoprotected ProvidedServiceInfo getProvidedServiceInfo(IServiceIdentifier sid) Get the provided service info for a service.- Parameters:
- sid- The service identifier.
- Returns:
- The provided service info.
 
 - 
removeServiceprotected void removeService(IInternalService service) Remove a service.- Parameters:
- service- The service object.
- info- The service info.
 
 - 
createServiceImplementationpublic IFuture<java.lang.Object> createServiceImplementation(ProvidedServiceInfo info, IValueFetcher fetcher) Create a service implementation from description.
 - 
getAllServicesprotected java.util.Collection<IInternalService> getAllServices() Get all services in a single collection.
 - 
initServicesprotected IFuture<java.lang.Void> initServices(java.util.Iterator<IInternalService> services) Init the services one by one.
 - 
initServiceprotected IFuture<java.lang.Void> initService(IInternalService is) Init a service, i.e. set the component (internal access) and call startService.
 - 
serviceStartedpublic IFuture<java.lang.Void> serviceStarted(IInternalService service) Called after a service has been started.
 - 
serviceShutdownedpublic IFuture<java.lang.Void> serviceShutdowned(IInternalService service) Called after a service has been shutdowned.
 - 
getPublishServicepublic static IFuture<IPublishService> getPublishService(IInternalAccess instance, java.lang.String type, ServiceScope scope, java.util.Iterator<IPublishService> services) Get the publish service for a publish type (e.g. web service).- Parameters:
- type- The type.
- services- The iterator of publish services (can be null).
- Returns:
- The publish service.
 
 - 
shutdownServicesprotected IFuture<java.lang.Void> shutdownServices(java.util.Iterator<IInternalService> services) Shutdown the services one by one.
 - 
getProvidedServicepublic IService getProvidedService(java.lang.String name) Get provided (declared) service.- Specified by:
- getProvidedServicein interface- IProvidedServicesFeature
- Parameters:
- name- The service name.
- Returns:
- The service.
 
 - 
getProvidedServiceRawImplpublic <T> T getProvidedServiceRawImpl(java.lang.Class<T> clazz) Get the raw implementation of the provided service.- Specified by:
- getProvidedServiceRawImplin interface- IProvidedServicesFeature
- Parameters:
- clazz- The class.
- Returns:
- The raw object.
 
 - 
getProvidedServiceRawImplpublic java.lang.Object getProvidedServiceRawImpl(java.lang.String name) Get the provided service implementation object by name.- Specified by:
- getProvidedServiceRawImplin interface- IProvidedServicesFeature
- Parameters:
- name- The service name.
- Returns:
- The service.
 
 - 
getProvidedServicepublic java.lang.Object getProvidedService(IServiceIdentifier sid) Get the provided service implementation object by id.- Specified by:
- getProvidedServicein interface- IProvidedServicesFeature
- Parameters:
- name- The service identifier.
- Returns:
- The service.
 
 - 
getProvidedServiceRawImplpublic java.lang.Object getProvidedServiceRawImpl(IServiceIdentifier sid) Get the provided service implementation object by id.- Specified by:
- getProvidedServiceRawImplin interface- IProvidedServicesFeature
- Parameters:
- name- The service identifier.
- Returns:
- The service.
 
 - 
getProvidedServicespublic <T> T[] getProvidedServices(java.lang.Class<T> clazz) Get provided (declared) service.- Specified by:
- getProvidedServicesin interface- IProvidedServicesFeature
- Parameters:
- clazz- The interface.
- Returns:
- The service.
 
 - 
getProvidedServicepublic <T> T getProvidedService(java.lang.Class<T> clazz) Get provided (declared) service.- Specified by:
- getProvidedServicein interface- IProvidedServicesFeature
- Parameters:
- clazz- The interface.
- Returns:
- The service.
 
 - 
getServicespublic java.util.Map<java.lang.Class<?>,java.util.Collection<IInternalService>> getServices() Get the services.- Returns:
- The services.
 
 - 
addServicepublic IFuture<java.lang.Void> addService(java.lang.String name, java.lang.Class<?> type, java.lang.Object service) Add a service to the platform. If under the same name and type a service was contained, the old one is removed and shutdowned.- Specified by:
- addServicein interface- IExternalProvidedServicesFeature
- Parameters:
- type- The public service interface.
- service- The service.
- Returns:
- A future that is done when the service has completed starting.
 
 - 
addServicepublic IFuture<java.lang.Void> addService(java.lang.String name, java.lang.Class<?> type, java.lang.Object service, java.lang.String proxytype) Add a service to the platform. If under the same name and type a service was contained, the old one is removed and shutdowned.- Specified by:
- addServicein interface- IExternalProvidedServicesFeature
- Parameters:
- type- The public service interface.
- service- The service.
- type- The proxy type (@see{BasicServiceInvocationHandler}).
 
 - 
addServicepublic IFuture<java.lang.Void> addService(java.lang.String name, java.lang.Class<?> type, java.lang.Object service, PublishInfo pi, ServiceScope scope) Add a service to the platform. If under the same name and type a service was contained, the old one is removed and shutdowned.- Specified by:
- addServicein interface- IExternalProvidedServicesFeature
- Parameters:
- type- The public service interface.
- service- The service.
- scope- The service scope.
 
 - 
setTagspublic IFuture<java.lang.Void> setTags(IServiceIdentifier sid, java.lang.String... tags) Sets the tags of a service.- Specified by:
- setTagsin interface- IExternalProvidedServicesFeature
- Parameters:
- sid- The Service identifier.
- tags- The tags.
- Returns:
- New service identifier.
 
 - 
removeServicepublic IFuture<java.lang.Void> removeService(IServiceIdentifier sid) Removes a service from the platform (shutdowns also the service).- Specified by:
- removeServicein interface- IExternalProvidedServicesFeature
- Parameters:
- service- The service.
- Returns:
- A future that is done when the service has completed its shutdown.
 
 - 
getServiceTypespublic IFuture<java.util.Collection<java.lang.Class<?>>> getServiceTypes(IServiceIdentifier sid) 
 - 
getServiceTypepublic IFuture<java.lang.Class<?>> getServiceType(IServiceIdentifier sid) 
 - 
addServicepublic IFuture<java.lang.Void> addService(java.lang.String name, java.lang.Class<?> type, java.lang.String proxytype, IServiceInvocationInterceptor[] ics, java.lang.Object service, ProvidedServiceInfo info, ServiceScope scope) Add a service to the component.- Parameters:
- type- The service interface.
- service- The service.
- proxytype- The proxy type (@see{BasicServiceInvocationHandler}).
 
 - 
addMethodInvocationListenerpublic void addMethodInvocationListener(IServiceIdentifier sid, MethodInfo mi, IMethodInvocationListener listener) Add a method invocation handler.- Specified by:
- addMethodInvocationListenerin interface- IProvidedServicesFeature
- Parameters:
- sid- The service identifier.
- mi- The method info.
- listener- The method listener.
 
 - 
removeMethodInvocationListenerpublic void removeMethodInvocationListener(IServiceIdentifier sid, MethodInfo mi, IMethodInvocationListener listener) Remove a method invocation handler.- Specified by:
- removeMethodInvocationListenerin interface- IProvidedServicesFeature
- Parameters:
- sid- The service identifier.
- mi- The method info.
- listener- The method listener.
 
 - 
notifyMethodListenerspublic void notifyMethodListeners(IServiceIdentifier sid, boolean start, java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args, java.lang.Object callid, ServiceInvocationContext context) Notify listeners that a service method has been called.- Specified by:
- notifyMethodListenersin interface- IProvidedServicesFeature
 
 - 
hasMethodListenerspublic boolean hasMethodListeners(IServiceIdentifier sid, MethodInfo mi) Test if service and method has listeners.- Specified by:
- hasMethodListenersin interface- IProvidedServicesFeature
- Parameters:
- sid- The service identifier.
- mi- The method info.
 
 - 
addInterceptorpublic void addInterceptor(IServiceInvocationInterceptor interceptor, java.lang.Object service, int pos) Add a service interceptor.- Specified by:
- addInterceptorin interface- IProvidedServicesFeature
- Parameters:
- interceptor- The interceptor.
- service- The service.
- pos- The position (0=first, -1=last-1, i.e. one before method invocation).
 
 - 
removeInterceptorpublic void removeInterceptor(IServiceInvocationInterceptor interceptor, java.lang.Object service) Remove a service interceptor.- Specified by:
- removeInterceptorin interface- IProvidedServicesFeature
- Parameters:
- interceptor- The interceptor.
- service- The service.
 
 - 
getInterceptorspublic IServiceInvocationInterceptor[] getInterceptors(java.lang.Object service) Get the interceptors of a service.- Specified by:
- getInterceptorsin interface- IProvidedServicesFeature
- Parameters:
- service- The service.
- Returns:
- The interceptors.
 
 
- 
 
-