/** Returns the type name for the scalar, relative or fully-qualified name {@code name}. */ ProtoType resolveType(String name) { return resolveType(name, false); }
/** Returns the type name for the relative or fully-qualified name {@code name}. */ ProtoType resolveMessageType(String name) { return resolveType(name, true); }
void link(Linker linker) { linker = linker.withContext(this); type = linker.resolveType(elementType); }
private ProtoType resolveType(String name, boolean messageOnly) { ProtoType type = ProtoType.get(name); if (type.isScalar()) { if (messageOnly) { addError("expected a message but was %s", name); } return type; } if (type.isMap()) { if (messageOnly) { addError("expected a message but was %s", name); } ProtoType keyType = resolveType(type.keyType().toString(), false); ProtoType valueType = resolveType(type.valueType().toString(), false); return new ProtoType(keyType, valueType, name); } Type resolved = resolve(name, protoTypeNames); if (resolved == null) { addError("unable to resolve %s", name); return ProtoType.BYTES; // Just return any placeholder. } if (messageOnly && !(resolved instanceof MessageType)) { addError("expected a message but was %s", name); return ProtoType.BYTES; // Just return any placeholder. } return resolved.type(); }
/** Returns the type name for the relative or fully-qualified name {@code name}. */ ProtoType resolveMessageType(String name) { return resolveType(name, true); }
/** Returns the type name for the scalar, relative or fully-qualified name {@code name}. */ ProtoType resolveType(String name) { return resolveType(name, false); }
/** Returns the type name for the relative or fully-qualified name {@code name}. */ ProtoType resolveMessageType(String name) { return resolveType(name, true); }
/** Returns the type name for the scalar, relative or fully-qualified name {@code name}. */ ProtoType resolveType(String name) { return resolveType(name, false); }
void link(Linker linker) { linker = linker.withContext(this); type = linker.resolveType(elementType); }
void link(Linker linker) { linker = linker.withContext(this); type = linker.resolveType(elementType); }
private ProtoType resolveType(String name, boolean messageOnly) { ProtoType type = ProtoType.get(name); if (type.isScalar()) { if (messageOnly) { addError("expected a message but was %s", name); } return type; } if (type.isMap()) { if (messageOnly) { addError("expected a message but was %s", name); } ProtoType keyType = resolveType(type.keyType().toString(), false); ProtoType valueType = resolveType(type.valueType().toString(), false); return new ProtoType(keyType, valueType, name); } Type resolved = resolve(name, protoTypeNames); if (resolved == null) { addError("unable to resolve %s", name); return ProtoType.BYTES; // Just return any placeholder. } if (messageOnly && !(resolved instanceof MessageType)) { addError("expected a message but was %s", name); return ProtoType.BYTES; // Just return any placeholder. } return resolved.type(); }
private ProtoType resolveType(String name, boolean messageOnly) { ProtoType type = ProtoType.get(name); if (type.isScalar()) { if (messageOnly) { addError("expected a message but was %s", name); } return type; } if (type.isMap()) { if (messageOnly) { addError("expected a message but was %s", name); } ProtoType keyType = resolveType(type.keyType().toString(), false); ProtoType valueType = resolveType(type.valueType().toString(), false); return new ProtoType(keyType, valueType, name); } Type resolved = resolve(name, protoTypeNames); if (resolved == null) { addError("unable to resolve %s", name); return ProtoType.BYTES; // Just return any placeholder. } if (messageOnly && !(resolved instanceof MessageType)) { addError("expected a message but was %s", name); return ProtoType.BYTES; // Just return any placeholder. } return resolved.type(); }