cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aadamc...@apache.org
Subject cayenne git commit: CAY-2116 Split schema synchronization code in a separate module
Date Sun, 02 Oct 2016 18:50:30 GMT
Repository: cayenne
Updated Branches:
  refs/heads/master 413c72045 -> 39b70d1bf


CAY-2116 Split schema synchronization code in a separate module

* naming classes cleanup and docs


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/39b70d1b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/39b70d1b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/39b70d1b

Branch: refs/heads/master
Commit: 39b70d1bfa3cec6f91f0889df0da347f0c851485
Parents: 413c720
Author: Andrus Adamchik <andrus@objectstyle.com>
Authored: Sun Oct 2 16:04:12 2016 +0300
Committer: Andrus Adamchik <andrus@objectstyle.com>
Committed: Sun Oct 2 21:50:13 2016 +0300

----------------------------------------------------------------------
 .../dbsync/naming/DeduplicationVisitor.java     | 36 ++++++++++----------
 .../cayenne/dbsync/naming/NameBuilder.java      | 22 +++++++-----
 2 files changed, 31 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/39b70d1b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
index f809fd3..09d2d97 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DeduplicationVisitor.java
@@ -44,12 +44,12 @@ import java.util.Objects;
 // TODO: swap inner classes for lambdas when we are on java 8
 class DeduplicationVisitor implements ConfigurationNodeVisitor<String> {
 
-    private ConfigurationNode namingContext;
+    private ConfigurationNode parent;
     private String baseName;
     private String dupesPattern;
 
-    DeduplicationVisitor(ConfigurationNode context, String baseName, String dupesPattern)
{
-        this.namingContext = context;
+    DeduplicationVisitor(ConfigurationNode parent, String baseName, String dupesPattern)
{
+        this.parent = parent;
         this.baseName = Objects.requireNonNull(baseName);
         this.dupesPattern = Objects.requireNonNull(dupesPattern);
     }
@@ -66,7 +66,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
             @Override
             public boolean isNameInUse(String name) {
 
-                DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor) namingContext;
+                DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor) parent;
                 for (DataNodeDescriptor dataNodeDescriptor : dataChannelDescriptor.getNodeDescriptors())
{
                     if (dataNodeDescriptor.getName().equals(name)) {
                         return true;
@@ -86,12 +86,12 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
 
                 // null context is a situation when DataMap is a
                 // top level object of the project
-                if (namingContext == null) {
+                if (parent == null) {
                     return false;
                 }
 
-                if (namingContext instanceof DataChannelDescriptor) {
-                    DataChannelDescriptor domain = (DataChannelDescriptor) namingContext;
+                if (parent instanceof DataChannelDescriptor) {
+                    DataChannelDescriptor domain = (DataChannelDescriptor) parent;
                     return domain.getDataMap(name) != null;
                 }
                 return false;
@@ -104,7 +104,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
         return resolve(new Predicate() {
             @Override
             public boolean isNameInUse(String name) {
-                DataMap map = (DataMap) namingContext;
+                DataMap map = (DataMap) parent;
                 return map.getObjEntity(name) != null;
             }
         });
@@ -115,7 +115,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
         return resolve(new Predicate() {
             @Override
             public boolean isNameInUse(String name) {
-                DataMap map = (DataMap) namingContext;
+                DataMap map = (DataMap) parent;
                 return map.getDbEntity(name) != null;
             }
         });
@@ -126,7 +126,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
         return resolve(new Predicate() {
             @Override
             public boolean isNameInUse(String name) {
-                DataMap map = (DataMap) namingContext;
+                DataMap map = (DataMap) parent;
                 return map.getEmbeddable(map.getNameWithDefaultPackage(name)) != null;
             }
         });
@@ -137,7 +137,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
         return resolve(new Predicate() {
             @Override
             public boolean isNameInUse(String name) {
-                Embeddable emb = (Embeddable) namingContext;
+                Embeddable emb = (Embeddable) parent;
                 return emb.getAttribute(name) != null;
             }
         });
@@ -168,7 +168,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
         return resolve(new Predicate() {
             @Override
             public boolean isNameInUse(String name) {
-                DataMap map = (DataMap) namingContext;
+                DataMap map = (DataMap) parent;
                 return map.getProcedure(name) != null;
             }
         });
@@ -183,7 +183,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
                 // it doesn't matter if we create a parameter with a duplicate name.. parameters
are positional anyway..
                 // still try to use unique names for visual consistency
 
-                Procedure procedure = (Procedure) namingContext;
+                Procedure procedure = (Procedure) parent;
                 for (ProcedureParameter parameter : procedure.getCallParameters()) {
                     if (name.equals(parameter.getName())) {
                         return true;
@@ -200,7 +200,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
         return resolve(new Predicate() {
             @Override
             public boolean isNameInUse(String name) {
-                DataMap map = (DataMap) namingContext;
+                DataMap map = (DataMap) parent;
                 return map.getQueryDescriptor(name) != null;
             }
         });
@@ -212,11 +212,11 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
             @Override
             public boolean isNameInUse(String name) {
 
-                if (namingContext == null) {
+                if (parent == null) {
                     return false;
                 }
 
-                DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor) namingContext;
+                DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor) parent;
                 for (DataMap dataMap : dataChannelDescriptor.getDataMaps()) {
                     if (dataMap != null && dataMap.getReverseEngineering() != null
&&
                             dataMap.getReverseEngineering().getName() != null
@@ -244,7 +244,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
             @Override
             public boolean isNameInUse(String name) {
 
-                DbEntity entity = (DbEntity) namingContext;
+                DbEntity entity = (DbEntity) parent;
 
                 // check if either attribute or relationship name matches...
                 return entity.getAttribute(name) != null || entity.getRelationship(name)
!= null;
@@ -257,7 +257,7 @@ class DeduplicationVisitor implements ConfigurationNodeVisitor<String>
{
             @Override
             public boolean isNameInUse(String name) {
 
-                ObjEntity entity = (ObjEntity) namingContext;
+                ObjEntity entity = (ObjEntity) parent;
 
                 // check if either attribute or relationship name matches...
                 if (entity.getAttribute(name) != null || entity.getRelationship(name) !=
null) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/39b70d1b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NameBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NameBuilder.java
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NameBuilder.java
index c791cbc..b52fded 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NameBuilder.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/NameBuilder.java
@@ -24,14 +24,18 @@ import org.apache.cayenne.map.ObjEntity;
 import java.util.Objects;
 
 /**
- * A
+ * A builder of names for model objects. Ensures that newly generated names do not conflict
with the names of siblings
+ * under the same parent node. Name generation can be performed based on default base names
for each model object type,
+ * or with a user-provided base name. Used standalone or in conjunction with {@link ObjectNameGenerator}
that implements
+ * DB-to-object name mapping conversions. Names generated by {@link ObjectNameGenerator}
can be used as "base names" for
+ * {@link NameBuilder}.
  *
  * @since 4.0
  */
 public class NameBuilder {
 
     protected ConfigurationNode nodeToName;
-    protected ConfigurationNode namingContext;
+    protected ConfigurationNode parent;
     protected String dupesPattern;
     protected String baseName;
 
@@ -44,8 +48,8 @@ public class NameBuilder {
         return new NameBuilder(node);
     }
 
-    public static NameBuilder builder(ConfigurationNode node, ConfigurationNode namingContext)
{
-        return new NameBuilder(node).in(namingContext);
+    public static NameBuilder builder(ConfigurationNode node, ConfigurationNode parent) {
+        return new NameBuilder(node).in(parent);
     }
 
     /**
@@ -54,12 +58,12 @@ public class NameBuilder {
      */
     // TODO: fold CallbackMethod to org.apache.cayenne.map package and make it a ConfigurationNode
     // then we can use normal API for it... for now have to keep a special one-off method...
-    public static NameBuilder builderForCallbackMethod(ObjEntity namingContext) {
-        return new CallbackNameBuilder().in(namingContext);
+    public static NameBuilder builderForCallbackMethod(ObjEntity parent) {
+        return new CallbackNameBuilder().in(parent);
     }
 
-    public NameBuilder in(ConfigurationNode namingContext) {
-        this.namingContext = Objects.requireNonNull(namingContext);
+    public NameBuilder in(ConfigurationNode parent) {
+        this.parent = Objects.requireNonNull(parent);
         return this;
     }
 
@@ -79,6 +83,6 @@ public class NameBuilder {
                 : nodeToName.acceptVisitor(DefaultBaseNameVisitor.INSTANCE);
 
         String normalizedBaseName = nodeToName.acceptVisitor(new NormalizationVisitor(baseName));
-        return nodeToName.acceptVisitor(new DeduplicationVisitor(namingContext, normalizedBaseName,
dupesPattern));
+        return nodeToName.acceptVisitor(new DeduplicationVisitor(parent, normalizedBaseName,
dupesPattern));
     }
 }


Mime
View raw message