package io.craft.atom.rpc.spi; import io.craft.atom.rpc.api.RpcParameter; /** * RPC api object, used by {@link RpcRegistry} to encapsulate exported remote API. * * @author mindwind * @version 1.0, Oct 11, 2014 */ public interface RpcApi { /** * @return rpc api key for unique mapping. */ String getKey(); /** * @return rpc api name for human read. */ String getName(); /** * @return rpc api id for distinguish different implementor. */ String getId(); /** * @return rpc api interface. */ Class<?> getInterface(); /** * @return rpc api method name. */ String getMethodName(); /** * @return rpc api method parameter types. */ Class<?>[] getMethodParameterTypes(); /** * @return implementor object of rpc interface */ Object getRpcObject(); /** * @return rpc behavioral parameter */ RpcParameter getRpcParameter(); }