Top Description Fields Constructors Methods
com.fasterxml.jackson.dataformat.protobuf.schema

public Class TypeResolver

extends Object
Class Inheritance
Imports
java.util.*, com.fasterxml.jackson.core.util.InternCache, com.squareup.protoparser.*

Stateful class needed to properly resolve type definitions of protobuf message (and related types); some complexity coming from possible nested nature of definitions.

Field Summary

Modifier and TypeField and Description
private final String
_contextName

For nested definitions we also need to know the name this context has (not used for root): this is unqualified name (that is, only name for context, not path)

private Map<String, MessageElement>
_declaredMessageTypes

Mapping from types declared within this scope (root types for root resolver; nested types for child resolvers)

private Map<String, ProtobufEnum>
_enumTypes

Enum types visible at this level and deeper (nested enums with scoped names), not including enums declared at outer levels.

private final TypeResolver
private Map<String, ProtobufMessage>
_resolvedMessageTypes

Mapping from names of types within this scope (with possible prefix as necessary) into resolve types.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
private ProtobufField
_findAndResolve(FieldElement nativeField, String typeStr)

private ProtobufField
_findAnyResolved(FieldElement nativeField, String typeStr)

private ProtobufField
_findLocalResolved(FieldElement nativeField, String typeStr)

private StringBuilder
private StringBuilder
protected ProtobufMessage
private final String
_scopedName(String localName)

private static final String
_scopedName(String contextName, String localName)

protected void
protected void
protected static TypeResolver
construct(TypeResolver parent, String localName, Collection<TypeElement> nativeTypes)

protected static ProtobufEnum
public static ProtobufMessage
resolve(Collection<TypeElement> nativeTypes, MessageElement rawType)

Main entry method for public API, for resolving specific root-level type and other types it depends on.

protected ProtobufMessage
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_contextNameback to summary
private final String _contextName

For nested definitions we also need to know the name this context has (not used for root): this is unqualified name (that is, only name for context, not path)

_declaredMessageTypesback to summary
private Map<String, MessageElement> _declaredMessageTypes

Mapping from types declared within this scope (root types for root resolver; nested types for child resolvers)

_enumTypesback to summary
private Map<String, ProtobufEnum> _enumTypes

Enum types visible at this level and deeper (nested enums with scoped names), not including enums declared at outer levels.

_parentback to summary
private final TypeResolver _parent
_resolvedMessageTypesback to summary
private Map<String, ProtobufMessage> _resolvedMessageTypes

Mapping from names of types within this scope (with possible prefix as necessary) into resolve types.

Constructor Detail

TypeResolverback to summary
protected TypeResolver(TypeResolver p, String name, Map<String, MessageElement> declaredMsgs, Map<String, ProtobufEnum> enums)

Method Detail

_findAndResolveback to summary
private ProtobufField _findAndResolve(FieldElement nativeField, String typeStr)
_findAnyResolvedback to summary
private ProtobufField _findAnyResolved(FieldElement nativeField, String typeStr)
_findLocalResolvedback to summary
private ProtobufField _findLocalResolved(FieldElement nativeField, String typeStr)
_knownEnumsback to summary
private StringBuilder _knownEnums(StringBuilder sb)
_knownMsgsback to summary
private StringBuilder _knownMsgs(StringBuilder sb)
_resolveback to summary
protected ProtobufMessage _resolve(MessageElement rawType)
_scopedNameback to summary
private final String _scopedName(String localName)
_scopedNameback to summary
private static final String _scopedName(String contextName, String localName)
addEnumTypeback to summary
protected void addEnumType(String name, ProtobufEnum enumType)
addResolvedMessageTypeback to summary
protected void addResolvedMessageType(String name, ProtobufMessage toResolve)
constructback to summary
protected static TypeResolver construct(TypeResolver parent, String localName, Collection<TypeElement> nativeTypes)
constructEnumback to summary
protected static ProtobufEnum constructEnum(EnumElement nativeEnum)
resolveback to summary
public static ProtobufMessage resolve(Collection<TypeElement> nativeTypes, MessageElement rawType)

Main entry method for public API, for resolving specific root-level type and other types it depends on.

resolveback to summary
protected ProtobufMessage resolve(TypeResolver parent, MessageElement rawType)