Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E00EF18708 for ; Fri, 8 May 2015 09:31:41 +0000 (UTC) Received: (qmail 76526 invoked by uid 500); 8 May 2015 09:31:41 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 76495 invoked by uid 500); 8 May 2015 09:31:41 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 76481 invoked by uid 99); 8 May 2015 09:31:41 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 May 2015 09:31:41 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 5E47EC270E for ; Fri, 8 May 2015 09:31:41 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.771 X-Spam-Level: * X-Spam-Status: No, score=1.771 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id Ty3TvrLnkK_Z for ; Fri, 8 May 2015 09:31:27 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id B0B79249C8 for ; Fri, 8 May 2015 09:31:22 +0000 (UTC) Received: (qmail 74709 invoked by uid 99); 8 May 2015 09:31:20 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 May 2015 09:31:20 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id AA4D9E3CC1; Fri, 8 May 2015 09:31:20 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.incubator.apache.org Date: Fri, 08 May 2015 09:31:35 -0000 Message-Id: In-Reply-To: <2105a7af46dc4f41a620f8675eb7e450@git.apache.org> References: <2105a7af46dc4f41a620f8675eb7e450@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [17/48] incubator-ignite git commit: # IGNITE-865 Fixed code generation logic. # IGNITE-865 Fixed code generation logic. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4a096d95 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4a096d95 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4a096d95 Branch: refs/heads/ignite-373 Commit: 4a096d95874f1585dcb5c2fdb6c9d09db4fa45d9 Parents: 07a4258 Author: AKuznetsov Authored: Wed May 6 13:04:57 2015 +0700 Committer: AKuznetsov Committed: Wed May 6 13:04:57 2015 +0700 ---------------------------------------------------------------------- .../ignite/schema/generator/CodeGenerator.java | 41 ++++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4a096d95/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 f8901d2..f04aa01 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 @@ -550,21 +550,25 @@ public class CodeGenerator { * @param mtdName Method name to generate. * @param comment Commentary text. * @param first {@code true} if variable should be declared. + * @return {@code false} if variable was declared. */ - private static void addQueryFields(Collection src, Collection fields, String varName, + private static boolean addQueryFields(Collection src, Collection fields, String varName, String mtdName, String comment, boolean first) { - if (!fields.isEmpty()) { - add2(src, comment); - add2(src, (first ? "Map> " : "") + varName + " = new LinkedHashMap<>();"); - add0(src, ""); + if (fields.isEmpty()) + return true; - for (PojoField field : fields) - add2(src, varName + ".put(\"" + field.javaName() + "\", " + javaTypeName(field) + ".class);"); + add2(src, comment); + add2(src, (first ? "Map> " : "") + varName + " = new LinkedHashMap<>();"); + add0(src, ""); - add0(src, ""); - add2(src, "type." + mtdName + "(" + varName + ");"); - add0(src, ""); - } + for (PojoField field : fields) + add2(src, varName + ".put(\"" + field.javaName() + "\", " + javaTypeName(field) + ".class);"); + + add0(src, ""); + add2(src, "type." + mtdName + "(" + varName + ");"); + add0(src, ""); + + return false; } /** @@ -623,6 +627,9 @@ public class CodeGenerator { add0(src, ""); boolean first = true; + boolean firstAsc = true; + boolean firstDesc = true; + boolean firstGrps = true; boolean firstGrp = true; for (PojoDescriptor pojo : pojos) { @@ -661,22 +668,24 @@ public class CodeGenerator { addQueryFields(src, pojo.fields(), "qryFlds", "setQueryFields", "// Query fields for " + tbl + ".", first); // Ascending fields. - addQueryFields(src, pojo.ascendingFields(), "ascFlds", "setAscendingFields", - "// Ascending fields for " + tbl + ".", first); + firstAsc = addQueryFields(src, pojo.ascendingFields(), "ascFlds", "setAscendingFields", + "// Ascending fields for " + tbl + ".", firstAsc); // Descending fields. - addQueryFields(src, pojo.descendingFields(), "descFlds", "setDescendingFields", - "// Descending fields for " + tbl + ".", first); + firstDesc = addQueryFields(src, pojo.descendingFields(), "descFlds", "setDescendingFields", + "// Descending fields for " + tbl + ".", firstDesc); // Groups. Map> groups = pojo.groups(); if (!groups.isEmpty()) { add2(src, "// Groups for " + tbl + "."); - add2(src, (first ? "Map, Boolean>>> " : "") + + add2(src, (firstGrps ? "Map, Boolean>>> " : "") + " grps = new LinkedHashMap<>();"); add0(src, ""); + firstGrps = false; + for (Map.Entry> group : groups.entrySet()) { add2(src, (firstGrp ? "LinkedHashMap, Boolean>> " : "") + "grpItems = new LinkedHashMap<>();");