public class ChainGenerator
extends java.lang.Object
This class generates so-called event chains. A chain is an interface and an object implementing the interface. Internally the implementation is using a list of chained objects, which you can assume to implement the same interface.
Any event is passed to the first object in the list. The object may decide to resolve the event immediately and return. It may also call pass the event to the next object, take the returned value, possibly modify it and return the result. Finally, the chained object may decide to emit another event (which is passed along the same chain), and use the returned value.
Constructor and Description |
---|
ChainGenerator() |
Modifier and Type | Method and Description |
---|---|
void |
finish()
Validates the input data.
|
JavaSource[] |
generate(JavaSourceFactory pFactory)
Performs the actual work by generating classes using
the given
pFactory . |
JavaQName |
getChainInterface()
Returns the interface being generated for the chain objects.
|
JavaSource |
getControllerInterface()
Returns the controller interface.
|
JavaQName |
getImplementationClass()
Returns the chain implementation classes name.
|
JavaQName |
getProxyClass()
Returns the class being generated for the chain objects.
|
protected JavaSource[] |
initControllerInterface()
Initializes the controller interface.
|
static void |
main(java.lang.String[] args) |
void |
setChainInterface(JavaQName pInterface)
Sets the interface being generated for the chain objects.
|
void |
setChainInterfaceName(java.lang.String pInterfaceName)
Sets the interface name being generated for the chain objects.
|
void |
setControllerInterfaceName(java.lang.String pInterfaceName)
Sets the controller interface name.
|
void |
setImplementationClass(JavaQName pClassName)
Sets the chain implementation class.
|
void |
setImplementationClassName(java.lang.String pClassName)
Sets the name of the chain implementation class.
|
void |
setProxyClass(JavaQName pClassName)
Sets the class being generated for the chain objects.
|
void |
setProxyClassName(java.lang.String pClassName)
Sets the class name being generated for the chain objects.
|
public void setControllerInterfaceName(java.lang.String pInterfaceName) throws java.lang.ClassNotFoundException
Sets the controller interface name.
java.lang.ClassNotFoundException
public JavaSource getControllerInterface()
protected JavaSource[] initControllerInterface() throws java.lang.ClassNotFoundException, antlr.RecognitionException, antlr.TokenStreamException, java.io.IOException
Initializes the controller interface.
java.lang.ClassNotFoundException
java.io.IOException
antlr.TokenStreamException
antlr.RecognitionException
public void setChainInterfaceName(java.lang.String pInterfaceName)
Sets the interface name being generated for the chain objects.
public void setChainInterface(JavaQName pInterface)
Sets the interface being generated for the chain objects.
public JavaQName getChainInterface()
Returns the interface being generated for the chain objects.
public void setProxyClassName(java.lang.String pClassName)
Sets the class name being generated for the chain objects.
public void setProxyClass(JavaQName pClassName)
Sets the class being generated for the chain objects.
public JavaQName getProxyClass()
Returns the class being generated for the chain objects. Defaults
to getChainInterface() + "Impl"
.
public void setImplementationClassName(java.lang.String pClassName)
Sets the name of the chain implementation class.
public void setImplementationClass(JavaQName pClassName)
Sets the chain implementation class.
public JavaQName getImplementationClass()
Returns the chain implementation classes name. Defaults to
getControllerInterface() + "Impl"
.
public void finish()
public JavaSource[] generate(JavaSourceFactory pFactory) throws java.lang.Exception
pFactory
.java.lang.Exception
public static void main(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception