package org.dresdenocl.tools.codegen.declarativ;
import org.dresdenocl.model.IModel;
import org.dresdenocl.tools.codegen.declarativ.impl.Ocl2DeclCode;
import org.dresdenocl.tools.codegen.declarativ.impl.Ocl2DeclSettings;
import org.dresdenocl.tools.codegen.exception.Ocl2CodeException;
/**
* <p>
* This class provides methods to create declarative code generators for code
* generation from loaded {@link IModel}s.
* </p>
*
* @author Bjoern Freitag
*/
public class Ocl2DeclCodeFactory {
private static Ocl2DeclCodeFactory myInstance;
/**
* <p>
* A private constructor to enforce the Singleton.
* </p>
*/
private Ocl2DeclCodeFactory() {
/* Remains empty. */
}
/**
* @return The only instance of {@link Ocl2DeclCodeFactory}.
*/
public static Ocl2DeclCodeFactory getInstance() {
if (myInstance == null) {
myInstance = new Ocl2DeclCodeFactory();
}
// no else.
return myInstance;
}
/**
* <p>
* Creates an {@link IOcl2DeclCode} code generator.
* </p>
*
* @return A code generator which generates ddl code for loaded OCL
* expressions.
* @throws Ocl2CodeException
* Thrown if the initialization of a new Java code generator fails.
*/
public IOcl2DeclCode createOcl2DeclCodeGenerator() throws Ocl2CodeException {
IOcl2DeclCode result;
result = new Ocl2DeclCode();
return result;
}
/**
* <p>
* Creates an {@link IOcl2DeclCode} code generator with given
* {@link IOcl22CodeSettings}.
* </p>
*
* @return A code generator which generates ddl
* @throws Ocl2CodeException
* Thrown if the initialization of a new Ocl2DeclCode code generator
* fails.
*/
public IOcl2DeclCode createOcl2DeclCodeGenerator(IOcl2DeclSettings settings)
throws Ocl2CodeException {
IOcl2DeclCode result;
result = new Ocl2DeclCode();
result.setSettings(settings);
return result;
}
/**
* <p>
* Creates {@link IOcl2DeclSettings} that can be used to configure a
* Declarative code generator.
* </p>
*
* @return {@link IOcl2DeclSettings} that can be used to configure a
* Declarative code generator.
*/
public IOcl2DeclSettings createOcl2DeclCodeSettings() {
IOcl2DeclSettings result;
result = new Ocl2DeclSettings();
return result;
}
}