You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/11/14 14:27:44 UTC
[13/32] cayenne git commit: Add cgen tab.
Add cgen tab.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/6a43436a
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/6a43436a
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/6a43436a
Branch: refs/heads/master
Commit: 6a43436ab12017594762210c18dd508e2f2ded9d
Parents: aa22c93
Author: Arseni Bulatski <an...@gmail.com>
Authored: Wed Oct 31 10:51:32 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Wed Oct 31 10:51:32 2018 +0300
----------------------------------------------------------------------
.../cayenne/gen/ArtifactsGenerationMode.java | 2 +-
.../cayenne/gen/ClassGenerationAction.java | 499 ++++++++++---------
.../gen/ClientClassGenerationAction.java | 7 +-
.../cayenne/gen/xml/CgenConfigHandler.java | 117 ++---
.../cayenne/gen/xml/CgenSaverDelegate.java | 23 +
.../cayenne/gen/xml/EmbeddableHandler.java | 70 ---
.../cayenne/gen/xml/ObjEntityHandler.java | 69 ---
.../cayenne/project/CompoundSaverDelegate.java | 28 +-
.../cayenne/project/FileProjectSaver.java | 2 +
.../project/extension/BaseSaverDelegate.java | 13 +
.../project/extension/SaverDelegate.java | 4 +
.../main/java/org/apache/cayenne/util/Util.java | 33 +-
.../cayenne/tools/CayenneGeneratorMojo.java | 5 +-
.../cayenne/modeler/CayenneModelerFrame.java | 81 +--
.../cayenne/modeler/action/CgenAction.java | 27 -
.../modeler/action/DefaultActionManager.java | 5 +-
.../dialog/codegen/ClassesTabController.java | 13 +-
.../modeler/dialog/codegen/ClassesTabPanel.java | 15 +-
.../dialog/codegen/ClientModeController.java | 2 +-
.../dialog/codegen/CodeGeneratorController.java | 4 +-
.../codegen/CodeGeneratorControllerBase.java | 18 +-
.../dialog/codegen/CodeGeneratorDialog.java | 17 +-
.../dialog/codegen/CustomModeController.java | 19 +-
.../modeler/dialog/codegen/CustomModePanel.java | 9 +-
.../dialog/codegen/GeneratorController.java | 26 +-
.../codegen/GeneratorControllerPanel.java | 4 +-
.../dialog/codegen/GeneratorTabController.java | 2 +-
.../dialog/codegen/GeneratorTabPanel.java | 2 +-
.../dialog/codegen/StandardModeController.java | 6 +-
.../dialog/codegen/StandardModePanel.java | 2 +-
.../dialog/codegen/StandardPanelComponent.java | 2 +-
.../modeler/dialog/codegen/cgen/CgenDialog.java | 74 ---
.../codegen/cgen/CgenGlobalController.java | 68 ---
.../dialog/codegen/cgen/CgenGlobalPanel.java | 293 -----------
.../codegen/cgen/CgenGlobalPanelController.java | 306 ------------
.../modeler/editor/DataMapTabbedView.java | 25 +-
.../editor/cgen/ClassesTabController.java | 13 +-
.../modeler/editor/cgen/ClassesTabPanel.java | 12 +-
.../editor/cgen/ClientModeController.java | 40 ++
.../editor/cgen/CodeGeneratorController.java | 48 +-
.../cgen/CodeGeneratorControllerBase.java | 112 +++--
.../modeler/editor/cgen/CodeGeneratorPane.java | 45 +-
.../editor/cgen/CustomModeController.java | 83 +--
.../modeler/editor/cgen/CustomModePanel.java | 137 +----
.../editor/cgen/GeneratorController.java | 157 +++---
.../editor/cgen/GeneratorControllerPanel.java | 30 +-
.../editor/cgen/GeneratorTabController.java | 64 ++-
.../modeler/editor/cgen/GeneratorTabPanel.java | 70 ++-
.../editor/cgen/StandardModeController.java | 61 +++
.../modeler/editor/cgen/StandardModePanel.java | 42 ++
.../editor/cgen/StandardPanelComponent.java | 63 +++
51 files changed, 1027 insertions(+), 1842 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ArtifactsGenerationMode.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ArtifactsGenerationMode.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ArtifactsGenerationMode.java
index e76c172..98aca33 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ArtifactsGenerationMode.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ArtifactsGenerationMode.java
@@ -26,7 +26,7 @@ package org.apache.cayenne.gen;
public enum ArtifactsGenerationMode {
// TODO: andrus 12/9/2007 - label names are old... need to call it something else...
- DATAMAP("datamap"), ENTITY("entity"), ALL("all");
+ ENTITY("entity"), ALL("all");
private String label;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
index f74ca21..434421f 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
@@ -33,16 +33,12 @@ import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.slf4j.Logger;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Serializable;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.*;
+import java.util.stream.Collectors;
public class ClassGenerationAction implements Serializable, XMLSerializable {
static final String TEMPLATES_DIR_NAME = "templates/v4_1/";
@@ -62,10 +58,11 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
public static final String SUPERCLASS_PREFIX = "_";
private static final String WILDCARD = "*";
- protected Collection<Artifact> artifacts;
-
+ Collection<Artifact> artifacts;
private Collection<String> entityArtifacts;
+ private Collection<String> excludeEntityArtifacts;
private Collection<String> embeddableArtifacts;
+ private Collection<String> excludeEmbeddableArtifacts;
protected String superPkg;
protected DataMap dataMap;
@@ -74,7 +71,10 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
protected boolean makePairs;
protected Logger logger;
- protected File destDir;
+
+ protected Path rootPath;
+ protected Path relPath;
+
protected boolean overwrite;
protected boolean usePkgPath;
@@ -110,22 +110,20 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
this.artifacts = new ArrayList<>();
this.entityArtifacts = new ArrayList<>();
+ this.excludeEntityArtifacts = new ArrayList<>();
this.embeddableArtifacts = new ArrayList<>();
+ this.excludeEmbeddableArtifacts = new ArrayList<>();
this.artifactsGenerationMode = ArtifactsGenerationMode.ENTITY;
this.overwrite = false;
- }
-
- public void setDefaults() {
- this.template = SUBCLASS_TEMPLATE;
- this.superTemplate = SUPERCLASS_TEMPLATE;
+ this.template = SUBCLASS_TEMPLATE;
+ this.superTemplate = SUPERCLASS_TEMPLATE;
+ this.embeddableTemplate = EMBEDDABLE_SUBCLASS_TEMPLATE;
+ this.embeddableSuperTemplate = EMBEDDABLE_SUPERCLASS_TEMPLATE;
- this.embeddableTemplate = EMBEDDABLE_SUBCLASS_TEMPLATE;
- this.embeddableSuperTemplate = EMBEDDABLE_SUPERCLASS_TEMPLATE;
-
- this.queryTemplate = DATAMAP_SUBCLASS_TEMPLATE;
- this.querySuperTemplate = DATAMAP_SUPERCLASS_TEMPLATE;
- }
+ this.queryTemplate = DATAMAP_SUBCLASS_TEMPLATE;
+ this.querySuperTemplate = DATAMAP_SUPERCLASS_TEMPLATE;
+ }
protected String defaultTemplateName(TemplateType type) {
switch (type) {
@@ -178,14 +176,6 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
}
/**
- * Returns a String used to prefix class name to create a generated
- * superclass. Default value is "_".
- */
- private String getSuperclassPrefix() {
- return ClassGenerationAction.SUPERCLASS_PREFIX;
- }
-
- /**
* VelocityContext initialization method called once per artifact.
*/
private void resetContextForArtifact(Artifact artifact) {
@@ -232,7 +222,7 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
}
public void prepareArtifacts() {
- resetArtifacts();
+ this.artifacts.clear();
addAllEntities();
addAllEmbeddables();
addQueries(dataMap.getQueryDescriptors());
@@ -317,84 +307,21 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
* Called internally from "execute".
*/
private void validateAttributes() {
- if (destDir == null) {
- throw new CayenneRuntimeException("'destDir' attribute is missing.");
+ Path dir = buildPath();
+ if (dir == null) {
+ throw new CayenneRuntimeException("'rootPath' attribute is missing.");
}
- if (!destDir.isDirectory()) {
+ if (!Files.isDirectory(dir)) {
throw new CayenneRuntimeException("'destDir' is not a directory.");
}
- if (!destDir.canWrite()) {
- throw new CayenneRuntimeException("Do not have write permissions for %s", destDir);
+ if (!Files.isWritable(dir)) {
+ throw new CayenneRuntimeException("Do not have write permissions for %s", dir);
}
}
/**
- * Sets the destDir.
- */
- public void setDestDir(File destDir) {
- this.destDir = destDir;
- }
-
- /**
- * Sets <code>overwrite</code> property.
- */
- public void setOverwrite(boolean overwrite) {
- this.overwrite = overwrite;
- }
-
- /**
- * Sets <code>makepairs</code> property.
- */
- public void setMakePairs(boolean makePairs) {
- this.makePairs = makePairs;
- }
-
- /**
- * Sets <code>template</code> property.
- */
- public void setTemplate(String template) {
- this.template = template;
- }
-
- /**
- * Sets <code>superTemplate</code> property.
- */
- public void setSuperTemplate(String superTemplate) {
- this.superTemplate = superTemplate;
- }
-
- public void setQueryTemplate(String queryTemplate) {
- this.queryTemplate = queryTemplate;
- }
-
- public void setQuerySuperTemplate(String querySuperTemplate) {
- this.querySuperTemplate = querySuperTemplate;
- }
-
- /**
- * Sets <code>usepkgpath</code> property.
- */
- public void setUsePkgPath(boolean usePkgPath) {
- this.usePkgPath = usePkgPath;
- }
-
- /**
- * Sets <code>outputPattern</code> property.
- */
- public void setOutputPattern(String outputPattern) {
- this.outputPattern = outputPattern;
- }
-
- /**
- * Sets <code>createPropertyNames</code> property.
- */
- public void setCreatePropertyNames(boolean createPropertyNames) {
- this.createPropertyNames = createPropertyNames;
- }
-
- /**
* Opens a Writer to write generated output. Returned Writer is mapped to a
* filesystem file (although subclasses may override that). File location is
* determined from the current state of VelocityContext and the TemplateType
@@ -429,7 +356,7 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
String className = (String) context.get(Artifact.SUPER_CLASS_KEY);
String filename = StringUtils.getInstance().replaceWildcardInStringWithString(WILDCARD, outputPattern, className);
- File dest = new File(mkpath(destDir, packageName), filename);
+ File dest = new File(mkpath(new File(getDir()), packageName), filename);
if (dest.exists() && !fileNeedUpdate(dest, superTemplate)) {
return null;
@@ -448,7 +375,7 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
String className = (String) context.get(Artifact.SUB_CLASS_KEY);
String filename = StringUtils.getInstance().replaceWildcardInStringWithString(WILDCARD, outputPattern, className);
- File dest = new File(mkpath(destDir, packageName), filename);
+ File dest = new File(mkpath(new File(Objects.requireNonNull(buildPath()).toString()), packageName), filename);
if (dest.exists()) {
// no overwrite of subclasses
@@ -517,31 +444,6 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
return fullPath;
}
- public void setTimestamp(long timestamp) {
- this.timestamp = timestamp;
- }
-
- /**
- * Sets file encoding. If set to null, default system encoding will be used.
- */
- public void setEncoding(String encoding) {
- this.encoding = encoding;
- }
-
- /**
- * Sets "superPkg" property value.
- */
- public void setSuperPkg(String superPkg) {
- this.superPkg = superPkg;
- }
-
- /**
- * @param dataMap The dataMap to set.
- */
- public void setDataMap(DataMap dataMap) {
- this.dataMap = dataMap;
- }
-
/**
* Adds entities to the internal entity list.
* @param entities collection
@@ -549,64 +451,50 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
* @since 4.0 throws exception
*/
public void addEntities(Collection<ObjEntity> entities) {
- if (artifactsGenerationMode == ArtifactsGenerationMode.ENTITY
- || artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
- if (entities != null) {
- for (ObjEntity entity : entities) {
- artifacts.add(new EntityArtifact(entity));
- }
+ if (entities != null) {
+ for (ObjEntity entity : entities) {
+ artifacts.add(new EntityArtifact(entity));
}
}
}
public void addEmbeddables(Collection<Embeddable> embeddables) {
- if (artifactsGenerationMode == ArtifactsGenerationMode.ENTITY
- || artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
- if (embeddables != null) {
- for (Embeddable embeddable : embeddables) {
- artifacts.add(new EmbeddableArtifact(embeddable));
- }
+ if (embeddables != null) {
+ for (Embeddable embeddable : embeddables) {
+ artifacts.add(new EmbeddableArtifact(embeddable));
}
}
}
public void addQueries(Collection<QueryDescriptor> queries) {
- if (artifactsGenerationMode == ArtifactsGenerationMode.DATAMAP
- || artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
-
+ if (artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
// TODO: andrus 10.12.2010 - why not also check for empty query list??
// Or create a better API for enabling DataMapArtifact
if (queries != null) {
Artifact artifact = new DataMapArtifact(dataMap, queries);
if(!artifacts.contains(artifact)) {
- artifacts.add(new DataMapArtifact(dataMap, queries));
+ artifacts.add(artifact);
}
}
}
}
private void addAllEntities() {
- if(artifactsGenerationMode == ArtifactsGenerationMode.ENTITY
- || artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
- entityArtifacts.forEach(val -> {
- Artifact artifact = new EntityArtifact(dataMap.getObjEntity(val));
- if(!artifacts.contains(artifact)) {
- artifacts.add(artifact);
- }
- });
- }
+ entityArtifacts.forEach(val -> {
+ Artifact artifact = new EntityArtifact(dataMap.getObjEntity(val));
+ if(!artifacts.contains(artifact)) {
+ artifacts.add(artifact);
+ }
+ });
}
private void addAllEmbeddables() {
- if(artifactsGenerationMode == ArtifactsGenerationMode.ENTITY
- || artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
- embeddableArtifacts.forEach(val -> {
- Artifact artifact = new EmbeddableArtifact(dataMap.getEmbeddable(val));
- if(!artifacts.contains(artifact)) {
- artifacts.add(artifact);
- }
- });
- }
+ embeddableArtifacts.forEach(val -> {
+ Artifact artifact = new EmbeddableArtifact(dataMap.getEmbeddable(val));
+ if(!artifacts.contains(artifact)) {
+ artifacts.add(artifact);
+ }
+ });
}
/**
@@ -616,85 +504,91 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
entityArtifacts.add(name);
}
- /**
- * @since 4.1
- */
+ /**
+ * @since 4.1
+ */
public void loadEmbeddable(String name) {
embeddableArtifacts.add(name);
}
- /**
- * Sets an optional shared VelocityContext. Useful with tools like VPP that
- * can set custom values in the context, not known to Cayenne.
- */
- public void setContext(VelocityContext context) {
- this.context = context;
+ public void setArtifactsGenerationMode(String mode) {
+ if (ArtifactsGenerationMode.ENTITY.getLabel().equalsIgnoreCase(mode)) {
+ this.artifactsGenerationMode = ArtifactsGenerationMode.ENTITY;
+ } else {
+ this.artifactsGenerationMode = ArtifactsGenerationMode.ALL;
+ }
}
- /**
- * Injects an optional logger that will be used to trace generated files at
- * the info level.
- */
- public void setLogger(Logger logger) {
- this.logger = logger;
+ public Path buildPath() {
+ return rootPath != null ? relPath != null ? rootPath.resolve(relPath).toAbsolutePath().normalize() : rootPath : null;
}
- public void setEmbeddableTemplate(String embeddableTemplate) {
- this.embeddableTemplate = embeddableTemplate;
+ public void loadEntities(String entities) {
+ excludeEntityArtifacts.addAll(Arrays.asList(entities.split(",")));
}
- public void setEmbeddableSuperTemplate(String embeddableSuperTemplate) {
- this.embeddableSuperTemplate = embeddableSuperTemplate;
+ public void resolveExcludeEntities() {
+ entityArtifacts = dataMap.getObjEntities()
+ .stream()
+ .filter(entity -> !excludeEntityArtifacts.contains(entity.getName()))
+ .map(ObjEntity::getName)
+ .collect(Collectors.toList());
}
- public void setArtifactsGenerationMode(String mode) {
- if (ArtifactsGenerationMode.ENTITY.getLabel().equalsIgnoreCase(mode)) {
- this.artifactsGenerationMode = ArtifactsGenerationMode.ENTITY;
- } else if (ArtifactsGenerationMode.DATAMAP.getLabel().equalsIgnoreCase(mode)) {
- this.artifactsGenerationMode = ArtifactsGenerationMode.DATAMAP;
- } else {
- this.artifactsGenerationMode = ArtifactsGenerationMode.ALL;
- }
+ public void loadEmbeddables(String embeddables) {
+ excludeEmbeddableArtifacts.addAll(Arrays.asList(embeddables.split(",")));
}
- /**
- * @since 4.1
- */
- public boolean isCreatePKProperties() {
- return createPKProperties;
- }
+ public void resolveExcludeEmbeddables() {
+ embeddableArtifacts = dataMap.getEmbeddables()
+ .stream()
+ .filter(embeddable -> !excludeEmbeddableArtifacts.contains(embeddable.getClassName()))
+ .map(Embeddable::getClassName)
+ .collect(Collectors.toList());
+ }
- /**
- * @since 4.1
- */
- public void setCreatePKProperties(boolean createPKProperties) {
- this.createPKProperties = createPKProperties;
- }
+ public void resetCollections(){
+ this.embeddableArtifacts.clear();
+ this.entityArtifacts.clear();
+ }
- private Collection<EntityArtifact> getEntityArtifacts() {
- resetArtifacts();
- addAllEntities();
- Collection<EntityArtifact> entityArtifacts = new ArrayList<>();
- for(Artifact artifact : artifacts){
- if(artifact instanceof EntityArtifact){
- entityArtifacts.add((EntityArtifact) artifact);
- }
- }
- return entityArtifacts;
+ private String getExcludeEntites() {
+ Collection<String> excludeEntities = dataMap.getObjEntities()
+ .stream()
+ .filter(entity -> !entityArtifacts.contains(entity.getName()))
+ .map(ObjEntity::getName)
+ .collect(Collectors.toList());
+ return org.apache.commons.lang3.StringUtils.join(excludeEntities, ",");
}
- private Collection<EmbeddableArtifact> getEmbeddableArtifacts() {
- resetArtifacts();
- addAllEmbeddables();
- Collection<EmbeddableArtifact> embeddableArtifacts = new ArrayList<>();
- for(Artifact artifact : artifacts){
- if(artifact instanceof EmbeddableArtifact){
- embeddableArtifacts.add((EmbeddableArtifact) artifact);
- }
- }
+ private String getExcludeEmbeddables() {
+ Collection<String> excludeEmbeddable = dataMap.getEmbeddables()
+ .stream()
+ .filter(embeddable -> !embeddableArtifacts.contains(embeddable.getClassName()))
+ .map(Embeddable::getClassName)
+ .collect(Collectors.toList());
+ return org.apache.commons.lang3.StringUtils.join(excludeEmbeddable, ",");
+ }
+
+ /**
+ * Returns a String used to prefix class name to create a generated
+ * superclass. Default value is "_".
+ */
+ private String getSuperclassPrefix() {
+ return ClassGenerationAction.SUPERCLASS_PREFIX;
+ }
+
+ public Collection<String> getEmbeddables() {
return embeddableArtifacts;
}
+ /**
+ * @since 4.1
+ */
+ public boolean isCreatePKProperties() {
+ return createPKProperties;
+ }
+
public boolean isMakePairs() {
return makePairs;
}
@@ -724,11 +618,9 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
}
public String getDir(){
- return destDir != null ? destDir.getAbsolutePath() : null;
+ return rootPath != null ? relPath != null ? rootPath.resolve(relPath).toAbsolutePath().normalize().toString() : rootPath.toString() : null;
}
- public File getDestDir() { return destDir; }
-
public String getTemplate() {
return template;
}
@@ -737,16 +629,15 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
return superPkg;
}
- private void resetArtifacts(){
- this.artifacts = new ArrayList<>();
- }
-
public Collection<String> getEntities() {
return entityArtifacts;
}
- public Collection<String> getEmbeddables() {
- return embeddableArtifacts;
+ public String getRelPath() {
+ if(relPath == null || relPath.toString().isEmpty()) {
+ return ".";
+ }
+ return relPath.toString();
}
public String getArtifactsGenerationMode(){
@@ -774,39 +665,155 @@ public class ClassGenerationAction implements Serializable, XMLSerializable {
}
public String getQueryTemplate() {
- return queryTemplate;
- }
+ return queryTemplate;
+ }
- public String getQuerySuperTemplate() {
- return querySuperTemplate;
- }
+ public String getQuerySuperTemplate() {
+ return querySuperTemplate;
+ }
- public void resetCollections(){
- this.embeddableArtifacts = new ArrayList<>();
- this.entityArtifacts = new ArrayList<>();
+ /**
+ * Sets an optional shared nVelocityContext. Useful with tools like VPP that
+ * can set custom values in the context, not known to Cayenne.
+ */
+ public void setContext(VelocityContext context) {
+ this.context = context;
+ }
+
+ /**
+ * Injects an optional logger that will be used to trace generated files at
+ * the info level.
+ */
+ public void setLogger(Logger logger) {
+ this.logger = logger;
+ }
+
+ public void setTimestamp(long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ /**
+ * Sets file encoding. If set to null, default system encoding will be used.
+ */
+ public void setEncoding(String encoding) {
+ this.encoding = encoding;
+ }
+
+ /**
+ * Sets "superPkg" property value.
+ */
+ public void setSuperPkg(String superPkg) {
+ this.superPkg = superPkg;
+ }
+
+ /**
+ * @param dataMap The dataMap to set.
+ */
+ public void setDataMap(DataMap dataMap) {
+ this.dataMap = dataMap;
+ }
+
+ public void setEmbeddableTemplate(String embeddableTemplate) {
+ this.embeddableTemplate = embeddableTemplate;
+ }
+
+ public void setEmbeddableSuperTemplate(String embeddableSuperTemplate) {
+ this.embeddableSuperTemplate = embeddableSuperTemplate;
+ }
+
+ /**
+ * Sets <code>overwrite</code> property.
+ */
+ public void setOverwrite(boolean overwrite) {
+ this.overwrite = overwrite;
+ }
+
+ /**
+ * Sets <code>makepairs</code> property.
+ */
+ public void setMakePairs(boolean makePairs) {
+ this.makePairs = makePairs;
+ }
+
+ /**
+ * Sets <code>template</code> property.
+ */
+ public void setTemplate(String template) {
+ this.template = template;
+ }
+
+ /**
+ * Sets <code>superTemplate</code> property.
+ */
+ public void setSuperTemplate(String superTemplate) {
+ this.superTemplate = superTemplate;
+ }
+
+ public void setQueryTemplate(String queryTemplate) {
+ this.queryTemplate = queryTemplate;
+ }
+
+ public void setQuerySuperTemplate(String querySuperTemplate) {
+ this.querySuperTemplate = querySuperTemplate;
+ }
+
+ /**
+ * Sets <code>usepkgpath</code> property.
+ */
+ public void setUsePkgPath(boolean usePkgPath) {
+ this.usePkgPath = usePkgPath;
+ }
+
+ /**
+ * Sets <code>outputPattern</code> property.
+ */
+ public void setOutputPattern(String outputPattern) {
+ this.outputPattern = outputPattern;
+ }
+
+ /**
+ * Sets <code>createPropertyNames</code> property.
+ */
+ public void setCreatePropertyNames(boolean createPropertyNames) {
+ this.createPropertyNames = createPropertyNames;
+ }
+
+ /**
+ * @since 4.1
+ */
+ public void setCreatePKProperties(boolean createPKProperties) {
+ this.createPKProperties = createPKProperties;
+ }
+
+ public void setRootPath(Path rootPath) {
+ this.rootPath = rootPath;
+ }
+
+ public void setRelPath(Path relPath) {
+ this.relPath = relPath;
+ }
+
+ public void setRelPath(String path) {
+ this.relPath = rootPath.relativize(Paths.get(path));
}
@Override
public void encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate) {
encoder.start("cgen")
.attribute("xmlns", CgenExtension.NAMESPACE)
- .nested(this.getEntityArtifacts(), delegate)
- .nested(this.getEmbeddableArtifacts(), delegate)
- .simpleTag("outputDirectory", this.destDir != null ? this.destDir.getAbsolutePath() : null)
+ .simpleTag("excludeEntities", getExcludeEntites())
+ .simpleTag("excludeEmbeddables",getExcludeEmbeddables())
+ .simpleTag("outputDirectory", getRelPath())
.simpleTag("generationMode", this.artifactsGenerationMode.getLabel())
- .simpleTag("dataMapTemplate", this.queryTemplate)
- .simpleTag("dataMapSuperclassTemplate", this.querySuperTemplate)
.simpleTag("subclassTemplate", this.template)
.simpleTag("superclassTemplate", this.superTemplate)
- .simpleTag("embeddableTemplate", this.embeddableTemplate)
- .simpleTag("embeddableSuperclassTemplate", this.embeddableSuperTemplate)
.simpleTag("outputPattern", this.outputPattern)
.simpleTag("makePairs", Boolean.toString(this.makePairs))
.simpleTag("usePkgPath", Boolean.toString(this.usePkgPath))
.simpleTag("overwriteSubclasses", Boolean.toString(this.overwrite))
.simpleTag("createPropertyNames", Boolean.toString(this.createPropertyNames))
.simpleTag("superPkg", this.superPkg)
- .simpleTag("encoding", this.encoding)
+ .simpleTag("createPKProperties", Boolean.toString(this.createPKProperties))
.end();
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
index c944f40..c8880aa 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
@@ -19,12 +19,12 @@
package org.apache.cayenne.gen;
-import java.util.Collection;
-
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.QueryDescriptor;
+import java.util.Collection;
+
/**
* @since 3.0
*/
@@ -88,8 +88,7 @@ public class ClientClassGenerationAction extends ClassGenerationAction {
@Override
public void addQueries(Collection<QueryDescriptor> queries) {
- if (artifactsGenerationMode == ArtifactsGenerationMode.DATAMAP
- || artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
+ if (artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
if (queries != null) {
artifacts.add(new ClientDataMapArtifact(dataMap, queries));
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
index f77f1f1..7883ca2 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
@@ -22,10 +22,9 @@ import org.apache.cayenne.configuration.xml.DataChannelMetaData;
import org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler;
import org.apache.cayenne.gen.ClassGenerationAction;
import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
-import java.io.File;
+import java.nio.file.Paths;
/**
* @since 4.1
@@ -43,14 +42,9 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
private static final String USE_PKG_PATH_TAG = "usePkgPath";
private static final String OVERWRITE_SUBCLASSES_TAG = "overwriteSubclasses";
private static final String CREATE_PROPERTY_NAMES_TAG = "createPropertyNames";
- private static final String SUPER_PKG_TAG = "superPkg";
- private static final String OBJENTITY_TAG = "objEntity";
- private static final String EMBEDDABLE_TAG = "embeddable";
- private static final String ENCODING_TAG = "encoding";
- private static final String EMBEDDABLE_TEMPLATE_TAG = "embeddableTemplate";
- private static final String EMBEDDABLE_SUPERCLASS_TEMPLATE_TAG = "embeddableSuperclassTemplate";
- private static final String DATAMAP_TEMPLATE_TAG = "dataMapTemplate";
- private static final String DATAMAP_SUPERCLASS_TEMPLATE_TAG = "dataMapSuperclassTemplate";
+ private static final String EXCLUDE_ENTITIES_TAG = "excludeEntities";
+ private static final String EXCLUDE_EMBEDDABLES_TAG = "excludeEmbeddables";
+ private static final String CREATE_PK_PROPERTIES = "createPKProperties";
public static final String TRUE = "true";
@@ -74,22 +68,6 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
}
@Override
- protected ContentHandler createChildTagHandler(String namespaceURI, String localName,
- String qName, Attributes attributes) {
-
- if (namespaceURI.equals(targetNamespace)) {
- switch (localName) {
- case OBJENTITY_TAG:
- return new ObjEntityHandler(this, configuration);
- case EMBEDDABLE_TAG:
- return new EmbeddableHandler(this, configuration);
- }
- }
-
- return super.createChildTagHandler(namespaceURI, localName, qName, attributes);
- }
-
- @Override
protected void processCharData(String localName, String data) {
switch (localName) {
case OUTPUT_DIRECTORY_TAG:
@@ -98,6 +76,12 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
case GENERATION_MODE_TAG:
createGenerationMode(data);
break;
+ case EXCLUDE_ENTITIES_TAG:
+ createExcludeEntities(data);
+ break;
+ case EXCLUDE_EMBEDDABLES_TAG:
+ createExcludeEmbeddables(data);
+ break;
case SUBCLASS_TEMPLATE_TAG:
createSubclassTemplate(data);
break;
@@ -119,23 +103,8 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
case CREATE_PROPERTY_NAMES_TAG:
createPropertyNamesTag(data);
break;
- case SUPER_PKG_TAG:
- createSuperPkg(data);
- break;
- case ENCODING_TAG:
- createEncoding(data);
- break;
- case EMBEDDABLE_TEMPLATE_TAG:
- createEmbeddableTemplate(data);
- break;
- case EMBEDDABLE_SUPERCLASS_TEMPLATE_TAG:
- createEmbeddableSuperclassTemplate(data);
- break;
- case DATAMAP_TEMPLATE_TAG:
- createDataMapTemplate(data);
- break;
- case DATAMAP_SUPERCLASS_TEMPLATE_TAG:
- createDataMapSuperclassTemplate(data);
+ case CREATE_PK_PROPERTIES:
+ createPkPropertiesTag(data);
break;
}
}
@@ -146,7 +115,7 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
}
if(configuration != null) {
- configuration.setDestDir(new File(path));
+ configuration.setRelPath(Paths.get(path));
}
}
@@ -160,43 +129,43 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
}
}
- private void createSubclassTemplate(String template) {
- if(template.trim().length() == 0) {
+ private void createExcludeEntities(String entities) {
+ if(entities.trim().length() == 0) {
return;
}
if(configuration != null) {
- configuration.setTemplate(template);
+ configuration.loadEntities(entities);
}
}
- private void createSuperclassTemplate(String template) {
- if(template.trim().length() == 0) {
+ private void createExcludeEmbeddables(String embeddables) {
+ if(embeddables.trim().length() == 0) {
return;
}
if(configuration != null) {
- configuration.setSuperTemplate(template);
+ configuration.loadEmbeddables(embeddables);
}
}
- private void createEmbeddableTemplate(String template) {
+ private void createSubclassTemplate(String template) {
if(template.trim().length() == 0) {
return;
}
if(configuration != null) {
- configuration.setEmbeddableTemplate(template);
+ configuration.setTemplate(template);
}
}
- private void createEmbeddableSuperclassTemplate(String template) {
+ private void createSuperclassTemplate(String template) {
if(template.trim().length() == 0) {
return;
}
if(configuration != null) {
- configuration.setEmbeddableSuperTemplate(template);
+ configuration.setSuperTemplate(template);
}
}
@@ -266,43 +235,17 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
}
}
- private void createSuperPkg(String data) {
- if(data.trim().length() == 0) {
- return;
- }
-
- if(configuration != null) {
- configuration.setSuperPkg(data);
- }
- }
-
- private void createEncoding(String data) {
+ private void createPkPropertiesTag(String data) {
if(data.trim().length() == 0) {
return;
}
if(configuration != null) {
- configuration.setEncoding(data);
- }
- }
-
- private void createDataMapTemplate(String data) {
- if(data.trim().length() == 0) {
- return;
- }
-
- if(configuration != null) {
- configuration.setQueryTemplate(data);
- }
- }
-
- private void createDataMapSuperclassTemplate(String data) {
- if(data.trim().length() == 0) {
- return;
- }
-
- if(configuration != null) {
- configuration.setQuerySuperTemplate(data);
+ if(data.equals(TRUE)) {
+ configuration.setCreatePKProperties(true);
+ } else {
+ configuration.setCreatePKProperties(false);
+ }
}
}
@@ -310,6 +253,8 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
configuration = new ClassGenerationAction();
loaderContext.addDataMapListener(dataMap -> {
configuration.setDataMap(dataMap);
+ configuration.resolveExcludeEntities();
+ configuration.resolveExcludeEmbeddables();
CgenConfigHandler.this.metaData.add(dataMap, configuration);
});
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
index 8d25cf1..fc23e50 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
@@ -23,6 +23,11 @@ import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.project.extension.BaseSaverDelegate;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
/**
* @since 4.1
*/
@@ -38,8 +43,26 @@ public class CgenSaverDelegate extends BaseSaverDelegate{
public Void visitDataMap(DataMap dataMap) {
ClassGenerationAction cgen = metaData.get(dataMap, ClassGenerationAction.class);
if(cgen != null){
+ resolveOutputDir(cgen);
encoder.nested(cgen, getParentDelegate());
}
return null;
}
+
+ private void resolveOutputDir(ClassGenerationAction classGenerationAction) {
+ Path prevPath = classGenerationAction.buildPath();
+ URL url = getBaseDirectory().getURL();
+ if(url != null) {
+ Path resourcePath = Paths.get(url.getPath());
+ if(Files.isRegularFile(resourcePath)) {
+ resourcePath = resourcePath.getParent();
+ }
+
+ if(prevPath != null && resourcePath.compareTo(prevPath) != 0) {
+ classGenerationAction.setRootPath(resourcePath);
+ Path relPath = resourcePath.relativize(prevPath);
+ classGenerationAction.setRelPath(relPath);
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/EmbeddableHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/EmbeddableHandler.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/EmbeddableHandler.java
deleted file mode 100644
index 4772348..0000000
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/EmbeddableHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.gen.xml;
-
-import org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler;
-import org.apache.cayenne.gen.ClassGenerationAction;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @since 4.1
- */
-public class EmbeddableHandler extends NamespaceAwareNestedTagHandler {
-
- private static final String EMBEDDABLE_TAG = "embeddable";
- private static final String EMBEDDABLE_NAME_TAG = "name";
-
- private ClassGenerationAction configuration;
-
- EmbeddableHandler(NamespaceAwareNestedTagHandler parentHandler, ClassGenerationAction configuration) {
- super(parentHandler);
- this.configuration = configuration;
- }
-
- @Override
- protected boolean processElement(String namespaceURI, String localName, Attributes attributes) throws SAXException {
- switch (localName) {
- case EMBEDDABLE_TAG:
- return true;
- }
-
- return false;
- }
-
- @Override
- protected void processCharData(String localName, String data) {
- switch (localName) {
- case EMBEDDABLE_NAME_TAG:
- createEmbeddableEntity(data);
- break;
- }
- }
-
- private void createEmbeddableEntity(String data) {
- if(data.trim().length() == 0) {
- return;
- }
-
- if(configuration != null) {
- configuration.loadEmbeddable(data);
- }
- }
-}
-
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/ObjEntityHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/ObjEntityHandler.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/ObjEntityHandler.java
deleted file mode 100644
index 593a002..0000000
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/ObjEntityHandler.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.gen.xml;
-
-import org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler;
-import org.apache.cayenne.gen.ClassGenerationAction;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @since 4.1
- */
-public class ObjEntityHandler extends NamespaceAwareNestedTagHandler {
-
- private static final String OBJENTITY_TAG = "objEntity";
- private static final String OBJENTITY_NAME_TAG = "name";
-
- private ClassGenerationAction configuration;
-
- ObjEntityHandler(NamespaceAwareNestedTagHandler parentHandler, ClassGenerationAction configuration) {
- super(parentHandler);
- this.configuration = configuration;
- }
-
- @Override
- protected boolean processElement(String namespaceURI, String localName, Attributes attributes) throws SAXException {
- switch (localName) {
- case OBJENTITY_TAG:
- return true;
- }
-
- return false;
- }
-
- @Override
- protected void processCharData(String localName, String data) {
- switch (localName) {
- case OBJENTITY_NAME_TAG:
- createObjEntity(data);
- break;
- }
- }
-
- private void createObjEntity(String data) {
- if(data.trim().length() == 0) {
- return;
- }
-
- if(configuration != null) {
- configuration.loadEntity(data);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-project/src/main/java/org/apache/cayenne/project/CompoundSaverDelegate.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/CompoundSaverDelegate.java b/cayenne-project/src/main/java/org/apache/cayenne/project/CompoundSaverDelegate.java
index 5ea7a29..4745e38 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/CompoundSaverDelegate.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/CompoundSaverDelegate.java
@@ -19,25 +19,15 @@
package org.apache.cayenne.project;
-import java.util.Collection;
-
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.map.Embeddable;
-import org.apache.cayenne.map.EmbeddableAttribute;
-import org.apache.cayenne.map.ObjAttribute;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.map.Procedure;
-import org.apache.cayenne.map.ProcedureParameter;
-import org.apache.cayenne.map.QueryDescriptor;
+import org.apache.cayenne.map.*;
import org.apache.cayenne.project.extension.SaverDelegate;
+import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.util.XMLEncoder;
+import java.util.Collection;
+
/**
* @since 4.1
*/
@@ -180,4 +170,14 @@ class CompoundSaverDelegate implements SaverDelegate {
public SaverDelegate getParentDelegate() {
return null;
}
+
+ @Override
+ public Resource getBaseDirectory() {
+ return null;
+ }
+
+ @Override
+ public void setBaseDirectory(Resource baseDirectory) {
+ delegates.forEach(d -> d.setBaseDirectory(baseDirectory));
+ }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
index 0d6af44..20e2328 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
@@ -97,6 +97,8 @@ public class FileProjectSaver implements ProjectSaver {
Collection<ConfigurationNode> nodes = project.getRootNode().acceptVisitor(saveableNodesGetter);
Collection<SaveUnit> units = new ArrayList<>(nodes.size());
+ delegate.setBaseDirectory(baseResource);
+
for(ConfigurationNode node : nodes) {
String targetLocation = nameMapper.configurationLocation(node);
Resource targetResource = baseResource.getRelativeResource(targetLocation);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-project/src/main/java/org/apache/cayenne/project/extension/BaseSaverDelegate.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/extension/BaseSaverDelegate.java b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/BaseSaverDelegate.java
index a9f45f2..adb5d94 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/extension/BaseSaverDelegate.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/BaseSaverDelegate.java
@@ -33,6 +33,7 @@ import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.Procedure;
import org.apache.cayenne.map.ProcedureParameter;
import org.apache.cayenne.map.QueryDescriptor;
+import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.util.XMLEncoder;
/**
@@ -46,6 +47,8 @@ public class BaseSaverDelegate implements SaverDelegate {
protected SaverDelegate parentDelegate;
+ protected Resource baseDirectory;
+
@Override
public Void visitDataChannelDescriptor(DataChannelDescriptor channelDescriptor) {
return null;
@@ -131,6 +134,16 @@ public class BaseSaverDelegate implements SaverDelegate {
return parentDelegate;
}
+ @Override
+ public Resource getBaseDirectory() {
+ return baseDirectory;
+ }
+
+ @Override
+ public void setBaseDirectory(Resource baseDirectory) {
+ this.baseDirectory = baseDirectory;
+ }
+
protected boolean isStandalone() {
return parentDelegate == null;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-project/src/main/java/org/apache/cayenne/project/extension/SaverDelegate.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/extension/SaverDelegate.java b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/SaverDelegate.java
index 4ed5c92..1a002fd 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/extension/SaverDelegate.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/SaverDelegate.java
@@ -20,6 +20,7 @@
package org.apache.cayenne.project.extension;
import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
+import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.util.XMLEncoder;
/**
@@ -42,4 +43,7 @@ public interface SaverDelegate extends ConfigurationNodeVisitor<Void> {
SaverDelegate getParentDelegate();
+ Resource getBaseDirectory();
+
+ void setBaseDirectory(Resource baseDirectory);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java b/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
index 08941b8..de280b4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
@@ -26,45 +26,20 @@ import org.apache.cayenne.Persistent;
import org.apache.cayenne.di.AdhocObjectFactory;
import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory;
import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
-import org.apache.cayenne.reflect.ArcProperty;
-import org.apache.cayenne.reflect.AttributeProperty;
-import org.apache.cayenne.reflect.PropertyVisitor;
-import org.apache.cayenne.reflect.ToManyProperty;
-import org.apache.cayenne.reflect.ToOneProperty;
+import org.apache.cayenne.reflect.*;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
+import javax.xml.parsers.*;
+import java.io.*;
import java.lang.reflect.Member;
import java.lang.reflect.Modifier;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
+import java.util.*;
import java.util.regex.Pattern;
/**
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
index 3bdf08b..1ab9f96 100644
--- a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
+++ b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
@@ -207,7 +207,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
* @since 4.1
*/
@Parameter(defaultValue = "false")
- private boolean createPKProperties;
+ private Boolean createPKProperties;
private transient Injector injector;
@@ -295,7 +295,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
injector.injectMembers(action);
- action.setDestDir(destDir);
+// action.setDestDir(destDir.toPath());
action.setEncoding(encoding != null ? encoding : action.getEncoding());
action.setMakePairs(makePairs != null ? makePairs : action.isMakePairs());
action.setArtifactsGenerationMode(mode != null ? mode : action.getArtifactsGenerationMode());
@@ -310,6 +310,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
action.setCreatePropertyNames(createPropertyNames != null ? createPropertyNames : action.isCreatePropertyNames());
action.setQueryTemplate(queryTemplate != null ? queryTemplate : action.getQueryTemplate());
action.setQuerySuperTemplate(querySuperTemplate != null ? querySuperTemplate : action.getQuerySuperTemplate());
+ action.setCreatePKProperties(createPKProperties != null ? createPKProperties : action.isCreatePropertyNames());
return action;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
index 97772de..1af72ba 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
@@ -19,64 +19,12 @@
package org.apache.cayenne.modeler;
-import org.apache.cayenne.modeler.action.AboutAction;
-import org.apache.cayenne.modeler.action.ActionManager;
-import org.apache.cayenne.modeler.action.CgenAction;
-import org.apache.cayenne.modeler.action.ConfigurePreferencesAction;
-import org.apache.cayenne.modeler.action.CopyAction;
-import org.apache.cayenne.modeler.action.CreateDataMapAction;
-import org.apache.cayenne.modeler.action.CreateDbEntityAction;
-import org.apache.cayenne.modeler.action.CreateEmbeddableAction;
-import org.apache.cayenne.modeler.action.CreateNodeAction;
-import org.apache.cayenne.modeler.action.CreateObjEntityAction;
-import org.apache.cayenne.modeler.action.CreateProcedureAction;
-import org.apache.cayenne.modeler.action.CreateQueryAction;
-import org.apache.cayenne.modeler.action.CutAction;
-import org.apache.cayenne.modeler.action.DbEntitySyncAction;
-import org.apache.cayenne.modeler.action.DocumentationAction;
-import org.apache.cayenne.modeler.action.ExitAction;
-import org.apache.cayenne.modeler.action.FindAction;
-import org.apache.cayenne.modeler.action.GenerateCodeAction;
-import org.apache.cayenne.modeler.action.GenerateDBAction;
-import org.apache.cayenne.modeler.action.ImportDataMapAction;
-import org.apache.cayenne.modeler.action.ImportEOModelAction;
-import org.apache.cayenne.modeler.action.InferRelationshipsAction;
-import org.apache.cayenne.modeler.action.MigrateAction;
-import org.apache.cayenne.modeler.action.NavigateBackwardAction;
-import org.apache.cayenne.modeler.action.NavigateForwardAction;
-import org.apache.cayenne.modeler.action.NewProjectAction;
-import org.apache.cayenne.modeler.action.ObjEntitySyncAction;
-import org.apache.cayenne.modeler.action.OpenProjectAction;
-import org.apache.cayenne.modeler.action.PasteAction;
-import org.apache.cayenne.modeler.action.ProjectAction;
-import org.apache.cayenne.modeler.action.RedoAction;
-import org.apache.cayenne.modeler.action.RemoveAction;
-import org.apache.cayenne.modeler.action.RevertAction;
-import org.apache.cayenne.modeler.action.SaveAction;
-import org.apache.cayenne.modeler.action.SaveAsAction;
-import org.apache.cayenne.modeler.action.ShowLogConsoleAction;
-import org.apache.cayenne.modeler.action.UndoAction;
-import org.apache.cayenne.modeler.action.ValidateAction;
+import org.apache.cayenne.modeler.action.*;
import org.apache.cayenne.modeler.action.dbimport.ReverseEngineeringToolMenuAction;
import org.apache.cayenne.modeler.dialog.LogConsole;
import org.apache.cayenne.modeler.dialog.welcome.WelcomeScreen;
import org.apache.cayenne.modeler.editor.EditorView;
-import org.apache.cayenne.modeler.event.DataMapDisplayEvent;
-import org.apache.cayenne.modeler.event.DataMapDisplayListener;
-import org.apache.cayenne.modeler.event.DataNodeDisplayEvent;
-import org.apache.cayenne.modeler.event.DataNodeDisplayListener;
-import org.apache.cayenne.modeler.event.DbEntityDisplayListener;
-import org.apache.cayenne.modeler.event.EmbeddableDisplayEvent;
-import org.apache.cayenne.modeler.event.EmbeddableDisplayListener;
-import org.apache.cayenne.modeler.event.EntityDisplayEvent;
-import org.apache.cayenne.modeler.event.MultipleObjectsDisplayEvent;
-import org.apache.cayenne.modeler.event.MultipleObjectsDisplayListener;
-import org.apache.cayenne.modeler.event.ObjEntityDisplayListener;
-import org.apache.cayenne.modeler.event.ProcedureDisplayEvent;
-import org.apache.cayenne.modeler.event.ProcedureDisplayListener;
-import org.apache.cayenne.modeler.event.QueryDisplayEvent;
-import org.apache.cayenne.modeler.event.QueryDisplayListener;
-import org.apache.cayenne.modeler.event.RecentFileListListener;
+import org.apache.cayenne.modeler.event.*;
import org.apache.cayenne.modeler.pref.ComponentGeometry;
import org.apache.cayenne.modeler.util.ModelerUtil;
import org.apache.cayenne.modeler.util.RecentFileMenu;
@@ -84,28 +32,8 @@ import org.apache.cayenne.swing.components.MainToolBar;
import org.apache.cayenne.swing.components.TopBorder;
import org.slf4j.LoggerFactory;
-import javax.swing.Action;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.JTextField;
-import javax.swing.JToolBar;
-import java.awt.AWTEvent;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.Toolkit;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.KeyEvent;
@@ -236,7 +164,6 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen
toolMenu.add(getAction(InferRelationshipsAction.class).buildMenu());
toolMenu.add(getAction(ImportEOModelAction.class).buildMenu());
toolMenu.addSeparator();
- toolMenu.add(getAction(CgenAction.class).buildMenu());
toolMenu.add(getAction(GenerateCodeAction.class).buildMenu());
toolMenu.add(getAction(GenerateDBAction.class).buildMenu());
toolMenu.add(getAction(MigrateAction.class).buildMenu());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CgenAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CgenAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CgenAction.java
deleted file mode 100644
index 9dbd71d..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CgenAction.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.cayenne.modeler.action;
-
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.dialog.codegen.cgen.CgenGlobalController;
-import org.apache.cayenne.modeler.util.CayenneAction;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.awt.event.ActionEvent;
-
-public class CgenAction extends CayenneAction{
-
- private static Logger logObj = LoggerFactory.getLogger(CgenAction.class);
-
- public CgenAction(Application application) {
- super(getActionName(), application);
- }
-
- public static String getActionName(){
- return "Generate All Classes";
- }
-
- @Override
- public void performAction(ActionEvent e) {
- new CgenGlobalController(getApplication().getFrameController()).startup();
- }
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
index d2ad35f..c476fff 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
@@ -167,8 +167,6 @@ public class DefaultActionManager implements ActionManager {
registerAction(new LinkDataMapAction(application));
registerAction(new LinkDataMapsAction(application));
-
- registerAction(new CgenAction((application)));
}
private void initActions() {
@@ -197,8 +195,7 @@ public class DefaultActionManager implements ActionManager {
GenerateCodeAction.class.getName(),
GenerateDBAction.class.getName(),
PasteAction.class.getName(),
- ReverseEngineeringToolMenuAction.class.getName(),
- CgenAction.class.getName()));
+ ReverseEngineeringToolMenuAction.class.getName()));
DATA_NODE_ACTIONS = new HashSet<>(DOMAIN_ACTIONS);
DATA_NODE_ACTIONS.addAll(Arrays.asList(
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
index 3e61094..b9d1c5b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
@@ -26,13 +26,6 @@ import org.apache.cayenne.swing.ImageRendererColumn;
import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.swing.TableBindingBuilder;
-import javax.swing.*;
-import java.awt.*;
-import java.util.*;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTable;
@@ -95,7 +88,7 @@ public class ClassesTabController extends CayenneController {
builder.bindToAction(view.getCheckAll(), "checkAllAction()");
TableBindingBuilder tableBuilder = new TableBindingBuilder(builder);
-
+
tableBuilder.addColumn(
"",
"parent.setCurrentClass(#item), selected",
@@ -104,7 +97,7 @@ public class ClassesTabController extends CayenneController {
Boolean.TRUE);
tableBuilder.addColumn(
- "Entity",
+ "Class",
"parent.getItemName(#item)",
JLabel.class,
false,
@@ -207,4 +200,4 @@ public class ClassesTabController extends CayenneController {
}
return true;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
index 3c6e53d..b1d3bd9 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
@@ -22,12 +22,13 @@ package org.apache.cayenne.modeler.dialog.codegen;
import org.apache.cayenne.map.DataMap;
import javax.swing.BoxLayout;
-import javax.swing.*;
-import javax.swing.border.EmptyBorder;
-import java.awt.*;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import java.awt.BorderLayout;
import java.awt.Component;
@@ -137,4 +138,4 @@ public class ClassesTabPanel extends JPanel {
public JCheckBox getCheckAll() {
return checkAll;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
index 4d5335f..9e3897e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
@@ -78,4 +78,4 @@ public class ClientModeController extends StandardModeController {
protected ClassGenerationAction newGenerator() {
return new ClientClassGenerationAction();
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
index f4395e9..55817a6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
@@ -113,7 +113,7 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase {
}
label = label.concat("; ");
-
+
int sizeEmb = getSelectedEmbeddablesSize();
if (sizeEmb == 0) {
@@ -166,4 +166,4 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase {
view.dispose();
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
index 6e6084c..91d87e4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
@@ -27,10 +27,14 @@ import org.apache.cayenne.modeler.util.CellRenderers;
import org.apache.cayenne.validation.ValidationFailure;
import org.apache.cayenne.validation.ValidationResult;
-import javax.swing.*;
-import java.awt.*;
-import java.util.*;
+import javax.swing.Icon;
+import javax.swing.JLabel;
+import java.awt.Component;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.function.Predicate;
/**
@@ -212,7 +216,7 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
for (Object classObj : classes) {
if (classObj instanceof Embeddable
&& selectedEmbeddables.contains(((Embeddable) classObj)
- .getClassName())) {
+ .getClassName())) {
selected.add((Embeddable) classObj);
}
}
@@ -262,14 +266,14 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
public String getProblem(Object obj) {
String name = null;
-
+
if (obj instanceof ObjEntity) {
name = ((ObjEntity) obj).getName();
}
else if (obj instanceof Embeddable) {
name = ((Embeddable) obj).getClassName();
}
-
+
if (validation == null) {
return null;
}
@@ -373,4 +377,4 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
return labelIcon;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
index c6d6e69..2bb635f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
@@ -22,8 +22,19 @@ package org.apache.cayenne.modeler.dialog.codegen;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.swing.components.TopBorder;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.ScrollPaneConstants;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
/**
*/
@@ -85,4 +96,4 @@ public class CodeGeneratorDialog extends JDialog {
public JLabel getClassesCount() {
return classesCount;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
index 4f48854..bb87006 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
@@ -28,13 +28,22 @@ import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.util.Util;
-import javax.swing.*;
-import java.awt.*;
-import java.util.*;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import java.awt.Component;
import java.util.List;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Set;
+import java.util.TreeMap;
-import static org.apache.cayenne.modeler.CodeTemplateManager.*;
+import static org.apache.cayenne.modeler.CodeTemplateManager.SINGLE_SERVER_CLASS;
+import static org.apache.cayenne.modeler.CodeTemplateManager.STANDARD_SERVER_SUBCLASS;
+import static org.apache.cayenne.modeler.CodeTemplateManager.STANDARD_SERVER_SUPERCLASS;
import static org.apache.cayenne.modeler.dialog.pref.PreferenceDialog.TEMPLATES_KEY;
/**
@@ -223,4 +232,4 @@ public class CustomModeController extends GeneratorController {
getApplication().getInjector().injectMembers(action);
return action;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
index 73f89f7..406e1d2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
@@ -29,8 +29,6 @@ import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
-import javax.swing.*;
-import java.awt.*;
public class CustomModePanel extends GeneratorControllerPanel {
@@ -58,11 +56,6 @@ public class CustomModePanel extends GeneratorControllerPanel {
this.manageTemplatesLink = new ActionLink("Customize Templates...");
manageTemplatesLink.setFont(manageTemplatesLink.getFont().deriveFont(10f));
- pairs.addChangeListener(e -> {
- superclassTemplate.setEnabled(pairs.isSelected());
- overwrite.setEnabled(!pairs.isSelected());
- });
-
// assemble
FormLayout layout = new FormLayout(
"right:77dlu, 1dlu, fill:100:grow, 1dlu, left:80dlu, 1dlu", "");
@@ -141,4 +134,4 @@ public class CustomModePanel extends GeneratorControllerPanel {
public JCheckBox getCreatePKProperties() {
return createPKProperties;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
index c695684..db8c872 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
@@ -22,7 +22,13 @@ package org.apache.cayenne.modeler.dialog.codegen;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.gen.ArtifactsGenerationMode;
import org.apache.cayenne.gen.ClassGenerationAction;
-import org.apache.cayenne.map.*;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.Embeddable;
+import org.apache.cayenne.map.EmbeddableAttribute;
+import org.apache.cayenne.map.EmbeddedAttribute;
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.dialog.pref.GeneralPreferences;
import org.apache.cayenne.modeler.pref.DataMapDefaults;
@@ -36,15 +42,22 @@ import org.apache.cayenne.validation.SimpleValidationFailure;
import org.apache.cayenne.validation.ValidationFailure;
import org.apache.cayenne.validation.ValidationResult;
-import javax.swing.*;
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.JTextField;
import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
import java.util.function.Predicate;
import java.util.prefs.Preferences;
/**
* A mode-specific part of the code generation dialog.
- *
+ *
*/
public abstract class GeneratorController extends CayenneController {
@@ -149,7 +162,6 @@ public abstract class GeneratorController extends CayenneController {
selectedEntities.removeIf(ObjEntity::isGeneric);
Collection<ClassGenerationAction> generators = new ArrayList<>();
- Collection<StandardPanelComponent> dataMapLines = ((GeneratorControllerPanel) getView()).getDataMapLines();
for (DataMap map : getParentController().getDataMaps()) {
try {
ClassGenerationAction generator = newGenerator();
@@ -180,7 +192,7 @@ public abstract class GeneratorController extends CayenneController {
}
- generator.setDestDir(outputDir);
+// generator.setDestDir(outputDir);
generator.setMakePairs(true);
generator.setForce(true);
@@ -547,4 +559,4 @@ public abstract class GeneratorController extends CayenneController {
}
return path.toString();
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorControllerPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorControllerPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorControllerPanel.java
index bb02345..49cbc4b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorControllerPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorControllerPanel.java
@@ -27,7 +27,7 @@ import java.util.Collection;
/**
* A generic panel that is a superclass of generator panels, defining common fields.
- *
+ *
*/
public class GeneratorControllerPanel extends JPanel {
@@ -52,4 +52,4 @@ public class GeneratorControllerPanel extends JPanel {
public Collection<StandardPanelComponent> getDataMapLines() {
return dataMapLines;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
index 4e681ae..5d7594f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
@@ -26,7 +26,7 @@ import org.apache.cayenne.pref.PreferenceDetail;
import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.util.Util;
-import java.awt.*;
+import java.awt.Component;
import java.awt.Dimension;
import java.util.Collection;
import java.util.HashMap;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabPanel.java
index 130741d..854e2d6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabPanel.java
@@ -62,4 +62,4 @@ public class GeneratorTabPanel extends JPanel {
public JComboBox getGenerationMode() {
return generationMode;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
index f11ade8..b0650d8 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.modeler.pref.DataMapDefaults;
-import java.awt.*;
+import java.awt.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.TreeMap;
@@ -38,7 +38,7 @@ public class StandardModeController extends GeneratorController {
}
protected void createDefaults() {
- TreeMap<DataMap, DataMapDefaults> treeMap = new TreeMap<DataMap, DataMapDefaults>();
+ TreeMap<DataMap, DataMapDefaults> treeMap = new TreeMap<>();
ArrayList<DataMap> dataMaps = (ArrayList<DataMap>) getParentController().getDataMaps();
for (DataMap dataMap : dataMaps) {
@@ -79,4 +79,4 @@ public class StandardModeController extends GeneratorController {
public Collection<ClassGenerationAction> createGenerator() {
return super.createGenerator();
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
index 1f10ffb..cbb3f35 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
@@ -22,7 +22,7 @@ package org.apache.cayenne.modeler.dialog.codegen;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;
-import java.awt.*;
+import java.awt.BorderLayout;
public class StandardModePanel extends GeneratorControllerPanel {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardPanelComponent.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardPanelComponent.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardPanelComponent.java
index b4794f3..425a0f2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardPanelComponent.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardPanelComponent.java
@@ -78,4 +78,4 @@ public class StandardPanelComponent extends JComponent {
return superclassPackage;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6a43436a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/cgen/CgenDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/cgen/CgenDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/cgen/CgenDialog.java
deleted file mode 100644
index b81cc73..0000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/cgen/CgenDialog.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.modeler.dialog.codegen.cgen;
-
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.swing.components.TopBorder;
-
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.ScrollPaneConstants;
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Container;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-
-/**
- * @since 4.1
- */
-public class CgenDialog extends JDialog {
-
- protected JPanel panel;
- protected JButton cancelButton;
-
- CgenDialog(Component generatorPanel) {
- super(Application.getFrame());
-
- this.panel = new JPanel();
- this.panel.setFocusable(false);
-
- this.cancelButton = new JButton("Cancel");
- JScrollPane scrollPane = new JScrollPane(
- generatorPanel,
- ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
- ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- scrollPane.setPreferredSize(new Dimension(900, 550));
- JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
- buttons.setBorder(TopBorder.create());
- buttons.add(Box.createHorizontalStrut(50));
- buttons.add(cancelButton);
-
- panel.add(scrollPane);
-
- Container contentPane = getContentPane();
- contentPane.setLayout(new BorderLayout());
- contentPane.add(panel, BorderLayout.CENTER);
- contentPane.add(buttons, BorderLayout.SOUTH);
-
- setTitle("Cgen Global Config");
- }
-
- public JButton getCancelButton() {
- return cancelButton;
- }
-}