You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/26 05:17:22 UTC
incubator-ignite git commit: # IGNITE-32 WIP: POJOs generation: added
equals() and hashCode().
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-32 162bed47d -> 5b01f7083
# IGNITE-32 WIP: POJOs generation: added equals() and hashCode().
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5b01f708
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5b01f708
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5b01f708
Branch: refs/heads/ignite-32
Commit: 5b01f7083de62ce0d3e27ebe2e85e1ab356044d0
Parents: 162bed4
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Dec 26 11:17:21 2014 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Dec 26 11:17:21 2014 +0700
----------------------------------------------------------------------
.../ignite/schema/pojo/PojoCodeGenerator.java | 77 ++++++++++++++------
.../apache/ignite/schema/ui/SchemaLoadApp.java | 20 +++--
2 files changed, 63 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b01f708/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
index 164c012..33ca6c1 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
@@ -22,23 +22,10 @@ import static org.apache.ignite.schema.util.SchemaUtils.*;
public class PojoCodeGenerator {
/** */
private static final String TAB = " ";
-
- /**
- * @return Current indent constructed from spaces.
- */
- private static String indent(int indent) {
- switch (indent) {
- case 0: return "";
- case 1: return TAB;
- default:
- StringBuilder sb = new StringBuilder(TAB.length() * indent);
-
- for (int i = 0; i < indent; i++)
- sb.append(TAB);
-
- return sb.toString();
- }
- }
+ /** */
+ private static final String TAB2 = TAB + TAB;
+ /** */
+ private static final String TAB3 = TAB + TAB + TAB;
/**
* Generate java class code.
@@ -52,14 +39,10 @@ public class PojoCodeGenerator {
File pkgFolder) throws IOException {
Collection<String> src = new ArrayList<>(256);
- int indent = 0;
-
src.add("package " + pkg + ";");
src.add("");
src.add("public class " + type + " {");
- indent++;
-
for (GridCacheQueryTypeDescriptor desc : descs) {
src.add(TAB + "private " + desc.getJavaType().getSimpleName() + " " + desc.getJavaName() + ";");
src.add("");
@@ -74,16 +57,64 @@ public class PojoCodeGenerator {
src.add("");
src.add(TAB + "public " + fldType + " get" + mtdName + "() {");
- src.add(TAB + TAB + "return " + fldName + ";");
+ src.add(TAB2 +"return " + fldName + ";");
src.add(TAB + "}");
src.add("");
src.add(TAB + "public void set" + mtdName + "(" + fldType + " " + fldName + ") {");
- src.add(TAB + TAB + "this." + fldName + " = " + fldName + ";");
+ src.add(TAB2 +"this." + fldName + " = " + fldName + ";");
src.add(TAB + "}");
}
+ src.add("");
+
+ src.add(TAB + "@Override public boolean equals(Object o) {");
+ src.add(TAB2 + "if (this == o)");
+ src.add(TAB3 + "return true;");
+
+ src.add("");
+
+ src.add(TAB2 + "if (o == null || getClass() != o.getClass())");
+ src.add(TAB3 + "return false;");
+
+ src.add("");
+
+ src.add(TAB2 + String.format("%1$s that = (%1$s)o;", type));
+
+ for (GridCacheQueryTypeDescriptor desc : descs) {
+ String fldName = desc.getJavaName();
+
+ src.add("");
+ src.add(TAB2 + String.format("if (%1$s != null ? !%1$s.equals(that.%1$s) : that.%1$s != null)", fldName));
+ src.add(TAB3 + "return false;");
+ }
+
+ src.add("");
+ src.add(TAB2 + "return true;");
+ src.add(TAB + "}");
+
+ src.add("");
+
+ src.add(TAB + "@Override public int hashCode() {");
+
+ Iterator<GridCacheQueryTypeDescriptor> it = descs.iterator();
+
+ GridCacheQueryTypeDescriptor first = it.next();
+
+ src.add(TAB2 + String.format("int result = %1$s != null ? %1$s.hashCode() : 0;", first.getJavaName()));
+
+ while(it.hasNext()) {
+ String fldName = it.next().getJavaName();
+
+ src.add("");
+ src.add(TAB2 + String.format("result = 31 * result + (%1$s != null ? %1$s.hashCode() : 0);", fldName));
+ }
+
+ src.add("");
+ src.add(TAB2 + "return result;");
+ src.add(TAB + "}");
+
try (Writer writer = new BufferedWriter(new FileWriter(new File(pkgFolder, type + ".java")))) {
for (String line : src)
writer.write(line + '\n');
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b01f708/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
index a3279f9..84ac4f4 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
@@ -197,22 +197,20 @@ public class SchemaLoadApp extends Application {
List<GridCacheQueryTypeMetadata> all = new ArrayList<>();
for (TreeItem<String> schemeItem : rootItem.getChildren()) {
- if (((CheckBoxTreeItem)schemeItem).isSelected()) {
- for (TreeItem<String> tblItem : schemeItem.getChildren()) {
- if (((CheckBoxTreeItem)tblItem).isSelected()) {
- GridCacheQueryTypeMetadata meta = schemas.get(schemeItem.getValue())
- .get(tblItem.getValue());
+ for (TreeItem<String> tblItem : schemeItem.getChildren()) {
+ if (((CheckBoxTreeItem)tblItem).isSelected()) {
+ GridCacheQueryTypeMetadata meta = schemas.get(schemeItem.getValue())
+ .get(tblItem.getValue());
- all.add(meta);
+ all.add(meta);
- XmlTransformer transformer = new XmlTransformer(4);
+ XmlTransformer transformer = new XmlTransformer(4);
- Result res = new StreamResult(new File(destFolder, meta.getType() + ".xml"));
+ Result res = new StreamResult(new File(destFolder, meta.getType() + ".xml"));
- transformer.transform(pkg, meta, res);
+ transformer.transform(pkg, meta, res);
- PojoCodeGenerator.generate(meta, outFolder, pkg);
- }
+ PojoCodeGenerator.generate(meta, outFolder, pkg);
}
}
}