update typeName and javaFullName to take capnp::Type
This commit is contained in:
parent
4870faf255
commit
6403f605aa
1 changed files with 73 additions and 74 deletions
|
@ -251,7 +251,7 @@ private:
|
||||||
return kj::mv(result);
|
return kj::mv(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
kj::StringTree typeName(schema::Type::Reader type, kj::String suffix = nullptr) {
|
kj::StringTree typeName(capnp::Type type, kj::String suffix = nullptr) {
|
||||||
switch (type.which()) {
|
switch (type.which()) {
|
||||||
case schema::Type::VOID: return kj::strTree("org.capnproto.Void");
|
case schema::Type::VOID: return kj::strTree("org.capnproto.Void");
|
||||||
|
|
||||||
|
@ -270,16 +270,15 @@ private:
|
||||||
case schema::Type::TEXT: return kj::strTree(" org.capnproto.Text", suffix);
|
case schema::Type::TEXT: return kj::strTree(" org.capnproto.Text", suffix);
|
||||||
case schema::Type::DATA: return kj::strTree(" org.capnproto.Data", suffix);
|
case schema::Type::DATA: return kj::strTree(" org.capnproto.Data", suffix);
|
||||||
|
|
||||||
case schema::Type::ENUM:
|
case schema::Type::ENUM: return javaFullName(type.asEnum());
|
||||||
return javaFullName(schemaLoader.get(type.getEnum().getTypeId()));
|
|
||||||
case schema::Type::STRUCT:
|
case schema::Type::STRUCT:
|
||||||
return kj::strTree(javaFullName(schemaLoader.get(type.getStruct().getTypeId())), suffix);
|
return kj::strTree(javaFullName(type.asStruct()), suffix);
|
||||||
case schema::Type::INTERFACE:
|
case schema::Type::INTERFACE:
|
||||||
return javaFullName(schemaLoader.get(type.getInterface().getTypeId()));
|
return javaFullName(type.asInterface());
|
||||||
|
|
||||||
case schema::Type::LIST:
|
case schema::Type::LIST:
|
||||||
{
|
{
|
||||||
auto elementType = type.getList().getElementType();
|
auto elementType = type.asList().getElementType();
|
||||||
switch (elementType.which()) {
|
switch (elementType.which()) {
|
||||||
case schema::Type::VOID:
|
case schema::Type::VOID:
|
||||||
return kj::strTree(" org.capnproto.PrimitiveList.Void", suffix);
|
return kj::strTree(" org.capnproto.PrimitiveList.Void", suffix);
|
||||||
|
@ -669,8 +668,8 @@ private:
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
kj::String makeListFactoryArg(schema::Type::Reader type) {
|
kj::String makeListFactoryArg(capnp::Type type) {
|
||||||
auto elementType = type.getList().getElementType();
|
auto elementType = type.asList().getElementType();
|
||||||
switch (elementType.which()) {
|
switch (elementType.which()) {
|
||||||
case schema::Type::STRUCT:
|
case schema::Type::STRUCT:
|
||||||
return kj::str(typeName(elementType, kj::str(".listFactory")));
|
return kj::str(typeName(elementType, kj::str(".listFactory")));
|
||||||
|
@ -753,7 +752,7 @@ private:
|
||||||
|
|
||||||
FieldKind kind = FieldKind::PRIMITIVE;
|
FieldKind kind = FieldKind::PRIMITIVE;
|
||||||
kj::String ownedType;
|
kj::String ownedType;
|
||||||
kj::String type = typeName(slot.getType(), kj::str("")).flatten();
|
kj::String type = typeName(field.getType(), kj::str("")).flatten();
|
||||||
kj::StringPtr setterDefault; // only for void
|
kj::StringPtr setterDefault; // only for void
|
||||||
kj::String defaultMask; // primitives only
|
kj::String defaultMask; // primitives only
|
||||||
size_t defaultOffset = 0; // pointers only: offset of the default value within the schema.
|
size_t defaultOffset = 0; // pointers only: offset of the default value within the schema.
|
||||||
|
@ -1075,9 +1074,9 @@ private:
|
||||||
kj::String defaultParams = defaultOffset == 0 ? kj::str("null, 0") : kj::str(
|
kj::String defaultParams = defaultOffset == 0 ? kj::str("null, 0") : kj::str(
|
||||||
"Schemas.b_", kj::hex(typeId), ", ", defaultOffset);
|
"Schemas.b_", kj::hex(typeId), ", ", defaultOffset);
|
||||||
|
|
||||||
kj::String listFactory = makeListFactoryArg(typeBody);
|
kj::String listFactory = makeListFactoryArg(field.getType());
|
||||||
kj::String readerClass = kj::str(typeName(typeBody, kj::str(".Reader")));
|
kj::String readerClass = kj::str(typeName(field.getType(), kj::str(".Reader")));
|
||||||
kj::String builderClass = kj::str(typeName(typeBody, kj::str(".Builder")));
|
kj::String builderClass = kj::str(typeName(field.getType(), kj::str(".Builder")));
|
||||||
|
|
||||||
return FieldText {
|
return FieldText {
|
||||||
kj::strTree(
|
kj::strTree(
|
||||||
|
@ -1336,7 +1335,7 @@ private:
|
||||||
ConstText makeConstText(kj::StringPtr scope, kj::StringPtr name, ConstSchema schema, int indent) {
|
ConstText makeConstText(kj::StringPtr scope, kj::StringPtr name, ConstSchema schema, int indent) {
|
||||||
auto proto = schema.getProto();
|
auto proto = schema.getProto();
|
||||||
auto constProto = proto.getConst();
|
auto constProto = proto.getConst();
|
||||||
auto type = constProto.getType();
|
auto type = schema.getType();
|
||||||
auto typeName_ = typeName(type).flatten();
|
auto typeName_ = typeName(type).flatten();
|
||||||
auto upperCase = toUpperCase(name);
|
auto upperCase = toUpperCase(name);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue