package org.hamcrest.generator;
import java.io.Closeable;
import java.io.Flushable;
import java.io.IOException;
Writes syntactic sugar code for factories.
Implementations of this could include vanilla factory methods for
Hamcrest matchers, wrapped factories for other libraries or factories
in other languages (jython, jruby, groovy, etc).
Usage:
writer.writeHeader(...);
writer.writeMethod(...);
writer.writeMethod(...);
writer.writeMethod(...);
...
writer.writeFooter(...);
writer.close();
Author: Joe Walnes See Also:
/**
* Writes syntactic sugar code for factories.
* <p>Implementations of this could include vanilla factory methods for
* Hamcrest matchers, wrapped factories for other libraries or factories
* in other languages (jython, jruby, groovy, etc).
* <h3>Usage:</h3>
* <pre>
* writer.writeHeader(...);
* <p/>
* writer.writeMethod(...);
* writer.writeMethod(...);
* writer.writeMethod(...);
* ...
* writer.writeFooter(...);
* writer.close();
* </pre>
*
* @author Joe Walnes
* @see FactoryMethod
* @see SugarGenerator
* @see HamcrestFactoryWriter
*/
public interface FactoryWriter extends Closeable, Flushable {
Write the code header.
/**
* Write the code header.
*/
void writeHeader() throws IOException;
Writes code that delegates to a method.
Params: - generatedMethodName –
- factoryMethodToDelegateTo –
/**
* Writes code that delegates to a method.
*
* @param generatedMethodName
* @param factoryMethodToDelegateTo
*/
void writeMethod(String generatedMethodName, FactoryMethod factoryMethodToDelegateTo) throws IOException;
Write any necessary code to finish the output.
/**
* Write any necessary code to finish the output.
*/
void writeFooter() throws IOException;
}