org.directwebremoting.extend.Module Maven / Gradle / Ivy
package org.directwebremoting.extend;
/**
* @author Mike Wilson [mikewse at g mail dot com]
*/
public interface Module
{
/**
* Returns the name uniquely identifying the module. This name is also used
* in JavaScript land.
* @return name string
*/
String getName();
/**
* Tells whether the module information as described by this interface may
* change over time, or may be cached.
* @return true if cacheable
*/
boolean isCacheable();
/**
* Returns all logical method declarations for the module.
* @return array of method declarations
*/
MethodDeclaration[] getMethods();
/**
* Returns a particular method as matched by the name and parameter types.
* @param methodName ...
* @param parameterTypes ...
* @return method declaration
* @throws NoSuchMethodException ...
* @throws SecurityException ...
*/
MethodDeclaration getMethod(String methodName, Class>... parameterTypes) throws NoSuchMethodException, SecurityException;
/**
* Invokes the code behind a logical method declaration, using the supplied
* parameters.
* @param method ...
* @param parameters ...
* @return the return value of the method
* @throws Exception ...
*/
Object executeMethod(MethodDeclaration method, Object[] parameters) throws Exception;
/**
* Returns a pretty-print friendly string describing the module.
* @return human-readable descriptive string
*/
String toString();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy