Package jadex.bridge.service.component
Class RequiredServicesFeatureAdapter
- java.lang.Object
-
- jadex.bridge.service.component.RequiredServicesFeatureAdapter
-
- All Implemented Interfaces:
IExternalComponentFeature
,IExternalRequiredServicesFeature
,IRequiredServicesFeature
public class RequiredServicesFeatureAdapter extends java.lang.Object implements IRequiredServicesFeature
Adapter for the required services feature.
-
-
Field Summary
Fields Modifier and Type Field Description protected IRequiredServicesFeature
delegate
The delegate.
-
Constructor Summary
Constructors Constructor Description RequiredServicesFeatureAdapter(IRequiredServicesFeature delegate)
Create a new adapter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> ISubscriptionIntermediateFuture<T>
addQuery(ServiceQuery<T> query)
Add a service query.<T> ISubscriptionIntermediateFuture<T>
addQuery(ServiceQuery<T> query, long timeout)
Add a service query.<T> ISubscriptionIntermediateFuture<T>
addQuery(java.lang.Class<T> type)
Add a query for a declared required service.<T> ISubscriptionIntermediateFuture<T>
addQuery(java.lang.String name)
Add a query for a declared required service.<T> T
getLocalService(ServiceQuery<T> query)
Search for matching services and provide first result.<T> T
getLocalService(java.lang.Class<T> type)
Resolve a required service of a given type.<T> T
getLocalService(java.lang.String name)
Resolve a declared required service of a given name.<T> T
getLocalService0(java.lang.Class<T> type)
Resolve a required service of a given type.<T> java.util.Collection<T>
getLocalServices(ServiceQuery<T> query)
Search for all matching services.<T> java.util.Collection<T>
getLocalServices(java.lang.Class<T> type)
Resolve a required services of a given type.<T> java.util.Collection<T>
getLocalServices(java.lang.String name)
Resolve a required services of a given name.<T> IFuture<T>
getService(java.lang.Class<T> type)
Resolve a required service of a given type.<T> IFuture<T>
getService(java.lang.String name)
Resolve a declared required service of a given name.IService
getServiceProxy(IServiceIdentifier sid, RequiredServiceInfo info)
Create the user-facing object from the received search or query result.ServiceQuery<?>
getServiceQuery(java.lang.String name)
Get a service query for a required service info (as defined in the agent under that name).<T> ITerminableIntermediateFuture<T>
getServices(java.lang.Class<T> type)
Resolve a required services of a given type.<T> ITerminableIntermediateFuture<T>
getServices(java.lang.String name)
Resolve a required services of a given name.java.lang.String
rename(java.lang.String name)
Rename if necessary.<T> IFuture<T>
searchService(ServiceQuery<T> query)
Search for matching services and provide first result.<T> IFuture<T>
searchService(ServiceQuery<T> query, long timeout)
Performs a sustained search for a service.<T> ITerminableIntermediateFuture<T>
searchServices(ServiceQuery<T> query)
Search for all matching services.
-
-
-
Field Detail
-
delegate
protected IRequiredServicesFeature delegate
The delegate.
-
-
Constructor Detail
-
RequiredServicesFeatureAdapter
public RequiredServicesFeatureAdapter(IRequiredServicesFeature delegate)
Create a new adapter.
-
-
Method Detail
-
getService
public <T> IFuture<T> getService(java.lang.String name)
Resolve a declared required service of a given name. Asynchronous method for locally as well as remotely available services.- Specified by:
getService
in interfaceIRequiredServicesFeature
- Parameters:
name
- The service name.- Returns:
- The service.
-
getLocalService0
public <T> T getLocalService0(java.lang.Class<T> type)
Resolve a required service of a given type. Synchronous method only for locally available services.- Specified by:
getLocalService0
in interfaceIRequiredServicesFeature
- Parameters:
type
- The service type.- Returns:
- The service.
-
getService
public <T> IFuture<T> getService(java.lang.Class<T> type)
Resolve a required service of a given type. Asynchronous method for locally as well as remotely available services.- Specified by:
getService
in interfaceIRequiredServicesFeature
- Parameters:
type
- The service type.- Returns:
- The service.
-
getServices
public <T> ITerminableIntermediateFuture<T> getServices(java.lang.String name)
Resolve a required services of a given name. Asynchronous method for locally as well as remotely available services.- Specified by:
getServices
in interfaceIRequiredServicesFeature
- Parameters:
name
- The services name.- Returns:
- Each service as an intermediate result and a collection of services as final result.
-
getServices
public <T> ITerminableIntermediateFuture<T> getServices(java.lang.Class<T> type)
Resolve a required services of a given type. Asynchronous method for locally as well as remotely available services.- Specified by:
getServices
in interfaceIRequiredServicesFeature
- Parameters:
type
- The services type.- Returns:
- Each service as an intermediate result and a collection of services as final result.
-
getLocalService
public <T> T getLocalService(java.lang.String name)
Resolve a declared required service of a given name. Synchronous method only for locally available services.- Specified by:
getLocalService
in interfaceIRequiredServicesFeature
- Parameters:
name
- The service name.- Returns:
- The service.
-
getLocalService
public <T> T getLocalService(java.lang.Class<T> type)
Resolve a required service of a given type. Synchronous method only for locally available services.- Specified by:
getLocalService
in interfaceIRequiredServicesFeature
- Parameters:
type
- The service type.- Returns:
- The service.
-
getLocalServices
public <T> java.util.Collection<T> getLocalServices(java.lang.String name)
Resolve a required services of a given name. Synchronous method only for locally available services.- Specified by:
getLocalServices
in interfaceIRequiredServicesFeature
- Parameters:
name
- The services name.- Returns:
- Each service as an intermediate result and a collection of services as final result.
-
getLocalServices
public <T> java.util.Collection<T> getLocalServices(java.lang.Class<T> type)
Resolve a required services of a given type. Synchronous method only for locally available services.- Specified by:
getLocalServices
in interfaceIRequiredServicesFeature
- Parameters:
type
- The services type.- Returns:
- Each service as an intermediate result and a collection of services as final result.
-
searchService
public <T> IFuture<T> searchService(ServiceQuery<T> query)
Search for matching services and provide first result.- Specified by:
searchService
in interfaceIExternalRequiredServicesFeature
- Parameters:
query
- The search query.- Returns:
- Future providing the corresponding service or ServiceNotFoundException when not found.
-
getLocalService
public <T> T getLocalService(ServiceQuery<T> query)
Search for matching services and provide first result. Synchronous method only for locally available services.- Specified by:
getLocalService
in interfaceIRequiredServicesFeature
- Parameters:
query
- The search query.- Returns:
- Future providing the corresponding service or ServiceNotFoundException when not found.
-
searchServices
public <T> ITerminableIntermediateFuture<T> searchServices(ServiceQuery<T> query)
Search for all matching services.- Specified by:
searchServices
in interfaceIExternalRequiredServicesFeature
- Parameters:
query
- The search query.- Returns:
- Future providing the corresponding services or ServiceNotFoundException when not found.
-
getLocalServices
public <T> java.util.Collection<T> getLocalServices(ServiceQuery<T> query)
Search for all matching services. Synchronous method only for locally available services.- Specified by:
getLocalServices
in interfaceIRequiredServicesFeature
- Parameters:
query
- The search query.- Returns:
- Future providing the corresponding services or ServiceNotFoundException when not found.
-
searchService
public <T> IFuture<T> searchService(ServiceQuery<T> query, long timeout)
Performs a sustained search for a service. Attempts to find a service for a maximum duration until timeout occurs.- Specified by:
searchService
in interfaceIRequiredServicesFeature
- Parameters:
query
- The search query.timeout
- Maximum time period to search.- Returns:
- Service matching the query, exception if service is not found.
-
addQuery
public <T> ISubscriptionIntermediateFuture<T> addQuery(java.lang.String name)
Add a query for a declared required service. Continuously searches for matching services.- Specified by:
addQuery
in interfaceIRequiredServicesFeature
- Parameters:
name
- The name of the required service declaration.- Returns:
- Future providing the corresponding services as intermediate results.
-
addQuery
public <T> ISubscriptionIntermediateFuture<T> addQuery(java.lang.Class<T> type)
Add a query for a declared required service. Continuously searches for matching services.- Specified by:
addQuery
in interfaceIRequiredServicesFeature
- Parameters:
type
- The type of the required service declaration.- Returns:
- Future providing the corresponding services as intermediate results.
-
addQuery
public <T> ISubscriptionIntermediateFuture<T> addQuery(ServiceQuery<T> query)
Add a service query. Continuously searches for matching services.- Specified by:
addQuery
in interfaceIExternalRequiredServicesFeature
- Parameters:
query
- The search query.- Returns:
- Future providing the corresponding service or ServiceNotFoundException when not found.
-
addQuery
public <T> ISubscriptionIntermediateFuture<T> addQuery(ServiceQuery<T> query, long timeout)
Add a service query. Continuously searches for matching services.- Specified by:
addQuery
in interfaceIRequiredServicesFeature
- Parameters:
query
- The search query.- Returns:
- Future providing the corresponding service or ServiceNotFoundException when not found.
-
getServiceProxy
public IService getServiceProxy(IServiceIdentifier sid, RequiredServiceInfo info)
Create the user-facing object from the received search or query result. Result may be service object, service identifier (local or remote), or event. User object is either event or service (with or without required proxy).- Specified by:
getServiceProxy
in interfaceIRequiredServicesFeature
-
getServiceQuery
public ServiceQuery<?> getServiceQuery(java.lang.String name)
Get a service query for a required service info (as defined in the agent under that name).- Specified by:
getServiceQuery
in interfaceIRequiredServicesFeature
- Parameters:
name
- The name.- Returns:
- The service query.
-
rename
public java.lang.String rename(java.lang.String name)
Rename if necessary.
-
-