All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.bridge.service.component.IExternalRequiredServicesFeature Maven / Gradle / Ivy

Go to download

Jadex bridge is a base package for kernels and platforms, i.e., it is used by both and provides commonly used interfaces and classes for active components and their management.

There is a newer version: 4.0.267
Show newest version
package jadex.bridge.service.component;

import jadex.bridge.component.IExternalComponentFeature;
import jadex.bridge.service.search.ServiceQuery;
import jadex.commons.future.IFuture;
import jadex.commons.future.ISubscriptionIntermediateFuture;
import jadex.commons.future.ITerminableIntermediateFuture;

/**
 *  External perspective of the required services feature.
 */
public interface IExternalRequiredServicesFeature extends IExternalComponentFeature
{
//	/**
//	 *  Resolve a declared required service of a given name.
//	 *  Asynchronous method for locally as well as remotely available services.
//	 *  @param name The service name.
//	 *  @return Future with the service or ServiceNotFoundException
//	 */
//	public  IFuture getService(String name);
//	
//	/**
//	 *  Resolve a declared required service of a given type.
//	 *  Asynchronous method for locally as well as remotely available services.
//	 *  @param type The service type.
//	 *  @return Future with the service or ServiceNotFoundException
//	 */
//	public  IFuture getService(Class type);
//	
//	/**
//	 *  Resolve a declared required services of a given name.
//	 *  Asynchronous method for locally as well as remotely available services.
//	 *  @param name The services name.
//	 *  @return Each service as an intermediate result or a collection of services as final result.
//	 */
//	public  ITerminableIntermediateFuture getServices(String name);
//	
//	/**
//	 *  Resolve a declared required services of a given type.
//	 *  Asynchronous method for locally as well as remotely available services.
//	 *  @param type The services type.
//	 *  @return Each service as an intermediate result or a collection of services as final result.
//	 */
//	public  ITerminableIntermediateFuture getServices(Class type);
	
	//-------- methods for searching --------
	
	/**
	 *  Search for matching services and provide first result.
	 *  @param query	The search query.
	 *  @return Future providing the corresponding service or ServiceNotFoundException when not found.
	 */
	public  IFuture searchService(ServiceQuery query);
	
	/**
	 *  Search for all matching services.
	 *  @param query	The search query.
	 *  @return Each service as an intermediate result or a collection of services as final result.
	 */
	public  ITerminableIntermediateFuture searchServices(ServiceQuery query);
	
	//-------- query methods --------
	
//	/**
//	 *  Add a query for a declared required service.
//	 *  Continuously searches for matching services.
//	 *  @param name The name of the required service declaration.
//	 *  @return Future providing the corresponding services as intermediate results.
//	 */
//	public  ISubscriptionIntermediateFuture addQuery(String name);
//	
//	/**
//	 *  Add a query for a declared required service.
//	 *  Continuously searches for matching services.
//	 *  @param type The type of the required service declaration.
//	 *  @return Future providing the corresponding services as intermediate results.
//	 */
//	public  ISubscriptionIntermediateFuture addQuery(Class type);
	
	/**
	 *  Add a service query.
	 *  Continuously searches for matching services.
	 *  Use query setEventMode to retrieve also removals.
	 *  @param query The search query.
	 *  @return Future providing the corresponding services as intermediate results.
	 */
	public  ISubscriptionIntermediateFuture addQuery(ServiceQuery query);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy