Skip to content

Commit

Permalink
Merge pull request #9 from Netflix/codegen
Browse files Browse the repository at this point in the history
Don't use memoize optimization in generated POJO code by default
  • Loading branch information
dkoszewnik authored Jan 4, 2017
2 parents 7d6ad67 + 0633559 commit faacd86
Showing 1 changed file with 18 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,22 +48,28 @@ public class HollowPOJOClassGenerator implements HollowJavaFileGenerator {
private final String className;
private final String classNameSuffix;
private final String packageName;

private final boolean memoizeOrdinal;
private final Set<Class<?>> importClasses;

public HollowPOJOClassGenerator(HollowStateEngine stateEngine, HollowObjectSchema schema, String packageName) {
this(stateEngine, schema, packageName, null);
}

public HollowPOJOClassGenerator(HollowStateEngine stateEngine, HollowObjectSchema schema, String packageName, String classNameSuffix) {
this(stateEngine, schema, packageName, classNameSuffix, false);
}

public HollowPOJOClassGenerator(HollowStateEngine stateEngine, HollowObjectSchema schema, String packageName,
String classNameSuffix, boolean memoizeOrdinal) {
this.stateEngine = stateEngine;
this.schema = schema;
this.packageName = packageName;
this.classNameSuffix = classNameSuffix;
this.className = buildClassName(schema.getName(), classNameSuffix);
this.importClasses = new HashSet<Class<?>>();
this.memoizeOrdinal = memoizeOrdinal;
}

private static String buildClassName(String name, String suffix) {
if (suffix == null) return name;
return name + suffix;
Expand Down Expand Up @@ -193,13 +199,19 @@ public String generate() {

classBodyBuilder.append(" public ").append(getClassName()).append(" clone() {\n");
classBodyBuilder.append(" try {\n");
classBodyBuilder.append(" ").append(getClassName()).append(" clone = (" + getClassName() + ")super.clone();\n");
classBodyBuilder.append(" clone.__assigned_ordinal = -1;\n");
classBodyBuilder.append(" ").append(getClassName())
.append(" clone = (" + getClassName() + ")super.clone();\n");
if (memoizeOrdinal) {
classBodyBuilder.append(" clone.__assigned_ordinal = -1;\n");
}
classBodyBuilder.append(" return clone;\n");
classBodyBuilder.append(" } catch (CloneNotSupportedException cnse) { throw new RuntimeException(cnse); }\n");
classBodyBuilder
.append(" } catch (CloneNotSupportedException cnse) { throw new RuntimeException(cnse); }\n");
classBodyBuilder.append(" }\n\n");

classBodyBuilder.append(" private int __assigned_ordinal = -1;\n");
if (memoizeOrdinal) {
classBodyBuilder.append(" private int __assigned_ordinal = -1;\n");
}

classBodyBuilder.append("}");

Expand Down

0 comments on commit faacd86

Please sign in to comment.