| Method from org.hibernate.tool.hbm2x.GenericExporter Detail: |
protected void doStart() {
if(filePattern==null) {
throw new ExporterException("File pattern not set on " + this.getClass());
}
if(templateName==null) {
throw new ExporterException("Template name not set on " + this.getClass());
}
List exporters = new ArrayList();
if(StringHelper.isEmpty( forEach )) {
if(filePattern.indexOf("{class-name}") >=0) {
exporters.add( modelIterators.get( "entity" ) );
exporters.add( modelIterators.get( "component") );
} else {
exporters.add( modelIterators.get( "configuration" ));
}
} else {
StringTokenizer tokens = new StringTokenizer(forEach, ",");
while ( tokens.hasMoreTokens() ) {
String nextToken = tokens.nextToken();
Object object = modelIterators.get(nextToken);
if(object==null) {
throw new ExporterException("for-each does not support [" + nextToken + "]");
}
exporters.add( object );
}
}
Iterator it = exporters.iterator();
while(it.hasNext()) {
ModelIterator mit = (ModelIterator) it.next();
mit.process( this );
}
}
|
protected void exportComponent(Map additionalContext,
POJOClass element) {
exportPOJO(additionalContext, element);
}
|
protected void exportPOJO(Map additionalContext,
POJOClass element) {
TemplateProducer producer = new TemplateProducer(getTemplateHelper(),getArtifactCollector());
additionalContext.put("pojo", element);
additionalContext.put("clazz", element.getDecoratedObject());
String filename = resolveFilename( element );
if(filename.endsWith(".java") && filename.indexOf('$") >=0) {
log.warn("Filename for " + getClassNameForFile( element ) + " contains a $. Innerclass generation is not supported.");
}
producer.produce(additionalContext, getTemplateName(), new File(getOutputDirectory(),filename), templateName);
}
|
protected void exportPersistentClass(Map additionalContext,
POJOClass element) {
exportPOJO(additionalContext, element);
}
|
protected String getClassNameForFile(POJOClass element) {
return element.getDeclarationName();
}
|
public String getFilePattern() {
return filePattern;
}
|
protected String getPackageNameForFile(POJOClass element) {
return element.getPackageName();
}
|
public String getTemplateName() {
return templateName;
}
|
protected String resolveFilename(POJOClass element) {
String filename = StringHelper.replace(filePattern, "{class-name}", getClassNameForFile( element ));
String packageLocation = StringHelper.replace(getPackageNameForFile( element ),".", "/");
if(StringHelper.isEmpty(packageLocation)) {
packageLocation = "."; // done to ensure default package classes doesn't end up in the root of the filesystem when outputdir=""
}
filename = StringHelper.replace(filename, "{package-name}", packageLocation);
return filename;
}
|
public void setFilePattern(String filePattern) {
this.filePattern = filePattern;
}
|
public void setForEach(String foreach) {
this.forEach = foreach;
}
|
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
|