Skip to content

Commit 9220987

Browse files
authored
Merge pull request #6 from cloudimpl/develop
merge
2 parents b8b2780 + 8139599 commit 9220987

3 files changed

Lines changed: 35 additions & 31 deletions

File tree

codegen-lib/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,11 @@
88
</parent>
99
<artifactId>codegen-lib</artifactId>
1010
<packaging>jar</packaging>
11+
<dependencies>
12+
<dependency>
13+
<groupId>net.openhft</groupId>
14+
<artifactId>zero-allocation-hashing</artifactId>
15+
<version>0.11</version>
16+
</dependency>
17+
</dependencies>
1118
</project>

codegen-lib/src/main/java/com/cloudimpl/codegen4j/ClassBlock.java

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import java.util.Collection;
1010
import java.util.Collections;
1111
import java.util.HashSet;
12-
import java.util.LinkedList;
1312
import java.util.List;
1413
import java.util.Set;
14+
import net.openhft.hashing.LongHashFunction;
1515

1616
/**
1717
*
@@ -20,27 +20,33 @@
2020
public class ClassBlock extends PermissionBlock {
2121

2222
private String packageName;
23-
private Set<String> imports = new HashSet<>();
23+
private final Set<String> imports = new HashSet<>();
2424
protected String className = null;
2525
private String extend = null;
2626
protected List<String> implementList;
27+
private boolean enableSerializedId;
2728

2829
public ClassBlock(String name) {
2930
this.className = name;
3031
this.implementList = Collections.EMPTY_LIST;
32+
this.enableSerializedId = false;
3133
}
3234

33-
public String getClassName()
34-
{
35+
public String getClassName() {
3536
return this.className;
3637
}
37-
38+
39+
public ClassBlock enableSerializedId(boolean enable) {
40+
this.enableSerializedId = enable;
41+
return this;
42+
}
43+
3844
public ClassBlock extend(String className) {
3945
this.extend = className;
4046
return this;
4147
}
4248

43-
public ClassBlock withPackageName(String packageName) {
49+
public ClassBlock withPackageName(String packageName) {
4450
this.packageName = packageName;
4551
return this;
4652
}
@@ -53,12 +59,11 @@ public Collection<String> getImports() {
5359
return imports;
5460
}
5561

56-
5762
public ClassBlock withImports(String... imports) {
58-
Arrays.asList(imports).stream().filter(p->!p.substring(0,p.lastIndexOf(".")).equals("java.lang")).forEach(imp -> this.imports.add(imp));
63+
Arrays.asList(imports).stream().filter(p -> !p.substring(0, p.lastIndexOf(".")).equals("java.lang")).forEach(imp -> this.imports.add(imp));
5964
return this;
6065
}
61-
66+
6267
public ClassBlock implement(String... clsList) {
6368
implementList = Arrays.asList(clsList);
6469
return this;
@@ -76,16 +81,15 @@ public FunctionBlock createFunction(String functionName) {
7681
return pushBlock(new FunctionBlock(functionName));
7782
}
7883

79-
public void emptyBlock()
80-
{
84+
public void emptyBlock() {
8185
pushBlock(new CodeBlock() {
8286
@Override
8387
protected Statement generateHeader() {
8488
return null;
8589
}
8690
});
8791
}
88-
92+
8993
public FunctionBlock createGetter(Var var) {
9094
FunctionBlock func = new FunctionBlock("get" + (("" + var.var.charAt(0)).toUpperCase() + var.var.substring(1)));
9195
func.stmt().append("return").append2("this.").append(var.var).end();
@@ -100,12 +104,23 @@ public void createSetter(Var var) {
100104
pushBlock(func.withAccess(AccessLevel.PUBLIC));
101105
}
102106

107+
@Override
103108
protected Statement generateHeader() {
104109
return stmt().append(level)
105110
.append(isStatic, "static")
106111
.append(isFinal, "final")
107112
.append("class").append(className)
108113
.append(extend != null, "extends " + extend)
109-
.append(!implementList.isEmpty(),"implements "+String.join(",", implementList));
114+
.append(!implementList.isEmpty(), "implements " + String.join(",", implementList));
115+
}
116+
117+
@Override
118+
public void generateCode(int tabIndex, StringBuilder builder) {
119+
if (enableSerializedId) {
120+
StringBuilder output = new StringBuilder();
121+
super.generateCode(0, output);
122+
var("long", "serialVersionUID").withAccess(AccessLevel.PUBLIC).withFinal().withStatic().assign("" + LongHashFunction.xx().hashChars(output.toString())+"L").end();
123+
}
124+
super.generateCode(tabIndex, builder);
110125
}
111126
}

nb-configuration.xml

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)