![JAR search and dependency download from the Maven repository](/logo.png)
jadex.bridge.service.IService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jadex-platform-bridge Show documentation
Show all versions of jadex-platform-bridge Show documentation
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.
package jadex.bridge.service;
import java.util.Map;
import jadex.bridge.ClassInfo;
import jadex.bridge.service.annotation.FutureReturnType;
import jadex.bridge.service.annotation.Raw;
import jadex.bridge.service.annotation.Reference;
import jadex.commons.MethodInfo;
import jadex.commons.future.IFuture;
/**
* The interface for platform services.
*/
@Reference
public interface IService //extends INFMixedPropertyProvider //extends IRemotable INFPropertyProvider, INFMethodPropertyProvider,
{
//-------- constants --------
/** Empty service array. */
public static final IService[] EMPTY_SERVICES = new IService[0];
//-------- methods --------
// IMPORTANT: If name is changed, adapt also in BasicServiceInvocationHandler and in RemoteMethodInvocationHandler!
/**
* Get the service identifier.
* @return The service identifier.
*/
public IServiceIdentifier getServiceId();
/**
* Test if the service is valid.
* @return True, if service can be used.
*/
public IFuture isValid();
/**
* Get the map of properties (considered as constant).
* @return The service property map (if any).
*/
@Raw
public Map getPropertyMap();
/**
* todo: support also blackbox args (e.g. byte[]) as args could also use classes that are not available.
*
* Invoke a method reflectively.
* @param methodname The method name.
* @param argtypes The argument types (can be null if method exists only once).
* @param args The arguments.
* @param returntype The future return type if it is a specific future.
* @return The result.
*/
public IFuture
© 2015 - 2025 Weber Informatics LLC | Privacy Policy