mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-10 07:06:26 +00:00
* [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521) * [Java] ObjectAPI implementation (#6521)
This commit is contained in:
@@ -667,9 +667,7 @@ class CppGenerator : public BaseGenerator {
|
||||
}
|
||||
case BASE_TYPE_UNION:
|
||||
// fall through
|
||||
default: {
|
||||
return "void";
|
||||
}
|
||||
default: { return "void"; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1009,9 +1007,10 @@ class CppGenerator : public BaseGenerator {
|
||||
? bt - BASE_TYPE_UTYPE + ET_UTYPE
|
||||
: ET_SEQUENCE;
|
||||
int ref_idx = -1;
|
||||
std::string ref_name = type.struct_def ? WrapInNameSpace(*type.struct_def)
|
||||
: type.enum_def ? WrapInNameSpace(*type.enum_def)
|
||||
: "";
|
||||
std::string ref_name =
|
||||
type.struct_def
|
||||
? WrapInNameSpace(*type.struct_def)
|
||||
: type.enum_def ? WrapInNameSpace(*type.enum_def) : "";
|
||||
if (!ref_name.empty()) {
|
||||
auto rit = type_refs.begin();
|
||||
for (; rit != type_refs.end(); ++rit) {
|
||||
@@ -1924,9 +1923,7 @@ class CppGenerator : public BaseGenerator {
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
default: { break; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1515,10 +1515,11 @@ class CSharpGenerator : public BaseGenerator {
|
||||
case BASE_TYPE_ARRAY: {
|
||||
auto type_name = GenTypeGet_ObjectAPI(field.value.type, opts);
|
||||
auto length_str = NumToString(field.value.type.fixed_length);
|
||||
auto unpack_method = field.value.type.struct_def == nullptr ? ""
|
||||
: field.value.type.struct_def->fixed
|
||||
? ".UnPack()"
|
||||
: "?.UnPack()";
|
||||
auto unpack_method = field.value.type.struct_def == nullptr
|
||||
? ""
|
||||
: field.value.type.struct_def->fixed
|
||||
? ".UnPack()"
|
||||
: "?.UnPack()";
|
||||
code += start + "new " + type_name.substr(0, type_name.length() - 1) +
|
||||
length_str + "];\n";
|
||||
code += " for (var _j = 0; _j < " + length_str + "; ++_j) { _o." +
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -130,9 +130,7 @@ std::string GenType(const Type &type) {
|
||||
return union_type_string;
|
||||
}
|
||||
case BASE_TYPE_UTYPE: return GenTypeRef(type.enum_def);
|
||||
default: {
|
||||
return GenBaseType(type);
|
||||
}
|
||||
default: { return GenBaseType(type); }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -303,15 +303,15 @@ class KotlinGenerator : public BaseGenerator {
|
||||
}
|
||||
writer += ")";
|
||||
});
|
||||
GenerateFunOneLine(
|
||||
writer, "name", "e: Int", "String",
|
||||
[&]() {
|
||||
writer += "names[e\\";
|
||||
if (enum_def.MinValue()->IsNonZero())
|
||||
writer += " - " + enum_def.MinValue()->name + ".toInt()\\";
|
||||
writer += "]";
|
||||
},
|
||||
parser_.opts.gen_jvmstatic);
|
||||
GenerateFunOneLine(writer, "name", "e: Int", "String",
|
||||
[&]() {
|
||||
writer += "names[e\\";
|
||||
if (enum_def.MinValue()->IsNonZero())
|
||||
writer += " - " + enum_def.MinValue()->name +
|
||||
".toInt()\\";
|
||||
writer += "]";
|
||||
},
|
||||
parser_.opts.gen_jvmstatic);
|
||||
}
|
||||
});
|
||||
writer.DecrementIdentLevel();
|
||||
@@ -625,10 +625,9 @@ class KotlinGenerator : public BaseGenerator {
|
||||
auto id = identifier.length() > 0 ? ", \"" + identifier + "\"" : "";
|
||||
auto params = "builder: FlatBufferBuilder, offset: Int";
|
||||
auto method_name = "finish" + Esc(struct_def.name) + "Buffer";
|
||||
GenerateFunOneLine(
|
||||
writer, method_name, params, "",
|
||||
[&]() { writer += "builder.finish(offset" + id + ")"; },
|
||||
options.gen_jvmstatic);
|
||||
GenerateFunOneLine(writer, method_name, params, "",
|
||||
[&]() { writer += "builder.finish(offset" + id + ")"; },
|
||||
options.gen_jvmstatic);
|
||||
}
|
||||
|
||||
void GenerateEndStructMethod(StructDef &struct_def, CodeWriter &writer,
|
||||
@@ -639,21 +638,21 @@ class KotlinGenerator : public BaseGenerator {
|
||||
auto returns = "Int";
|
||||
auto field_vec = struct_def.fields.vec;
|
||||
|
||||
GenerateFun(
|
||||
writer, name, params, returns,
|
||||
[&]() {
|
||||
writer += "val o = builder.endTable()";
|
||||
writer.IncrementIdentLevel();
|
||||
for (auto it = field_vec.begin(); it != field_vec.end(); ++it) {
|
||||
auto &field = **it;
|
||||
if (field.deprecated || !field.IsRequired()) { continue; }
|
||||
writer.SetValue("offset", NumToString(field.value.offset));
|
||||
writer += "builder.required(o, {{offset}})";
|
||||
}
|
||||
writer.DecrementIdentLevel();
|
||||
writer += "return o";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
GenerateFun(writer, name, params, returns,
|
||||
[&]() {
|
||||
writer += "val o = builder.endTable()";
|
||||
writer.IncrementIdentLevel();
|
||||
for (auto it = field_vec.begin(); it != field_vec.end();
|
||||
++it) {
|
||||
auto &field = **it;
|
||||
if (field.deprecated || !field.IsRequired()) { continue; }
|
||||
writer.SetValue("offset", NumToString(field.value.offset));
|
||||
writer += "builder.required(o, {{offset}})";
|
||||
}
|
||||
writer.DecrementIdentLevel();
|
||||
writer += "return o";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
}
|
||||
|
||||
// Generate a method to create a vector from a Kotlin array.
|
||||
@@ -668,18 +667,18 @@ class KotlinGenerator : public BaseGenerator {
|
||||
writer.SetValue("root", GenMethod(vector_type));
|
||||
writer.SetValue("cast", CastToSigned(vector_type));
|
||||
|
||||
GenerateFun(
|
||||
writer, method_name, params, "Int",
|
||||
[&]() {
|
||||
writer += "builder.startVector({{size}}, data.size, {{align}})";
|
||||
writer += "for (i in data.size - 1 downTo 0) {";
|
||||
writer.IncrementIdentLevel();
|
||||
writer += "builder.add{{root}}(data[i]{{cast}})";
|
||||
writer.DecrementIdentLevel();
|
||||
writer += "}";
|
||||
writer += "return builder.endVector()";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
GenerateFun(writer, method_name, params, "Int",
|
||||
[&]() {
|
||||
writer +=
|
||||
"builder.startVector({{size}}, data.size, {{align}})";
|
||||
writer += "for (i in data.size - 1 downTo 0) {";
|
||||
writer.IncrementIdentLevel();
|
||||
writer += "builder.add{{root}}(data[i]{{cast}})";
|
||||
writer.DecrementIdentLevel();
|
||||
writer += "}";
|
||||
writer += "return builder.endVector()";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
}
|
||||
|
||||
void GenerateStartVectorField(FieldDef &field, CodeWriter &writer,
|
||||
@@ -705,21 +704,21 @@ class KotlinGenerator : public BaseGenerator {
|
||||
auto field_type = GenTypeBasic(field.value.type.base_type);
|
||||
auto secondArg = MakeCamel(Esc(field.name), false) + ": " + field_type;
|
||||
|
||||
GenerateFunOneLine(
|
||||
writer, "add" + MakeCamel(Esc(field.name), true),
|
||||
"builder: FlatBufferBuilder, " + secondArg, "",
|
||||
[&]() {
|
||||
auto method = GenMethod(field.value.type);
|
||||
writer.SetValue("field_name", MakeCamel(Esc(field.name), false));
|
||||
writer.SetValue("method_name", method);
|
||||
writer.SetValue("pos", field_pos);
|
||||
writer.SetValue("default", GenFBBDefaultValue(field));
|
||||
writer.SetValue("cast", GenFBBValueCast(field));
|
||||
GenerateFunOneLine(writer, "add" + MakeCamel(Esc(field.name), true),
|
||||
"builder: FlatBufferBuilder, " + secondArg, "",
|
||||
[&]() {
|
||||
auto method = GenMethod(field.value.type);
|
||||
writer.SetValue("field_name",
|
||||
MakeCamel(Esc(field.name), false));
|
||||
writer.SetValue("method_name", method);
|
||||
writer.SetValue("pos", field_pos);
|
||||
writer.SetValue("default", GenFBBDefaultValue(field));
|
||||
writer.SetValue("cast", GenFBBValueCast(field));
|
||||
|
||||
writer += "builder.add{{method_name}}({{pos}}, \\";
|
||||
writer += "{{field_name}}{{cast}}, {{default}})";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
writer += "builder.add{{method_name}}({{pos}}, \\";
|
||||
writer += "{{field_name}}{{cast}}, {{default}})";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
}
|
||||
|
||||
static std::string ToSignedType(const Type &type) {
|
||||
@@ -1015,9 +1014,8 @@ class KotlinGenerator : public BaseGenerator {
|
||||
break;
|
||||
default: found = "{{bbgetter}}({{index}}){{ucast}}";
|
||||
}
|
||||
OffsetWrapper(
|
||||
writer, offset_val, [&]() { writer += found; },
|
||||
[&]() { writer += not_found; });
|
||||
OffsetWrapper(writer, offset_val, [&]() { writer += found; },
|
||||
[&]() { writer += not_found; });
|
||||
});
|
||||
break;
|
||||
}
|
||||
@@ -1169,13 +1167,13 @@ class KotlinGenerator : public BaseGenerator {
|
||||
if (struct_def.fixed) {
|
||||
writer += "{{bbsetter}}({{index}}, {{params}}{{cast}})";
|
||||
} else {
|
||||
OffsetWrapper(
|
||||
writer, offset_val,
|
||||
[&]() {
|
||||
writer += "{{bbsetter}}({{index}}, {{params}}{{cast}})";
|
||||
writer += "true";
|
||||
},
|
||||
[&]() { writer += "false"; });
|
||||
OffsetWrapper(writer, offset_val,
|
||||
[&]() {
|
||||
writer +=
|
||||
"{{bbsetter}}({{index}}, {{params}}{{cast}})";
|
||||
writer += "true";
|
||||
},
|
||||
[&]() { writer += "false"; });
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1318,13 +1316,12 @@ class KotlinGenerator : public BaseGenerator {
|
||||
const IDLOptions options) {
|
||||
// create a struct constructor function
|
||||
auto params = StructConstructorParams(struct_def);
|
||||
GenerateFun(
|
||||
code, "create" + Esc(struct_def.name), params, "Int",
|
||||
[&]() {
|
||||
GenStructBody(struct_def, code, "");
|
||||
code += "return builder.offset()";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
GenerateFun(code, "create" + Esc(struct_def.name), params, "Int",
|
||||
[&]() {
|
||||
GenStructBody(struct_def, code, "");
|
||||
code += "return builder.offset()";
|
||||
},
|
||||
options.gen_jvmstatic);
|
||||
}
|
||||
|
||||
static std::string StructConstructorParams(const StructDef &struct_def,
|
||||
|
||||
@@ -3757,9 +3757,7 @@ Offset<reflection::EnumVal> EnumVal::Serialize(FlatBufferBuilder *builder,
|
||||
auto docs__ = parser.opts.binary_schema_comments
|
||||
? builder->CreateVectorOfStrings(doc_comment)
|
||||
: 0;
|
||||
return reflection::CreateEnumVal(
|
||||
*builder, name__, value,
|
||||
type__, docs__);
|
||||
return reflection::CreateEnumVal(*builder, name__, value, type__, docs__);
|
||||
}
|
||||
|
||||
bool EnumVal::Deserialize(const Parser &parser,
|
||||
|
||||
Reference in New Issue
Block a user