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 2019/09/25 10:34:56 UTC

[cayenne] branch master updated (73a101f -> 6a4c15a)

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git.


    from 73a101f  CAY-2616 Modeler: Wrong handling of path with spaces
     new 044081e  cleanup
     new 6a4c15a  Sort tables and columns in DBImport DB schema view

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../dbsync/reverse/dbimport/FilterContainer.java   |  37 ++++----
 .../dbsync/reverse/dbimport/IncludeTable.java      |  15 ++--
 .../reverse/dbimport/ReverseEngineering.java       |   9 +-
 .../dbsync/reverse/dbimport/SchemaContainer.java   |   8 +-
 .../modeler/editor/cgen/GeneratorController.java   | 100 ++++-----------------
 .../editor/dbimport/DatabaseSchemaLoader.java      |  20 +++++
 6 files changed, 72 insertions(+), 117 deletions(-)


[cayenne] 02/02: Sort tables and columns in DBImport DB schema view

Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 6a4c15a96cd8e84e9b18986a54c5fdc6431284fe
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Wed Sep 25 13:22:52 2019 +0300

    Sort tables and columns in DBImport DB schema view
---
 .../dbsync/reverse/dbimport/FilterContainer.java   | 37 +++++++++++-----------
 .../dbsync/reverse/dbimport/IncludeTable.java      | 15 +++++----
 .../reverse/dbimport/ReverseEngineering.java       |  9 +++---
 .../dbsync/reverse/dbimport/SchemaContainer.java   |  8 ++---
 .../editor/dbimport/DatabaseSchemaLoader.java      | 20 ++++++++++++
 5 files changed, 55 insertions(+), 34 deletions(-)

diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
index b897efc..becd72b 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
@@ -21,9 +21,8 @@ package org.apache.cayenne.dbsync.reverse.dbimport;
 
 import org.apache.cayenne.util.Util;
 
-import java.util.Collection;
-import java.util.LinkedList;
-
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @since 4.0.
@@ -32,19 +31,19 @@ public abstract class FilterContainer {
 
     private String name;
 
-    private final Collection<IncludeTable> includeTableCollection = new LinkedList<>();
+    private final List<IncludeTable> includeTableCollection = new ArrayList<>();
 
-    private final Collection<ExcludeTable> excludeTableCollection = new LinkedList<>();
+    private final List<ExcludeTable> excludeTableCollection = new ArrayList<>();
 
-    private final Collection<IncludeColumn> includeColumnCollection = new LinkedList<>();
+    private final List<IncludeColumn> includeColumnCollection = new ArrayList<>();
 
-    private final Collection<ExcludeColumn> excludeColumnCollection = new LinkedList<>();
+    private final List<ExcludeColumn> excludeColumnCollection = new ArrayList<>();
 
-    private final Collection<IncludeProcedure> includeProcedureCollection = new LinkedList<>();
+    private final List<IncludeProcedure> includeProcedureCollection = new ArrayList<>();
 
-    private final Collection<ExcludeProcedure> excludeProcedureCollection = new LinkedList<>();
+    private final List<ExcludeProcedure> excludeProcedureCollection = new ArrayList<>();
 
-    private final Collection<ExcludeRelationship> excludeRelationshipCollection = new LinkedList<>();
+    private final List<ExcludeRelationship> excludeRelationshipCollection = new ArrayList<>();
 
     public FilterContainer() {
     }
@@ -71,34 +70,34 @@ public abstract class FilterContainer {
         }
     }
 
-    public Collection<IncludeTable> getIncludeTables() {
+    public List<IncludeTable> getIncludeTables() {
         return includeTableCollection;
     }
 
-    public Collection<ExcludeTable> getExcludeTables() {
+    public List<ExcludeTable> getExcludeTables() {
         return excludeTableCollection;
     }
 
-    public Collection<IncludeColumn> getIncludeColumns() {
+    public List<IncludeColumn> getIncludeColumns() {
         return includeColumnCollection;
     }
 
-    public Collection<ExcludeColumn> getExcludeColumns() {
+    public List<ExcludeColumn> getExcludeColumns() {
         return excludeColumnCollection;
     }
 
-    public Collection<IncludeProcedure> getIncludeProcedures() {
+    public List<IncludeProcedure> getIncludeProcedures() {
         return includeProcedureCollection;
     }
 
-    public Collection<ExcludeProcedure> getExcludeProcedures() {
+    public List<ExcludeProcedure> getExcludeProcedures() {
         return excludeProcedureCollection;
     }
 
     /**
      * @since 4.1
      */
-    public Collection<ExcludeRelationship> getExcludeRelationship() {
+    public List<ExcludeRelationship> getExcludeRelationship() {
         return excludeRelationshipCollection;
     }
 
@@ -193,7 +192,7 @@ public abstract class FilterContainer {
             && includeProcedureCollection.isEmpty() && excludeProcedureCollection.isEmpty() && excludeRelationshipCollection.isEmpty();
     }
 
-    static boolean isBlank(Collection<?> collection) {
+    static boolean isBlank(List<?> collection) {
         return collection == null || collection.isEmpty();
     }
 
@@ -214,7 +213,7 @@ public abstract class FilterContainer {
         return res;
     }
 
-    protected void appendCollection(StringBuilder res, String prefix, Collection<? extends PatternParam> collection) {
+    protected void appendCollection(StringBuilder res, String prefix, List<? extends PatternParam> collection) {
         if (!isBlank(collection)) {
             for (PatternParam item : collection) {
                 item.toString(res, prefix);
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/IncludeTable.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/IncludeTable.java
index 94706c6..a1f0b4a 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/IncludeTable.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/IncludeTable.java
@@ -23,19 +23,20 @@ import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.util.XMLEncoder;
 import org.apache.cayenne.util.XMLSerializable;
 
+import java.util.ArrayList;
 import java.util.Collection;
-import java.util.LinkedList;
+import java.util.List;
 
 /**
  * @since 4.0.
  */
 public class IncludeTable extends PatternParam implements XMLSerializable {
 
-    private final Collection<IncludeColumn> includeColumns = new LinkedList<>();
+    private final List<IncludeColumn> includeColumns = new ArrayList<>();
 
-    private final Collection<ExcludeColumn> excludeColumns = new LinkedList<>();
+    private final List<ExcludeColumn> excludeColumns = new ArrayList<>();
 
-    private final Collection<ExcludeRelationship> excludeRelationship = new LinkedList<>();
+    private final List<ExcludeRelationship> excludeRelationship = new ArrayList<>();
 
     public IncludeTable() {
     }
@@ -54,7 +55,7 @@ public class IncludeTable extends PatternParam implements XMLSerializable {
         }
     }
 
-    public Collection<IncludeColumn> getIncludeColumns() {
+    public List<IncludeColumn> getIncludeColumns() {
         return includeColumns;
     }
 
@@ -62,7 +63,7 @@ public class IncludeTable extends PatternParam implements XMLSerializable {
         this.includeColumns.addAll(includeColumns);
     }
 
-    public Collection<ExcludeColumn> getExcludeColumns() {
+    public List<ExcludeColumn> getExcludeColumns() {
         return excludeColumns;
     }
 
@@ -73,7 +74,7 @@ public class IncludeTable extends PatternParam implements XMLSerializable {
     /**
      * @since 4.1
      */
-    public Collection<ExcludeRelationship> getExcludeRelationship() {
+    public List<ExcludeRelationship> getExcludeRelationship() {
         return excludeRelationship;
     }
 
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
index b9059f3..e1eb23c 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/ReverseEngineering.java
@@ -20,9 +20,10 @@
 package org.apache.cayenne.dbsync.reverse.dbimport;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.LinkedList;
+import java.util.List;
 
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.dbsync.xml.DbImportExtension;
@@ -118,9 +119,9 @@ public class ReverseEngineering extends SchemaContainer implements Serializable,
      * <li> "SYNONYM"
      * </ul>
      */
-    private final Collection<String> tableTypes = new LinkedList<>();
+    private final List<String> tableTypes = new ArrayList<>();
 
-    private final Collection<Catalog> catalogCollection = new LinkedList<>();
+    private final List<Catalog> catalogCollection = new ArrayList<>();
 
     public ReverseEngineering() {
     }
@@ -160,7 +161,7 @@ public class ReverseEngineering extends SchemaContainer implements Serializable,
         this.skipPrimaryKeyLoading = skipPrimaryKeyLoading;
     }
 
-    public Collection<Catalog> getCatalogs() {
+    public List<Catalog> getCatalogs() {
         return catalogCollection;
     }
 
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/SchemaContainer.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/SchemaContainer.java
index 05b8388..6c90767 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/SchemaContainer.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/SchemaContainer.java
@@ -19,17 +19,17 @@
 
 package org.apache.cayenne.dbsync.reverse.dbimport;
 
-import java.util.Collection;
-import java.util.LinkedList;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @since 4.0
  */
 public abstract class SchemaContainer extends FilterContainer {
 
-    private final Collection<Schema> schemaCollection = new LinkedList<>();
+    private final List<Schema> schemaCollection = new ArrayList<>();
 
-    public Collection<Schema> getSchemas() {
+    public List<Schema> getSchemas() {
         return schemaCollection;
     }
 
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
index 91aa219..31d7aa7 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
@@ -25,6 +25,7 @@ import java.sql.DatabaseMetaData;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.List;
 
 import org.apache.cayenne.dba.DbAdapter;
@@ -33,6 +34,7 @@ import org.apache.cayenne.dbsync.reverse.dbimport.FilterContainer;
 import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
 import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
 import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
+import org.apache.cayenne.dbsync.reverse.dbimport.PatternParam;
 import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
 import org.apache.cayenne.modeler.ClassLoadingService;
@@ -55,9 +57,26 @@ public class DatabaseSchemaLoader {
         try (Connection connection = connectionInfo.makeDataSource(loadingService).getConnection()) {
             processCatalogs(connection, dbAdapter);
         }
+
+        sort();
         return databaseReverseEngineering;
     }
 
+    private void sort() {
+        databaseReverseEngineering.getCatalogs().forEach(catalog -> {
+            catalog.getSchemas().forEach(this::sort);
+            sort(catalog);
+        });
+        sort(databaseReverseEngineering);
+    }
+
+    private void sort(FilterContainer filterContainer) {
+        Comparator<PatternParam> comparator = Comparator.comparing(PatternParam::getPattern);
+        filterContainer.getIncludeTables().sort(comparator);
+        filterContainer.getIncludeTables().forEach(table -> table.getIncludeColumns().sort(comparator));
+        filterContainer.getIncludeProcedures().sort(comparator);
+    }
+
     private void processCatalogs(Connection connection, DbAdapter dbAdapter) throws SQLException {
         try (ResultSet rsCatalog = connection.getMetaData().getCatalogs()) {
             boolean hasCatalogs = false;
@@ -168,6 +187,7 @@ public class DatabaseSchemaLoader {
                 }
             }
         }
+        sort();
         return databaseReverseEngineering;
     }
 


[cayenne] 01/02: cleanup

Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 044081ebd1f51b7998e34faf6f27307300e9fd4d
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Fri Sep 20 22:37:17 2019 +0300

    cleanup
---
 .../modeler/editor/cgen/GeneratorController.java   | 100 ++++-----------------
 1 file changed, 17 insertions(+), 83 deletions(-)

diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
index ec8e19f..ec782f3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
@@ -99,33 +99,29 @@ public abstract class GeneratorController extends CayenneController {
     }
 
     private ValidationFailure validateEmbeddableAttribute(EmbeddableAttribute attribute) {
-        String name = attribute.getEmbeddable().getClassName();
+        return validateAttribute(attribute.getEmbeddable().getClassName(), attribute.getName(), attribute.getType());
+    }
 
-        ValidationFailure emptyName = BeanValidationFailure.validateNotEmpty(name, "attribute.name",
-                attribute.getName());
+    private ValidationFailure validateAttribute(String objectName, String attributeName, String attributeType) {
+        ValidationFailure emptyName = BeanValidationFailure.validateNotEmpty(objectName, "attribute.name",
+                attributeName);
         if (emptyName != null) {
             return emptyName;
         }
 
-        ValidationFailure badName = CodeValidationUtil.validateJavaIdentifier(name, "attribute.name",
-                attribute.getName());
+        ValidationFailure badName = CodeValidationUtil.validateJavaIdentifier(objectName, "attribute.name",
+                attributeName);
         if (badName != null) {
             return badName;
         }
 
-        ValidationFailure emptyType = BeanValidationFailure.validateNotEmpty(name, "attribute.type",
-                attribute.getType());
+        ValidationFailure emptyType = BeanValidationFailure.validateNotEmpty(objectName, "attribute.type",
+                attributeType);
         if (emptyType != null) {
             return emptyType;
         }
 
-        ValidationFailure badType = BeanValidationFailure.validateJavaClassName(name, "attribute.type",
-                attribute.getType());
-        if (badType != null) {
-            return badType;
-        }
-
-        return null;
+        return BeanValidationFailure.validateJavaClassName(objectName, "attribute.type", attributeType);
     }
 
     private ValidationFailure validateEmbeddable(Embeddable embeddable) {
@@ -138,13 +134,7 @@ public abstract class GeneratorController extends CayenneController {
             return emptyClass;
         }
 
-        ValidationFailure badClass = BeanValidationFailure.validateJavaClassName(name, "className",
-                embeddable.getClassName());
-        if (badClass != null) {
-            return badClass;
-        }
-
-        return null;
+        return BeanValidationFailure.validateJavaClassName(name, "className", embeddable.getClassName());
     }
 
     public void validateEntity(ValidationResult validationBuffer, ObjEntity entity, boolean clientValidation) {
@@ -204,45 +194,14 @@ public abstract class GeneratorController extends CayenneController {
         }
 
         if (entity.getSuperClassName() != null) {
-            ValidationFailure badSuperClass = BeanValidationFailure.validateJavaClassName(name, "superClassName",
-                    entity.getSuperClassName());
-            if (badSuperClass != null) {
-                return badSuperClass;
-            }
+            return BeanValidationFailure.validateJavaClassName(name, "superClassName", entity.getSuperClassName());
         }
 
         return null;
     }
 
     private ValidationFailure validateAttribute(ObjAttribute attribute) {
-
-        String name = attribute.getEntity().getName();
-
-        ValidationFailure emptyName = BeanValidationFailure.validateNotEmpty(name, "attribute.name",
-                attribute.getName());
-        if (emptyName != null) {
-            return emptyName;
-        }
-
-        ValidationFailure badName = CodeValidationUtil.validateJavaIdentifier(name, "attribute.name",
-                attribute.getName());
-        if (badName != null) {
-            return badName;
-        }
-
-        ValidationFailure emptyType = BeanValidationFailure.validateNotEmpty(name, "attribute.type",
-                attribute.getType());
-        if (emptyType != null) {
-            return emptyType;
-        }
-
-        ValidationFailure badType = BeanValidationFailure.validateJavaClassName(name, "attribute.type",
-                attribute.getType());
-        if (badType != null) {
-            return badType;
-        }
-
-        return null;
+        return validateAttribute(attribute.getEntity().getName(), attribute.getName(), attribute.getType());
     }
 
     private ValidationFailure validateEmbeddedAttribute(ObjAttribute attribute) {
@@ -269,29 +228,7 @@ public abstract class GeneratorController extends CayenneController {
             return badEmbeddedName;
         }
 
-        ValidationFailure emptyName = BeanValidationFailure.validateNotEmpty(name, "attribute.name", attr);
-        if (emptyName != null) {
-            return emptyName;
-        }
-
-        ValidationFailure badName = CodeValidationUtil.validateJavaIdentifier(name, "attribute.name", attr);
-        if (badName != null) {
-            return badName;
-        }
-
-        ValidationFailure emptyType = BeanValidationFailure.validateNotEmpty(name, "attribute.type",
-                attribute.getType());
-        if (emptyType != null) {
-            return emptyType;
-        }
-
-        ValidationFailure badType = BeanValidationFailure.validateJavaClassName(name, "attribute.type",
-                attribute.getType());
-        if (badType != null) {
-            return badType;
-        }
-
-        return null;
+        return validateAttribute(name, attr, attribute.getType());
     }
 
     private ValidationFailure validateRelationship(ObjRelationship relationship, boolean clientValidation) {
@@ -328,11 +265,8 @@ public abstract class GeneratorController extends CayenneController {
                     return emptyClass;
                 }
 
-                ValidationFailure badClass = BeanValidationFailure.validateJavaClassName(name,
-                        "relationship.targetEntity.className", targetEntity.getClassName());
-                if (badClass != null) {
-                    return badClass;
-                }
+                return BeanValidationFailure.validateJavaClassName(name, "relationship.targetEntity.className",
+                        targetEntity.getClassName());
             }
         }
 
@@ -342,7 +276,7 @@ public abstract class GeneratorController extends CayenneController {
     /**
      * Returns a predicate for default entity selection in a given mode.
      */
-    public Predicate getDefaultClassFilter() {
+    public Predicate<Object> getDefaultClassFilter() {
         return object -> {
             if (object instanceof ObjEntity) {
                 return getParentController().getProblem(((ObjEntity) object).getName()) == null;