| Method from org.hibernate.tool.hbm2x.AbstractExporter Detail: |
protected void cleanUpContext() {
if(getProperties()!=null) {
iterator = getProperties().entrySet().iterator();
while ( iterator.hasNext() ) {
Map.Entry element = (Map.Entry) iterator.next();
Object value = transformValue(element.getValue());
String key = element.getKey().toString();
if(key.startsWith(ExporterSettings.PREFIX_KEY)) {
getTemplateHelper().removeFromContext(key.substring(ExporterSettings.PREFIX_KEY.length()), value);
}
getTemplateHelper().removeFromContext(key, value);
}
}
if(getOutputDirectory()!=null) getTemplateHelper().removeFromContext("outputdir", getOutputDirectory());
if(getTemplatePaths()!=null) getTemplateHelper().removeFromContext("template_path", getTemplatePaths());
getTemplateHelper().removeFromContext("exporter", this);
getTemplateHelper().removeFromContext("artifacts", collector);
if(getConfiguration()!=null) {
getTemplateHelper().removeFromContext("cfg", getConfiguration());
}
getTemplateHelper().removeFromContext("c2h", getCfg2HbmTool());
getTemplateHelper().removeFromContext("c2j", getCfg2JavaTool());
}
|
abstract protected void doStart()
|
public ArtifactCollector getArtifactCollector() {
return collector;
}
|
public Cfg2HbmTool getCfg2HbmTool() {
return c2h;
}
|
public Cfg2JavaTool getCfg2JavaTool() {
return c2j;
}
|
public Configuration getConfiguration() {
return configuration;
}
|
protected File getFileForClassName(File baseDir,
String className,
String extension) {
String filename = StringHelper.unqualify(className) + extension;
String packagename = StringHelper.qualifier(className);
return new File(getDirForPackage(baseDir, packagename), filename);
}
|
public String getName() {
return this.getClass().getName();
}
|
public File getOutputDirectory() {
return outputdir;
}
|
public Properties getProperties() {
return properties;
}
|
protected TemplateHelper getTemplateHelper() {
return vh;
}
|
public String[] getTemplatePaths() {
return templatePaths;
}
|
public void setArtifactCollector(ArtifactCollector collector) {
this.collector = collector;
}
|
public void setConfiguration(Configuration cfg) {
configuration = cfg;
}
|
public void setOutputDirectory(File outputdir) {
this.outputdir = outputdir;
}
|
public void setProperties(Properties properties) {
this.properties = properties;
}
|
protected void setTemplateHelper(TemplateHelper vh) {
this.vh = vh;
}
|
public void setTemplatePath(String[] templatePaths) {
this.templatePaths = templatePaths;
}
|
protected void setupContext() {
getTemplateHelper().setupContext();
getTemplateHelper().putInContext("exporter", this);
getTemplateHelper().putInContext("c2h", getCfg2HbmTool());
getTemplateHelper().putInContext("c2j", getCfg2JavaTool());
if(getOutputDirectory()!=null) getTemplateHelper().putInContext("outputdir", getOutputDirectory());
if(getTemplatePaths()!=null) getTemplateHelper().putInContext("template_path", getTemplatePaths());
if(getProperties()!=null) {
iterator = getProperties().entrySet().iterator();
while ( iterator.hasNext() ) {
Map.Entry element = (Map.Entry) iterator.next();
String key = element.getKey().toString();
Object value = transformValue(element.getValue());
getTemplateHelper().putInContext(key, value);
if(key.startsWith(ExporterSettings.PREFIX_KEY)) {
getTemplateHelper().putInContext(key.substring(ExporterSettings.PREFIX_KEY.length()), value);
if(key.endsWith(".toolclass")) {
try {
Class toolClass = ReflectHelper.classForName(value.toString(), this.getClass());
Object object = toolClass.newInstance();
getTemplateHelper().putInContext(key.substring(ExporterSettings.PREFIX_KEY.length(),key.length()-".toolclass".length()), object);
}
catch (Exception e) {
throw new ExporterException("Exception when instantiating tool " + element.getKey() + " with " + value,e);
}
}
}
}
}
getTemplateHelper().putInContext("artifacts", collector);
if(getConfiguration()!=null) {
getTemplateHelper().putInContext("cfg", getConfiguration());
}
}
Setup the context variables used by the exporter. Subclasses should call super.setupContext() to ensure all needed variables are in the context. |
protected void setupTemplates() {
if(log.isDebugEnabled()) {
log.debug(getClass().getName() + " outputdir:" + getOutputDirectory() + " path: " + toString(templatePaths) );
}
getTemplateHelper().init(getOutputDirectory(), templatePaths);
}
|
public void start() {
setTemplateHelper( new TemplateHelper() );
setupTemplates();
setupContext();
doStart();
cleanUpContext();
setTemplateHelper(null);
getArtifactCollector().formatFiles();
}
Builds template context and performs file generation
Subclasses mostly implement doStart() instead. |
static String toString(Object[] a) {
if (a == null)
return "null";
if (a.length == 0)
return "[]";
StringBuffer buf = new StringBuffer();
for (int i = 0; i < a.length; i++) {
if (i == 0)
buf.append('[");
else
buf.append(", ");
buf.append(String.valueOf(a[i]));
}
buf.append("]");
return buf.toString();
}
|