From 06335595acec5e554a3a48e9688a1fc6774dd705 Mon Sep 17 00:00:00 2001 From: djayaraman Date: Wed, 4 Jan 2017 10:58:35 -0800 Subject: [PATCH] Don't use memoize optimization in generated POJO code by default --- .../api/codegen/HollowPOJOClassGenerator.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/hollow/src/main/java/com/netflix/hollow/api/codegen/HollowPOJOClassGenerator.java b/hollow/src/main/java/com/netflix/hollow/api/codegen/HollowPOJOClassGenerator.java index 30870b3997..cf6f43fe0d 100644 --- a/hollow/src/main/java/com/netflix/hollow/api/codegen/HollowPOJOClassGenerator.java +++ b/hollow/src/main/java/com/netflix/hollow/api/codegen/HollowPOJOClassGenerator.java @@ -48,7 +48,7 @@ public class HollowPOJOClassGenerator implements HollowJavaFileGenerator { private final String className; private final String classNameSuffix; private final String packageName; - + private final boolean memoizeOrdinal; private final Set> importClasses; public HollowPOJOClassGenerator(HollowStateEngine stateEngine, HollowObjectSchema schema, String packageName) { @@ -56,14 +56,20 @@ public HollowPOJOClassGenerator(HollowStateEngine stateEngine, HollowObjectSchem } 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>(); + this.memoizeOrdinal = memoizeOrdinal; } - + private static String buildClassName(String name, String suffix) { if (suffix == null) return name; return name + suffix; @@ -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("}");