diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/idl_gen_general.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/idl_gen_general.cpp b/src/idl_gen_general.cpp index 27eb8c40..eda0214d 100644 --- a/src/idl_gen_general.cpp +++ b/src/idl_gen_general.cpp @@ -504,7 +504,16 @@ class GeneralGenerator : public BaseGenerator { // to map directly to how they're used in C/C++ and file formats. // That, and Java Enums are expensive, and not universally liked. GenComment(enum_def.doc_comment, code_ptr, &lang_.comment_config); - code += std::string("public ") + lang_.enum_decl + enum_def.name; + if (enum_def.attributes.Lookup("private")) { + // For Java, we leave the enum unmarked to indicate package-private + // For C# we mark the enum as internal + if (lang_.language == IDLOptions::kCSharp) { + code += "internal "; + } + } else { + code += "public "; + } + code += lang_.enum_decl + enum_def.name; if (lang_.language == IDLOptions::kCSharp) { code += lang_.inheritance_marker + GenTypeBasic(enum_def.underlying_type, false); @@ -773,7 +782,15 @@ class GeneralGenerator : public BaseGenerator { // int o = __offset(offset); return o != 0 ? bb.getType(o + i) : default; // } GenComment(struct_def.doc_comment, code_ptr, &lang_.comment_config); - code += "public "; + if (struct_def.attributes.Lookup("private")) { + // For Java, we leave the struct unmarked to indicate package-private + // For C# we mark the struct as internal + if (lang_.language == IDLOptions::kCSharp) { + code += "internal "; + } + } else { + code += "public "; + } if (lang_.language == IDLOptions::kCSharp && struct_def.attributes.Lookup("csharp_partial")) { // generate a partial class for this C# struct/table |