Class ProvidedServiceFeature

java.lang.Object
jadex.providedservice.impl.service.ProvidedServiceFeature
All Implemented Interfaces:
jadex.execution.impl.ILifecycle, IProvidedServiceFeature

public abstract class ProvidedServiceFeature extends Object implements jadex.execution.impl.ILifecycle, IProvidedServiceFeature
  • Field Details

  • Constructor Details

    • ProvidedServiceFeature

      protected ProvidedServiceFeature(jadex.core.impl.Component self)
  • Method Details

    • loadModel

      public ProvidedServiceModel loadModel()
    • onStart

      public jadex.future.IFuture<Void> onStart()
      Specified by:
      onStart in interface jadex.execution.impl.ILifecycle
    • onEnd

      public jadex.future.IFuture<Void> onEnd()
      Called when the feature is shutdowned.
      Specified by:
      onEnd in interface jadex.execution.impl.ILifecycle
    • shutdownServices

      protected jadex.future.IFuture<Void> shutdownServices(Iterator<IInternalService> services)
      Shutdown the services one by one.
    • removeService

      protected void removeService(IInternalService service)
      Remove a service.
      Parameters:
      service - The service object.
      info - The service info.
    • serviceShutdowned

      public jadex.future.IFuture<Void> serviceShutdowned(IInternalService service)
      Called after a service has been shutdowned. todo!!!
    • createServiceImplementation

      public jadex.future.IFuture<Object> createServiceImplementation(ProvidedServiceInfo info, jadex.common.IValueFetcher fetcher)
      Create a service implementation from description.
    • addService

      protected void addService(IInternalService service, ProvidedServiceInfo info)
      Add a service.
      Parameters:
      service - The service object.
      info - The service info.
    • getAllServices

      protected Collection<IInternalService> getAllServices()
      Get all services in a single collection.
    • initServices

      protected jadex.future.IFuture<Void> initServices(Iterator<IInternalService> services)
      Init the services one by one.
    • initService

      protected jadex.future.IFuture<Void> initService(IInternalService is)
      Init a service, i.e. set the component (internal access) and call startService.
    • serviceStarted

      public jadex.future.IFuture<Void> serviceStarted(IInternalService service)
      Called after a service has been started.
    • getProvidedServices

      public <T> T[] getProvidedServices(Class<T> clazz)
      Get provided (declared) service.
      Specified by:
      getProvidedServices in interface IProvidedServiceFeature
      Parameters:
      clazz - The interface.
      Returns:
      The service.
    • getProvidedService

      public IService getProvidedService(String name)
      Get provided (declared) service.
      Specified by:
      getProvidedService in interface IProvidedServiceFeature
      Parameters:
      name - The service name.
      Returns:
      The service.
    • getProvidedService

      public Object getProvidedService(IServiceIdentifier sid)
      Get the provided service implementation object by id.
      Specified by:
      getProvidedService in interface IProvidedServiceFeature
      Parameters:
      name - The service identifier.
      Returns:
      The service.
    • getProvidedServiceRawImpl

      public Object getProvidedServiceRawImpl(String name)
      Get the provided service implementation object by name.
      Specified by:
      getProvidedServiceRawImpl in interface IProvidedServiceFeature
      Parameters:
      name - The service name.
      Returns:
      The service.
    • getProvidedServiceRawImpl

      public <T> T getProvidedServiceRawImpl(Class<T> clazz)
      Get the raw implementation of the provided service.
      Specified by:
      getProvidedServiceRawImpl in interface IProvidedServiceFeature
      Parameters:
      clazz - The class.
      Returns:
      The raw object.
    • getProvidedService

      public <T> T getProvidedService(Class<T> clazz)
      Get provided (declared) service.
      Specified by:
      getProvidedService in interface IProvidedServiceFeature
      Parameters:
      clazz - The interface.
      Returns:
      The service.
    • getProvidedServiceRawImpl

      public Object getProvidedServiceRawImpl(IServiceIdentifier sid)
      Get the provided service implementation object by id.
      Specified by:
      getProvidedServiceRawImpl in interface IProvidedServiceFeature
      Parameters:
      name - The service identifier.
      Returns:
      The service.
    • getProvidedServiceInfo

      protected ProvidedServiceInfo getProvidedServiceInfo(IServiceIdentifier sid)
      Get the provided service info for a service.
      Parameters:
      sid - The service identifier.
      Returns:
      The provided service info.
    • getComponent

      public jadex.core.impl.Component getComponent()
    • addMethodInvocationListener

      public void addMethodInvocationListener(IServiceIdentifier sid, jadex.common.MethodInfo mi, IMethodInvocationListener listener)
      Add a method invocation handler.
      Specified by:
      addMethodInvocationListener in interface IProvidedServiceFeature
      Parameters:
      sid - The service identifier.
      mi - The method info.
      listener - The method listener.
    • removeMethodInvocationListener

      public void removeMethodInvocationListener(IServiceIdentifier sid, jadex.common.MethodInfo mi, IMethodInvocationListener listener)
      Remove a method invocation handler.
      Specified by:
      removeMethodInvocationListener in interface IProvidedServiceFeature
      Parameters:
      sid - The service identifier.
      mi - The method info.
      listener - The method listener.
    • notifyMethodListeners

      public void notifyMethodListeners(IServiceIdentifier sid, boolean start, Object proxy, Method method, Object[] args, Object callid, ServiceInvocationContext context)
      Notify listeners that a service method has been called.
    • hasMethodListeners

      public boolean hasMethodListeners(IServiceIdentifier sid, jadex.common.MethodInfo mi)
      Test if service and method has listeners.
    • addPojoServiceProxy

      public static void addPojoServiceProxy(Object pojo, IService proxy)
      Add a service proxy.
      Parameters:
      pojo - The pojo.
      proxy - The proxy.
    • removePojoServiceProxy

      public static void removePojoServiceProxy(IServiceIdentifier sid)
      Remove a pojo - proxy pair.
      Parameters:
      sid - The service identifier.
    • getPojoServiceProxy

      public static IService getPojoServiceProxy(Object pojo)
      Get the proxy of a pojo service.
      Parameters:
      pojo - The pojo service.
      Returns:
      The proxy of the service.
    • isProvidedServiceProxy

      public static boolean isProvidedServiceProxy(Object service)
      Test if a service is a provided service proxy.
      Parameters:
      service - The service.
      Returns:
      True, if is provided service proxy.
    • createProvidedServiceProxy

      public IInternalService createProvidedServiceProxy(jadex.core.impl.Component ia, Object service, String name, Class<?> type, IServiceInvocationInterceptor[] ics, ProvidedServiceInfo info)
      Static method for creating a standard service proxy for a provided service.
    • addProvidedInterceptors

      public void addProvidedInterceptors(AbstractServiceInvocationHandler handler, Object service, IServiceInvocationInterceptor[] ics, jadex.core.impl.Component ia, String proxytype, IServiceIdentifier sid)
      Add the standard and custom interceptors.
    • createProvidedHandler

      protected static ServiceInvocationHandler createProvidedHandler(String name, jadex.core.impl.Component ia, Class<?> type, Object service, ProvidedServiceInfo info)
      Create a basic invocation handler for a provided service.