diff --git a/Examples/Java/Sources/Board.java b/Examples/Java/Sources/Board.java index 3d2c0320..2c5f8bc9 100644 --- a/Examples/Java/Sources/Board.java +++ b/Examples/Java/Sources/Board.java @@ -30,6 +30,8 @@ public class Board { + public static final String TYPE = "board"; + @SerializedName("id") private @Nullable String uid; @SerializedName("contributors") private @Nullable Set contributors; @SerializedName("counts") private @Nullable Map counts; diff --git a/Examples/Java/Sources/Everything.java b/Examples/Java/Sources/Everything.java index 290d73ff..e85cf9da 100644 --- a/Examples/Java/Sources/Everything.java +++ b/Examples/Java/Sources/Everything.java @@ -71,6 +71,8 @@ public enum EverythingStringEnum { @SerializedName("case1") CASE1, @SerializedName("case2") CASE2, @SerializedName("case3") CASE3; } + public static final String TYPE = "everything"; + @SerializedName("array_prop") private @Nullable List arrayProp; @SerializedName("boolean_prop") private @Nullable Boolean booleanProp; @SerializedName("date_prop") private @Nullable Date dateProp; diff --git a/Examples/Java/Sources/Image.java b/Examples/Java/Sources/Image.java index 3f2f055e..b9351f08 100644 --- a/Examples/Java/Sources/Image.java +++ b/Examples/Java/Sources/Image.java @@ -30,6 +30,8 @@ public class Image { + public static final String TYPE = "image"; + @SerializedName("height") private @Nullable Integer height; @SerializedName("url") private @Nullable String url; @SerializedName("width") private @Nullable Integer width; diff --git a/Examples/Java/Sources/Model.java b/Examples/Java/Sources/Model.java index e7824ec3..6f80f743 100644 --- a/Examples/Java/Sources/Model.java +++ b/Examples/Java/Sources/Model.java @@ -30,6 +30,8 @@ public class Model { + public static final String TYPE = "model"; + @SerializedName("id") private @Nullable String uid; static final private int ID_SET = 1 << 0; diff --git a/Examples/Java/Sources/Pin.java b/Examples/Java/Sources/Pin.java index 3473621e..7e6ea9e2 100644 --- a/Examples/Java/Sources/Pin.java +++ b/Examples/Java/Sources/Pin.java @@ -48,6 +48,8 @@ public int getValue() { } } + public static final String TYPE = "pin"; + @SerializedName("attribution") private @Nullable Map attribution; @SerializedName("attribution_objects") private @Nullable List attributionObjects; @SerializedName("board") private @Nullable Board board; diff --git a/Examples/Java/Sources/User.java b/Examples/Java/Sources/User.java index fa75ce7e..1cc9306c 100644 --- a/Examples/Java/Sources/User.java +++ b/Examples/Java/Sources/User.java @@ -34,6 +34,8 @@ public enum UserEmailFrequency { @SerializedName("unset") UNSET, @SerializedName("immediate") IMMEDIATE, @SerializedName("daily") DAILY; } + public static final String TYPE = "user"; + @SerializedName("bio") private @Nullable String bio; @SerializedName("counts") private @Nullable Map counts; @SerializedName("created_at") private @Nullable Date createdAt; diff --git a/Examples/Java/Sources/VariableSubtitution.java b/Examples/Java/Sources/VariableSubtitution.java index f1808012..955a1b17 100644 --- a/Examples/Java/Sources/VariableSubtitution.java +++ b/Examples/Java/Sources/VariableSubtitution.java @@ -30,6 +30,8 @@ public class VariableSubtitution { + public static final String TYPE = "variable_subtitution"; + @SerializedName("alloc_prop") private @Nullable Integer allocProp; @SerializedName("copy_prop") private @Nullable Integer copyProp; @SerializedName("mutable_copy_prop") private @Nullable Integer mutableCopyProp; diff --git a/Sources/Core/JavaModelRenderer.swift b/Sources/Core/JavaModelRenderer.swift index 9a3026a4..d0204a63 100644 --- a/Sources/Core/JavaModelRenderer.swift +++ b/Sources/Core/JavaModelRenderer.swift @@ -30,6 +30,10 @@ public struct JavaModelRenderer: JavaFileRenderer { } } + func renderStaticTypeString() -> JavaIR.Property { + return JavaIR.Property(annotations: [], modifiers: [.public, .static, .final], type: "String", name: "TYPE", initialValue: "\"" + rootSchema.typeIdentifier + "\"") + } + func renderModelHashCode() -> JavaIR.Method { let bodyHashCode = transitiveProperties.map { param, _ in Languages.java.snakeCaseToPropertyName(param) @@ -73,7 +77,7 @@ public struct JavaModelRenderer: JavaFileRenderer { index += 1 } - return [props, bitmasks, [bits]] + return [[renderStaticTypeString()], props, bitmasks, [bits]] } func propertyGetterForParam(param: String, schemaObj: SchemaObjectProperty) -> JavaIR.Method {