mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-10 23:17:27 +00:00
Add C#/Java generator behaviour for 'private' attribute (#4882)
* Added 'private' attribute, supported when generating C# and Java * Added use of 'private' attribute in monster_test
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
1f03becd24
commit
c2c3a84aaf
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user