Package io.airlift.drift.codec.metadata
Class AbstractThriftMetadataBuilder
java.lang.Object
io.airlift.drift.codec.metadata.AbstractThriftMetadataBuilder
- Direct Known Subclasses:
ThriftStructMetadataBuilder,ThriftUnionMetadataBuilder
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final List<io.airlift.drift.codec.metadata.MethodInjection>protected final Typeprotected final ThriftCatalogprotected final List<io.airlift.drift.codec.metadata.ConstructorInjection>protected final List<io.airlift.drift.codec.metadata.Extractor>protected final List<io.airlift.drift.codec.metadata.FieldInjection>protected final List<io.airlift.drift.codec.metadata.FieldMetadata>protected final MetadataErrorsprotected final List<io.airlift.drift.codec.metadata.MethodInjection>protected final Stringprotected final Type -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractThriftMetadataBuilder(ThriftCatalog catalog, Type structType) -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidprotected final voidaddConstructors(Type type) protected final voidprotected final voidprotected final voidprotected final voidaddMethods(Type type, boolean allowReaders, boolean allowWriters) abstract ThriftStructMetadatabuild()protected final ThriftMethodInjectionprotected abstract ThriftFieldMetadatabuildField(Collection<io.airlift.drift.codec.metadata.FieldMetadata> input) protected final Iterable<ThriftFieldMetadata>protected final List<ThriftMethodInjection>protected static List<ThriftParameterInjection>buildParameterInjections(List<io.airlift.drift.codec.metadata.ParameterInjection> parameters) protected abstract Class<?>extractFieldIdlAnnotations(short fieldId, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) protected final booleanextractFieldIsLegacyId(short id, String fieldName, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) protected final booleanextractFieldIsRecursiveReference(short fieldId, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) protected final StringextractFieldName(short id, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) protected final ThriftField.RequirednessextractFieldRequiredness(short fieldId, String fieldName, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) protected final voidprotected final voidprotected final voidprotected abstract StringClass<?>protected final List<io.airlift.drift.codec.metadata.ParameterInjection>getParameterInjections(Type type, Annotation[][] parameterAnnotations, Type[] parameterTypes, List<String> parameterNames) Class<?>protected final booleanhasThriftFieldAnnotation(Method method) Assigns all fields an id if possible.protected final voidinferThriftFieldIds(com.google.common.collect.Multimap<String, io.airlift.drift.codec.metadata.FieldMetadata> fieldsByName, Set<String> fieldsWithConflictingIds) protected final booleanisValidateGetter(Method method) protected abstract booleanisValidateSetter(Method method) protected final voidnormalizeThriftFields(ThriftCatalog catalog) protected abstract voidprotected final voidverifyClass(Class<? extends Annotation> annotation) protected final voidverifyFieldType(short id, String name, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields, ThriftCatalog catalog) Verifies that the the fields all have a supported Java type and that all fields map to the exact same ThriftType.
-
Field Details
-
structName
-
structType
-
builderType
-
documentation
-
fields
-
extractors
-
builderMethodInjections
-
constructorInjections
-
fieldInjections
-
methodInjections
-
catalog
-
metadataErrors
-
-
Constructor Details
-
AbstractThriftMetadataBuilder
-
-
Method Details
-
extractName
-
extractStructIdlAnnotations
-
extractBuilderClass
-
validateConstructors
protected abstract void validateConstructors() -
isValidateSetter
-
buildField
protected abstract ThriftFieldMetadata buildField(Collection<io.airlift.drift.codec.metadata.FieldMetadata> input) -
build
-
getMetadataErrors
-
getStructClass
-
getBuilderClass
-
verifyClass
-
extractFromConstructors
protected final void extractFromConstructors() -
addConstructors
-
addBuilderMethods
protected final void addBuilderMethods() -
extractFromFields
protected final void extractFromFields() -
addFields
-
addField
-
extractFromMethods
protected final void extractFromMethods() -
addMethods
-
addMethod
-
hasThriftFieldAnnotation
-
isValidateGetter
-
getParameterInjections
-
normalizeThriftFields
-
inferThriftFieldIds
Assigns all fields an id if possible. Fields are grouped by name and for each group, if there is a single id, all fields in the group are assigned this id. If the group has multiple ids, an error is reported. -
inferThriftFieldIds
-
extractFieldIdlAnnotations
protected final Map<String,String> extractFieldIdlAnnotations(short fieldId, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) -
extractFieldIsRecursiveReference
protected final boolean extractFieldIsRecursiveReference(short fieldId, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) -
extractFieldIsLegacyId
protected final boolean extractFieldIsLegacyId(short id, String fieldName, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) -
extractFieldName
protected final String extractFieldName(short id, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) -
extractFieldRequiredness
protected final ThriftField.Requiredness extractFieldRequiredness(short fieldId, String fieldName, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields) -
verifyFieldType
protected final void verifyFieldType(short id, String name, Collection<io.airlift.drift.codec.metadata.FieldMetadata> fields, ThriftCatalog catalog) Verifies that the the fields all have a supported Java type and that all fields map to the exact same ThriftType. -
buildBuilderConstructorInjections
-
buildFieldInjections
-
buildMethodInjections
-
buildParameterInjections
protected static List<ThriftParameterInjection> buildParameterInjections(List<io.airlift.drift.codec.metadata.ParameterInjection> parameters)
-