From 21591916afea4f50bb448fd071c3fccbc1d8034f Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Fri, 2 Nov 2018 11:40:21 -0700 Subject: [PATCH] Fixed missing code from @javax.annotation PR. https://github.com/google/flatbuffers/pull/4986 missed part of the implementation. Change-Id: Ie41771eb018a550c289c77ebe9ef5c50d1ad6751 --- docs/source/Compiler.md | 2 ++ include/flatbuffers/idl.h | 6 ++++-- src/flatc.cpp | 3 +++ src/idl_gen_general.cpp | 4 +++- tests/MyGame/Example/Ability.java | 4 +--- tests/MyGame/Example/Any.java | 2 -- tests/MyGame/Example/AnyAmbiguousAliases.java | 2 -- tests/MyGame/Example/AnyUniqueAliases.java | 2 -- tests/MyGame/Example/Color.java | 2 -- tests/MyGame/Example/Monster.java | 4 +--- tests/MyGame/Example/Referrable.java | 4 +--- tests/MyGame/Example/Stat.java | 4 +--- tests/MyGame/Example/Test.java | 4 +--- tests/MyGame/Example/TestSimpleTableWithEnum.java | 4 +--- tests/MyGame/Example/TypeAliases.java | 4 +--- tests/MyGame/Example/Vec3.java | 4 +--- tests/MyGame/Example2/Monster.java | 4 +--- tests/MyGame/InParentNamespace.java | 4 +--- .../NamespaceA/NamespaceB/EnumInNestedNS.java | 2 -- .../NamespaceA/NamespaceB/StructInNestedNS.java | 4 +--- .../NamespaceA/NamespaceB/TableInNestedNS.java | 4 +--- tests/namespace_test/NamespaceA/SecondTableInA.java | 4 +--- tests/namespace_test/NamespaceA/TableInFirstNS.java | 4 +--- tests/namespace_test/NamespaceC/TableInC.java | 4 +--- 24 files changed, 27 insertions(+), 58 deletions(-) diff --git a/docs/source/Compiler.md b/docs/source/Compiler.md index 18eafd4a9..420019cdc 100644 --- a/docs/source/Compiler.md +++ b/docs/source/Compiler.md @@ -105,6 +105,8 @@ Additional options: output (by default the case for C++ and JS), all code will end up in this one file. +- `--gen-generated`: Add @Generated annotation for Java + - `--no-js-exports` : Removes Node.js style export lines (useful for JS) - `--goog-js-export` : Uses goog.exportsSymbol and goog.exportsProperty diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 11427ab82..2e6bc513a 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -391,6 +391,7 @@ struct IDLOptions { std::string cpp_object_api_pointer_type; std::string cpp_object_api_string_type; bool gen_nullable; + bool gen_generated; std::string object_prefix; std::string object_suffix; bool union_value_namespacing; @@ -465,6 +466,7 @@ struct IDLOptions { gen_compare(false), cpp_object_api_pointer_type("std::unique_ptr"), gen_nullable(false), + gen_generated(false), object_suffix("T"), union_value_namespacing(true), allow_non_utf8(false), @@ -849,8 +851,8 @@ extern bool GenerateLobster(const Parser &parser, // Generate Lua files from the definitions in the Parser object. // See idl_gen_lua.cpp. extern bool GenerateLua(const Parser &parser, - const std::string &path, - const std::string &file_name); + const std::string &path, + const std::string &file_name); // Generate Rust files from the definitions in the Parser object. // See idl_gen_rust.cpp. diff --git a/src/flatc.cpp b/src/flatc.cpp index 9cba05c7d..c4ec80512 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -93,6 +93,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const { " --cpp-str-type T Set object API string type (default std::string)\n" " T::c_str() and T::length() must be supported\n" " --gen-nullable Add Clang _Nullable for C++ pointer. or @Nullable for Java\n" + " --gen-generated Add @Generated annotation for Java\n" " --object-prefix Customise class prefix for C++ object-based API.\n" " --object-suffix Customise class suffix for C++ object-based API.\n" " Default value is \"T\"\n" @@ -233,6 +234,8 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.cpp_object_api_string_type = argv[argi]; } else if (arg == "--gen-nullable") { opts.gen_nullable = true; + } else if (arg == "--gen-generated") { + opts.gen_generated = true; } else if (arg == "--object-prefix") { if (++argi >= argc) Error("missing prefix following" + arg, true); opts.object_prefix = argv[argi]; diff --git a/src/idl_gen_general.cpp b/src/idl_gen_general.cpp index b8e987468..66984da0c 100644 --- a/src/idl_gen_general.cpp +++ b/src/idl_gen_general.cpp @@ -221,7 +221,9 @@ class GeneralGenerator : public BaseGenerator { } code += lang_.class_annotation; } - code += lang_.generated_type_annotation; + if (parser_.opts.gen_generated) { + code += lang_.generated_type_annotation; + } code += classcode; if (!namespace_name.empty()) code += lang_.namespace_end; auto filename = NamespaceDir(ns) + defname + lang_.file_extension; diff --git a/tests/MyGame/Example/Ability.java b/tests/MyGame/Example/Ability.java index 60fd5414e..0bd614c2b 100644 --- a/tests/MyGame/Example/Ability.java +++ b/tests/MyGame/Example/Ability.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class Ability extends Struct { +@SuppressWarnings("unused")public final class Ability extends Struct { public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } public Ability __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } diff --git a/tests/MyGame/Example/Any.java b/tests/MyGame/Example/Any.java index d8603d409..6e4fb76ca 100644 --- a/tests/MyGame/Example/Any.java +++ b/tests/MyGame/Example/Any.java @@ -2,8 +2,6 @@ package MyGame.Example; - -@javax.annotation.Generated(value="flatc") public final class Any { private Any() { } public static final byte NONE = 0; diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.java b/tests/MyGame/Example/AnyAmbiguousAliases.java index 4b699ed17..b8a687089 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.java +++ b/tests/MyGame/Example/AnyAmbiguousAliases.java @@ -2,8 +2,6 @@ package MyGame.Example; - -@javax.annotation.Generated(value="flatc") public final class AnyAmbiguousAliases { private AnyAmbiguousAliases() { } public static final byte NONE = 0; diff --git a/tests/MyGame/Example/AnyUniqueAliases.java b/tests/MyGame/Example/AnyUniqueAliases.java index 33e42a6e0..8c1633a6a 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.java +++ b/tests/MyGame/Example/AnyUniqueAliases.java @@ -2,8 +2,6 @@ package MyGame.Example; - -@javax.annotation.Generated(value="flatc") public final class AnyUniqueAliases { private AnyUniqueAliases() { } public static final byte NONE = 0; diff --git a/tests/MyGame/Example/Color.java b/tests/MyGame/Example/Color.java index bd323b5cf..7c113b72f 100644 --- a/tests/MyGame/Example/Color.java +++ b/tests/MyGame/Example/Color.java @@ -2,8 +2,6 @@ package MyGame.Example; - -@javax.annotation.Generated(value="flatc") public final class Color { private Color() { } public static final byte Red = 1; diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index d477466ef..0b06479ad 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -/** +@SuppressWarnings("unused")/** * an example documentation comment: monster object */ public final class Monster extends Table { diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index ecf024604..e164256d8 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class Referrable extends Table { +@SuppressWarnings("unused")public final class Referrable extends Table { public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 947c9e366..8f480363f 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class Stat extends Table { +@SuppressWarnings("unused")public final class Stat extends Table { public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/MyGame/Example/Test.java b/tests/MyGame/Example/Test.java index d66f7b933..34b095a0a 100644 --- a/tests/MyGame/Example/Test.java +++ b/tests/MyGame/Example/Test.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class Test extends Struct { +@SuppressWarnings("unused")public final class Test extends Struct { public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } public Test __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index dbfebffdd..545c0ad3a 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -final class TestSimpleTableWithEnum extends Table { +@SuppressWarnings("unused")final class TestSimpleTableWithEnum extends Table { public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index fdad096dc..497d7760f 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class TypeAliases extends Table { +@SuppressWarnings("unused")public final class TypeAliases extends Table { public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/MyGame/Example/Vec3.java b/tests/MyGame/Example/Vec3.java index 118622f8f..ecd65c7ae 100644 --- a/tests/MyGame/Example/Vec3.java +++ b/tests/MyGame/Example/Vec3.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class Vec3 extends Struct { +@SuppressWarnings("unused")public final class Vec3 extends Struct { public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } public Vec3 __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 832686c35..433d4c58e 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class Monster extends Table { +@SuppressWarnings("unused")public final class Monster extends Table { public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 90b5aaf0f..f933fb93f 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class InParentNamespace extends Table { +@SuppressWarnings("unused")public final class InParentNamespace extends Table { public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/EnumInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/EnumInNestedNS.java index 5553d1919..e23cecc06 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/EnumInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/EnumInNestedNS.java @@ -2,8 +2,6 @@ package NamespaceA.NamespaceB; - -@javax.annotation.Generated(value="flatc") public final class EnumInNestedNS { private EnumInNestedNS() { } public static final byte A = 0; diff --git a/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.java index c781c059d..883913b7d 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class StructInNestedNS extends Struct { +@SuppressWarnings("unused")public final class StructInNestedNS extends Struct { public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } public StructInNestedNS __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index e5e703cc6..bdd3f3a34 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class TableInNestedNS extends Table { +@SuppressWarnings("unused")public final class TableInNestedNS extends Table { public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 6738c1464..542fbb4ce 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class SecondTableInA extends Table { +@SuppressWarnings("unused")public final class SecondTableInA extends Table { public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 0ef230ee8..09f66772b 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class TableInFirstNS extends Table { +@SuppressWarnings("unused")public final class TableInFirstNS extends Table { public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 01a2231bb..8a3a2a415 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -7,9 +7,7 @@ import java.lang.*; import java.util.*; import com.google.flatbuffers.*; -@SuppressWarnings("unused") -@javax.annotation.Generated(value="flatc") -public final class TableInC extends Table { +@SuppressWarnings("unused")public final class TableInC extends Table { public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; }