You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sh...@apache.org on 2016/11/01 02:37:49 UTC

[30/50] [abbrv] ignite git commit: IGNITE-3028 XML and code generation: do not generate not selected fields. Generate aliases as simple map.

IGNITE-3028 XML and code generation: do not generate not selected fields. Generate aliases as simple map.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3ab39af4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3ab39af4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3ab39af4

Branch: refs/heads/ignite-2788
Commit: 3ab39af4322b48d8ae6b44c5ca298ca1ded1df05
Parents: bb5cd16
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Wed Apr 27 16:21:29 2016 +0700
Committer: shtykh_roman <rs...@yahoo.com>
Committed: Fri May 13 16:11:15 2016 +0900

----------------------------------------------------------------------
 .../ignite/schema/generator/CodeGenerator.java  | 30 +++++++++-----------
 .../ignite/schema/generator/XmlGenerator.java   |  2 +-
 2 files changed, 14 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3ab39af4/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
index 3ab0f4e..01fcfa6 100644
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
+++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
@@ -194,11 +194,11 @@ public class CodeGenerator {
      *
      * @param src Source code.
      * @param pkg Package name.
-     * @param imports Optional imports.
      * @param desc Class description.
      * @param cls Class declaration.
+     * @param imports Optional imports.
      */
-    private static void header(Collection<String> src, String pkg, String imports, String desc, String cls) {
+    private static void header(Collection<String> src, String pkg, String desc, String cls, String... imports) {
         // License.
         add0(src, "/*");
         add0(src, " * Licensed to the Apache Software Foundation (ASF) under one or more");
@@ -223,12 +223,9 @@ public class CodeGenerator {
         add0(src, "");
 
         // Imports.
-        if (!imports.isEmpty()) {
-            for (String imp : imports.split(";"))
-                if (imp.isEmpty())
-                    add0(src, "");
-                else
-                    add0(src, "import " + imp + ";");
+        if (imports != null && imports.length > 0) {
+            for (String imp : imports)
+                add0(src, imp.isEmpty() ? "" : "import " + imp + ";");
 
             add0(src, "");
         }
@@ -295,7 +292,7 @@ public class CodeGenerator {
 
         Collection<String> src = new ArrayList<>(256);
 
-        header(src, pkg, "java.io.*", type, type + " implements Serializable");
+        header(src, pkg, type, type + " implements Serializable", "java.io.*");
 
         add1(src, "/** */");
         add1(src, "private static final long serialVersionUID = 0L;");
@@ -584,15 +581,14 @@ public class CodeGenerator {
 
         Collection<String> src = new ArrayList<>(256);
 
-        header(src, pkg, "java.sql.*;java.util.*;" +
-            "org.apache.ignite.cache.*;org.apache.ignite.cache.store.jdbc.*;" +
-            "org.apache.ignite.configuration.*",
-            "CacheConfig", "CacheConfig");
+        header(src, pkg, "CacheConfig", "CacheConfig", "java.sql.*", "java.util.*", "", "org.apache.ignite.cache.*",
+            "org.apache.ignite.cache.store.jdbc.*", "org.apache.ignite.configuration.*");
 
         // Generate methods for each type in order to avoid compiler error "java: code too large".
         for (PojoDescriptor pojo : pojos) {
             String tbl = pojo.table();
             String valClsName = pojo.valueClassName();
+            Collection<PojoField> fields = pojo.valueFields(true);
 
             add1(src, "/**");
             add1(src, " * Create JDBC type for " + tbl + ".");
@@ -656,7 +652,7 @@ public class CodeGenerator {
             add2(src, "LinkedHashMap<String, String> fields = new LinkedHashMap<>();");
             add0(src, "");
 
-            for (PojoField field : pojo.fields())
+            for (PojoField field : fields)
                 add2(src, "fields.put(\"" + field.javaName() + "\", \"" +
                     GeneratorUtils.boxPrimitiveType(field.javaTypeName()) + "\");");
 
@@ -668,14 +664,14 @@ public class CodeGenerator {
             if (generateAliases) {
                 Collection<PojoField> aliases = new ArrayList<>();
 
-                for (PojoField field : pojo.fields()) {
+                for (PojoField field : fields) {
                     if (!field.javaName().equalsIgnoreCase(field.dbName()))
                         aliases.add(field);
                 }
 
                 if (!aliases.isEmpty()) {
                     add2(src, "// Aliases for fields.");
-                    add2(src, "LinkedHashMap<String, String> aliases = new LinkedHashMap<>();");
+                    add2(src, "Map<String, String> aliases = new HashMap<>();");
                     add0(src, "");
 
                     for (PojoField alias : aliases)
@@ -702,7 +698,7 @@ public class CodeGenerator {
                     List<T2<String, Boolean>> idxFlds = new ArrayList<>(sz);
 
                     for (Map.Entry<String, Boolean> idxFld : dbIdxFlds) {
-                        PojoField field = GeneratorUtils.findFieldByName(pojo.valueFields(true), idxFld.getKey());
+                        PojoField field = GeneratorUtils.findFieldByName(fields, idxFld.getKey());
 
                         if (field != null)
                             idxFlds.add(new T2<>(field.javaName(), idxFld.getValue()));

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ab39af4/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
index bb5a0cb..df54e04 100644
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
+++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
@@ -226,7 +226,7 @@ public class XmlGenerator {
         if (!aliases.isEmpty()) {
             Element prop = addProperty(doc, parent, "aliases", null);
 
-            Element map = addElement(doc, prop, "util:map", "map-class", "java.util.LinkedHashMap");
+            Element map = addElement(doc, prop, "map");
 
             for (PojoField alias : aliases)
                 addElement(doc, map, "entry", "key", alias.javaName(), "value", alias.dbName());