You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/12/09 23:10:18 UTC
svn commit: r602737 - in /cayenne/main/trunk/framework:
cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/
cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/
cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/ ...
Author: aadamchik
Date: Sun Dec 9 14:10:17 2007
New Revision: 602737
URL: http://svn.apache.org/viewvc?rev=602737&view=rev
Log:
CAY-933 Embeddable classes - support class generation
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/ClassGenerationAction1_1.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/EmbeddableArtifact.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-singleclass.vm
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/ClassGenerationAction1_1.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/ClassGenerationAction1_1.java?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/ClassGenerationAction1_1.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/ClassGenerationAction1_1.java Sun Dec 9 14:10:17 2007
@@ -58,8 +58,7 @@
@Override
public void addEmbeddables(Collection<Embeddable> embeddables) {
- throw new UnsupportedOperationException(
- "Embeddables are not supported in 1.1 mode");
+ // noop - no embeddables support
}
@Override
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/EmbeddableArtifact.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/EmbeddableArtifact.java?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/EmbeddableArtifact.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/EmbeddableArtifact.java Sun Dec 9 14:10:17 2007
@@ -48,7 +48,19 @@
}
public TemplateType[] getTemplateTypes(ArtifactGenerationMode mode) {
- return null;
+ switch (mode) {
+ case SINGLE_CLASS:
+ return new TemplateType[] {
+ TemplateType.EMBEDDABLE_SINGLE_CLASS
+ };
+ case GENERATION_GAP:
+ return new TemplateType[] {
+ TemplateType.EMBEDDABLE_SUPERCLASS,
+ TemplateType.EMBEDDABLE_SUBCLASS
+ };
+ default:
+ return new TemplateType[0];
+ }
}
public void postInitContext(VelocityContext context) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorEntityFilterAction.java Sun Dec 9 14:10:17 2007
@@ -25,6 +25,7 @@
import java.util.List;
import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.Embeddable;
import org.apache.cayenne.map.ObjEntity;
/**
@@ -38,6 +39,26 @@
private NamePatternMatcher nameFilter;
private boolean client;
+
+ Collection<Embeddable> getFilteredEmbeddables(DataMap mainDataMap) {
+ List<Embeddable> embeddables = new ArrayList<Embeddable>(mainDataMap
+ .getEmbeddables());
+
+ // filter out excluded entities...
+ Iterator<Embeddable> it = embeddables.iterator();
+
+ while (it.hasNext()) {
+ Embeddable e = it.next();
+
+ // note that unlike entity, embeddable is matched by class name as it doesn't
+ // have a symbolic name...
+ if (!nameFilter.isIncluded(e.getClassName())) {
+ it.remove();
+ }
+ }
+
+ return embeddables;
+ }
Collection<ObjEntity> getFilteredEntities(DataMap mainDataMap)
throws MalformedURLException {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java Sun Dec 9 14:10:17 2007
@@ -20,12 +20,13 @@
import java.io.File;
+import org.apache.cayenne.gen.ArtifactsGenerationMode;
import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.gen.ClassGenerationAction1_1;
import org.apache.cayenne.gen.ClassGenerator;
-import org.apache.cayenne.gen.ArtifactsGenerationMode;
import org.apache.cayenne.gen.ClientClassGenerationAction;
import org.apache.cayenne.gen.DefaultClassGenerator;
+import org.apache.cayenne.map.DataMap;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.types.Path;
import org.apache.velocity.VelocityContext;
@@ -91,7 +92,8 @@
action.setDestDir(destDir);
action.setEncoding(encoding);
action.setMakePairs(makepairs);
- action.setArtifactsGenerationMode(ArtifactsGenerationMode.valueOf(mode.toLowerCase()));
+ action.setArtifactsGenerationMode(ArtifactsGenerationMode.valueOf(mode
+ .toLowerCase()));
action.setOutputPattern(outputPattern);
action.setOverwrite(overwrite);
action.setSuperPkg(superpkg);
@@ -144,12 +146,15 @@
excludeEntitiesPattern));
try {
+
+ DataMap dataMap = loadAction.getMainDataMap();
+
ClassGenerationAction generatorAction = createGeneratorAction();
generatorAction.setLogger(logger);
generatorAction.setTimestamp(map.lastModified());
- generatorAction.setDataMap(loadAction.getMainDataMap());
- generatorAction.addEntities(filterAction.getFilteredEntities(loadAction
- .getMainDataMap()));
+ generatorAction.setDataMap(dataMap);
+ generatorAction.addEntities(filterAction.getFilteredEntities(dataMap));
+ generatorAction.addEmbeddables(filterAction.getFilteredEmbeddables(dataMap));
generatorAction.execute();
}
catch (Exception e) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-singleclass.vm
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-singleclass.vm?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-singleclass.vm (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-singleclass.vm Sun Dec 9 14:10:17 2007
@@ -15,16 +15,83 @@
## specific language governing permissions and limitations
## under the License.
##
-##Terminology:
+## Terminology:
+##
## Base class - super superclass of embeddable, usually java.lang.Object
## Super class - superclass of embeddable, ie, org.apache.cayenne.art.auto._Embeddable
## Sub class - class of entity, ie, org.apache.cayenne.art.Embeddable
##
-## Classes available in template
-## embeddable - the Embeddable class: See org.apache.cayenne.map.Embeddable
+## Keys of objects available in template are defined in 'org.apache.cayenne.gen.Artifact', namely:
+##
+## object - the Embeddable class: See org.apache.cayenne.map.Embeddable
## stringUtils - class for string "helper" functions: See org.apache.cayenne.gen.StringUtils
-## entityUtils - class for entity "helper" functions: See org.apache.cayenne.gen.EntityUtils
## importUtils - class for import statement management: See org.apache.cayenne.gen.ImportUtils
+## superClassName
+## superPackageName
+## subClassName
+## subPackageName
+## baseClassName
+## basePackageName
##
##
-// singleclass
\ No newline at end of file
+${importUtils.setPackage($subPackageName)}##
+${importUtils.addReservedType("${subPackageName}.${subClassName}")}##
+${importUtils.addType("${basePackageName}.${baseClassName}")}##
+${importUtils.addType("org.apache.cayenne.Persistent")}##
+#foreach( $attr in ${object.Attributes} )
+$importUtils.addType(${attr.Type})##
+#end
+${importUtils.generate()}
+
+public abstract class ${subClassName} extends ${baseClassName} {
+
+## Create property names
+#foreach( $attr in ${object.Attributes} )
+ public static final String ${stringUtils.capitalizedAsConstant($attr.Name)}_PROPERTY = "${attr.Name}";
+#end
+
+ // special properties injected by Cayenne
+ private Persistent owner;
+ private String embeddedProperty;
+
+ // declared properties
+#foreach( $attr in ${object.Attributes} )
+ protected $importUtils.formatJavaType(${attr.Type}) $stringUtils.formatVariableName(${attr.Name});
+#end
+
+ // lifecycle methods
+ protected void propertyWillChange(String property, Object oldValue, Object newValue) {
+ if (owner != null && owner.getObjectContext() != null) {
+ owner.getObjectContext().propertyChanged(
+ owner,
+ embeddedProperty + "." + property,
+ oldValue,
+ newValue);
+ }
+ }
+
+ // declared getters and setters
+## Create attribute set/get methods
+#foreach( $attr in ${object.Attributes} )
+ public void set${stringUtils.capitalized($attr.Name)}($importUtils.formatJavaType(${attr.Type}) $stringUtils.formatVariableName(${attr.Name})) {
+ propertyWillChange("${attr.Name}", this.$stringUtils.formatVariableName(${attr.Name}), $stringUtils.formatVariableName(${attr.Name}));
+ this.$stringUtils.formatVariableName(${attr.Name}) = $stringUtils.formatVariableName(${attr.Name});
+ }
+#if ( $importUtils.isBoolean(${attr.Type}) )
+ public boolean is${stringUtils.capitalized($attr.Name)}() {
+ Boolean value = (Boolean)readProperty("${attr.Name}");
+ return (value != null) ? value.booleanValue() : false;
+ }
+#elseif ( $importUtils.isNonBooleanPrimitive(${attr.Type}) )
+ public $classGen.formatJavaType(${attr.Type}) get${stringUtils.capitalized($attr.Name)}() {
+ Object value = readProperty("${attr.Name}");
+ return (value != null) ? ($importUtils.formatJavaTypeAsNonBooleanPrimitive(${attr.Type})) value : 0;
+ }
+#else
+ public $importUtils.formatJavaType(${attr.Type}) get${stringUtils.capitalized($attr.Name)}() {
+ return ($importUtils.formatJavaType(${attr.Type}))readProperty("${attr.Name}");
+ }
+#end
+
+#end
+}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm Sun Dec 9 14:10:17 2007
@@ -15,16 +15,31 @@
## specific language governing permissions and limitations
## under the License.
##
-##Terminology:
+## Terminology:
+##
## Base class - super superclass of embeddable, usually java.lang.Object
## Super class - superclass of embeddable, ie, org.apache.cayenne.art.auto._Embeddable
## Sub class - class of entity, ie, org.apache.cayenne.art.Embeddable
##
-## Classes available in template
-## embeddable - the Embeddable class: See org.apache.cayenne.map.Embeddable
+## Keys of objects available in template are defined in 'org.apache.cayenne.gen.Artifact', namely:
+##
+## object - the Embeddable class: See org.apache.cayenne.map.Embeddable
## stringUtils - class for string "helper" functions: See org.apache.cayenne.gen.StringUtils
-## entityUtils - class for entity "helper" functions: See org.apache.cayenne.gen.EntityUtils
## importUtils - class for import statement management: See org.apache.cayenne.gen.ImportUtils
+## superClassName
+## superPackageName
+## subClassName
+## subPackageName
+## baseClassName
+## basePackageName
##
##
-// subclass
\ No newline at end of file
+${importUtils.setPackage($subPackageName)}##
+${importUtils.addReservedType("${subPackageName}.${subClassName}")}##
+${importUtils.addType("${superPackageName}.${superClassName}")}##
+${importUtils.generate()}
+
+
+public class ${subClassName} extends ${superClassName} {
+
+}
\ No newline at end of file
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm Sun Dec 9 14:10:17 2007
@@ -15,16 +15,89 @@
## specific language governing permissions and limitations
## under the License.
##
-##Terminology:
+## Terminology:
+##
## Base class - super superclass of embeddable, usually java.lang.Object
## Super class - superclass of embeddable, ie, org.apache.cayenne.art.auto._Embeddable
## Sub class - class of entity, ie, org.apache.cayenne.art.Embeddable
##
-## Classes available in template
-## embeddable - the Embeddable class: See org.apache.cayenne.map.Embeddable
+## Keys of objects available in template are defined in 'org.apache.cayenne.gen.Artifact', namely:
+##
+## object - the Embeddable class: See org.apache.cayenne.map.Embeddable
## stringUtils - class for string "helper" functions: See org.apache.cayenne.gen.StringUtils
-## entityUtils - class for entity "helper" functions: See org.apache.cayenne.gen.EntityUtils
## importUtils - class for import statement management: See org.apache.cayenne.gen.ImportUtils
+## superClassName
+## superPackageName
+## subClassName
+## subPackageName
+## baseClassName
+## basePackageName
##
##
-// superclass
\ No newline at end of file
+${importUtils.setPackage($superPackageName)}##
+${importUtils.addReservedType("${superPackageName}.${superClassName}")}##
+${importUtils.addType("${basePackageName}.${baseClassName}")}##
+${importUtils.addType("org.apache.cayenne.Persistent")}##
+#foreach( $attr in ${object.Attributes} )
+$importUtils.addType(${attr.Type})##
+#end
+${importUtils.generate()}
+
+/**
+ * Embeddable class ${superClassName} was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class ${superClassName} extends ${baseClassName} {
+
+## Create property names
+#foreach( $attr in ${object.Attributes} )
+ public static final String ${stringUtils.capitalizedAsConstant($attr.Name)}_PROPERTY = "${attr.Name}";
+#end
+
+ // special properties injected by Cayenne
+ private Persistent owner;
+ private String embeddedProperty;
+
+ // declared properties
+#foreach( $attr in ${object.Attributes} )
+ protected $importUtils.formatJavaType(${attr.Type}) $stringUtils.formatVariableName(${attr.Name});
+#end
+
+ // lifecycle methods
+ protected void propertyWillChange(String property, Object oldValue, Object newValue) {
+ if (owner != null && owner.getObjectContext() != null) {
+ owner.getObjectContext().propertyChanged(
+ owner,
+ embeddedProperty + "." + property,
+ oldValue,
+ newValue);
+ }
+ }
+
+ // declared getters and setters
+## Create attribute set/get methods
+#foreach( $attr in ${object.Attributes} )
+ public void set${stringUtils.capitalized($attr.Name)}($importUtils.formatJavaType(${attr.Type}) $stringUtils.formatVariableName(${attr.Name})) {
+ propertyWillChange("${attr.Name}", this.$stringUtils.formatVariableName(${attr.Name}), $stringUtils.formatVariableName(${attr.Name}));
+ this.$stringUtils.formatVariableName(${attr.Name}) = $stringUtils.formatVariableName(${attr.Name});
+ }
+#if ( $importUtils.isBoolean(${attr.Type}) )
+ public boolean is${stringUtils.capitalized($attr.Name)}() {
+ Boolean value = (Boolean)readProperty("${attr.Name}");
+ return (value != null) ? value.booleanValue() : false;
+ }
+#elseif ( $importUtils.isNonBooleanPrimitive(${attr.Type}) )
+ public $classGen.formatJavaType(${attr.Type}) get${stringUtils.capitalized($attr.Name)}() {
+ Object value = readProperty("${attr.Name}");
+ return (value != null) ? ($importUtils.formatJavaTypeAsNonBooleanPrimitive(${attr.Type})) value : 0;
+ }
+#else
+ public $importUtils.formatJavaType(${attr.Type}) get${stringUtils.capitalized($attr.Name)}() {
+ return ($importUtils.formatJavaType(${attr.Type}))readProperty("${attr.Name}");
+ }
+#end
+
+#end
+}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java Sun Dec 9 14:10:17 2007
@@ -273,25 +273,25 @@
"CayenneDataObject");
// check embeddable results
- // File e = new File(
- // mapDir,
- // convertPath("org/apache/cayenne/testdo/embeddable/Embeddable1.java"));
- // assertTrue(e.isFile());
- // assertContents(
- // e,
- // "Embeddable1",
- // "org.apache.cayenne.testdo.embeddable",
- // "_Embeddable1");
- //
- // File _e = new File(
- // mapDir,
- // convertPath("org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java"));
- // assertTrue(_e.exists());
- // assertContents(
- // _e,
- // "_Embeddable1",
- // "org.apache.cayenne.testdo.embeddable.auto",
- // "Object");
+ File e = new File(
+ mapDir,
+ convertPath("org/apache/cayenne/testdo/embeddable/Embeddable1.java"));
+ assertTrue(e.isFile());
+ assertContents(
+ e,
+ "Embeddable1",
+ "org.apache.cayenne.testdo.embeddable",
+ "_Embeddable1");
+
+ File _e = new File(
+ mapDir,
+ convertPath("org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java"));
+ assertTrue(_e.exists());
+ assertContents(
+ _e,
+ "_Embeddable1",
+ "org.apache.cayenne.testdo.embeddable.auto",
+ "Object");
}
private String convertPath(String unixPath) {
Modified: cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java?rev=602737&r1=602736&r2=602737&view=diff
==============================================================================
--- cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java (original)
+++ cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java Sun Dec 9 14:10:17 2007
@@ -26,6 +26,7 @@
import org.apache.cayenne.gen.ClassGenerationAction1_1;
import org.apache.cayenne.gen.ClassGenerator;
import org.apache.cayenne.gen.ClientClassGenerationAction;
+import org.apache.cayenne.map.DataMap;
import org.apache.commons.logging.Log;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
@@ -218,12 +219,14 @@
try {
loaderAction.setAdditionalDataMapFiles(convertAdditionalDataMaps());
+ DataMap dataMap = loaderAction.getMainDataMap();
+
ClassGenerationAction generator = createGenerator();
generator.setLogger(logger);
generator.setTimestamp(map.lastModified());
- generator.setDataMap(loaderAction.getMainDataMap());
- generator.addEntities(filterAction.getFilteredEntities(loaderAction
- .getMainDataMap()));
+ generator.setDataMap(dataMap);
+ generator.addEntities(filterAction.getFilteredEntities(dataMap));
+ generator.addEmbeddables(filterAction.getFilteredEmbeddables(dataMap));
generator.execute();
} catch (Exception e) {
throw new MojoExecutionException("Error generating classes: ", e);