Package com.dslplatform.json.processor
Class StructInfo
- java.lang.Object
-
- com.dslplatform.json.processor.StructInfo
-
public class StructInfo extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description javax.lang.model.element.ExecutableElementannotatedConstructorjavax.lang.model.element.ExecutableElementannotatedFactoryjavax.lang.model.element.AnnotationMirrorannotationjava.util.Map<javax.lang.model.element.VariableElement,javax.lang.model.element.VariableElement>argumentMappingjava.util.LinkedHashMap<java.lang.String,AttributeInfo>attributesjava.lang.StringbinaryNameBuilderInfobuilderjava.util.List<java.lang.String>constantsConverterInfoconverterprivate booleancreateThroughConstructorjavax.lang.model.element.TypeElementdeserializeAsjava.lang.StringdeserializeNameprivate StructInfodeserializeTargetjavax.lang.model.type.DeclaredTypediscoveredByjava.lang.Stringdiscriminatorjavax.lang.model.element.TypeElementelementjavax.lang.model.element.ElementenumConstantNameSourcejava.util.EnumSet<CompiledJson.Format>formatsjava.util.Map<java.lang.String,javax.lang.model.type.TypeMirror>genericSignaturesjava.util.Set<StructInfo>implementationsprivate StructInfoinheritsFrombooleanisObjectFormatFirstbooleanisParameterizedjava.lang.StringjsonObjectReaderPathjava.util.List<javax.lang.model.element.ExecutableElement>matchingConstructorsjava.lang.StringnameNamingStrategynamingStrategyCompiledJson.ObjectFormatPolicyobjectFormatPolicyCompiledJson.BehavioronUnknownjava.util.Stack<java.lang.String>pathjava.util.Set<javax.lang.model.element.Element>propertiesjava.util.Set<java.lang.String>propertyNamesprivate javax.lang.model.element.ExecutableElementselectedConstructorjava.util.Map<java.lang.String,java.lang.String>serializedNamesObjectTypetypejava.util.List<java.lang.String>typeParametersNamesCompiledJson.TypeSignaturetypeSignaturejava.util.Map<java.lang.String,javax.lang.model.type.TypeMirror>unknowns
-
Constructor Summary
Constructors Constructor Description StructInfo(ConverterInfo converter, javax.lang.model.type.DeclaredType discoveredBy, javax.lang.model.element.TypeElement target, java.lang.String name, java.lang.String binaryName)StructInfo(javax.lang.model.element.TypeElement element, javax.lang.model.type.DeclaredType discoveredBy, java.lang.String name, java.lang.String binaryName, ObjectType type, java.lang.String jsonObjectReaderPath, java.util.List<javax.lang.model.element.ExecutableElement> matchingConstructors, javax.lang.model.element.ExecutableElement annotatedConstructor, javax.lang.model.element.ExecutableElement annotatedFactory, BuilderInfo builder, javax.lang.model.element.AnnotationMirror annotation, CompiledJson.Behavior onUnknown, CompiledJson.TypeSignature typeSignature, CompiledJson.ObjectFormatPolicy objectFormatPolicy, javax.lang.model.element.TypeElement deserializeAs, java.lang.String discriminator, java.lang.String deserializeName, javax.lang.model.element.Element enumConstantNameSource, NamingStrategy namingStrategy, CompiledJson.Format[] formats, java.util.Map<java.lang.String,javax.lang.model.type.TypeMirror> genericSignatures)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(AttributeInfo attr)static intcalcHash(java.lang.String name)static intcalcWeakHash(java.lang.String name)booleancheckHashCollision()booleancreateFromEmptyInstance()private java.util.List<java.lang.String>extractParametersNames(java.util.List<? extends javax.lang.model.element.TypeParameterElement> typeParameters)StructInfogetDeserializeTarget()StructInfogetParent()booleanhasAnnotation()private booleanhasCycles(java.util.HashSet<javax.lang.model.type.TypeMirror> processed, java.util.Map<java.lang.String,StructInfo> structs)booleanhasCycles(java.util.Map<java.lang.String,StructInfo> structs)booleanhasEmptyCtor()booleanhasKnownConversion()java.util.Collection<AttributeInfo>inheritedAttributes()java.lang.StringpathDescription()java.lang.StringpropertyName(AttributeInfo attribute)javax.lang.model.element.ExecutableElementselectedConstructor()voidsetDeserializeTarget(StructInfo value)voidsortAttributes()voidsupertype(StructInfo parent)voiduseConstructor(javax.lang.model.element.ExecutableElement ctor)booleanusesCtorWithArguments()booleanusesEmptyCtor()
-
-
-
Field Detail
-
element
public final javax.lang.model.element.TypeElement element
-
discoveredBy
public final javax.lang.model.type.DeclaredType discoveredBy
-
name
public final java.lang.String name
-
binaryName
public final java.lang.String binaryName
-
type
public final ObjectType type
-
converter
public final ConverterInfo converter
-
jsonObjectReaderPath
public final java.lang.String jsonObjectReaderPath
-
matchingConstructors
public final java.util.List<javax.lang.model.element.ExecutableElement> matchingConstructors
-
annotatedFactory
public final javax.lang.model.element.ExecutableElement annotatedFactory
-
annotatedConstructor
public final javax.lang.model.element.ExecutableElement annotatedConstructor
-
builder
public final BuilderInfo builder
-
implementations
public final java.util.Set<StructInfo> implementations
-
inheritsFrom
private StructInfo inheritsFrom
-
serializedNames
public final java.util.Map<java.lang.String,java.lang.String> serializedNames
-
annotation
public final javax.lang.model.element.AnnotationMirror annotation
-
onUnknown
public final CompiledJson.Behavior onUnknown
-
typeSignature
public final CompiledJson.TypeSignature typeSignature
-
objectFormatPolicy
public final CompiledJson.ObjectFormatPolicy objectFormatPolicy
-
deserializeAs
public final javax.lang.model.element.TypeElement deserializeAs
-
discriminator
public final java.lang.String discriminator
-
deserializeName
public final java.lang.String deserializeName
-
namingStrategy
@Nullable public final NamingStrategy namingStrategy
-
formats
public final java.util.EnumSet<CompiledJson.Format> formats
-
isObjectFormatFirst
public final boolean isObjectFormatFirst
-
attributes
public final java.util.LinkedHashMap<java.lang.String,AttributeInfo> attributes
-
propertyNames
public final java.util.Set<java.lang.String> propertyNames
-
properties
public final java.util.Set<javax.lang.model.element.Element> properties
-
constants
public final java.util.List<java.lang.String> constants
-
enumConstantNameSource
public final javax.lang.model.element.Element enumConstantNameSource
-
path
public final java.util.Stack<java.lang.String> path
-
unknowns
public final java.util.Map<java.lang.String,javax.lang.model.type.TypeMirror> unknowns
-
isParameterized
public final boolean isParameterized
-
typeParametersNames
public final java.util.List<java.lang.String> typeParametersNames
-
genericSignatures
public final java.util.Map<java.lang.String,javax.lang.model.type.TypeMirror> genericSignatures
-
argumentMapping
public final java.util.Map<javax.lang.model.element.VariableElement,javax.lang.model.element.VariableElement> argumentMapping
-
selectedConstructor
private javax.lang.model.element.ExecutableElement selectedConstructor
-
createThroughConstructor
private boolean createThroughConstructor
-
deserializeTarget
private StructInfo deserializeTarget
-
-
Constructor Detail
-
StructInfo
public StructInfo(javax.lang.model.element.TypeElement element, javax.lang.model.type.DeclaredType discoveredBy, java.lang.String name, java.lang.String binaryName, ObjectType type, @Nullable java.lang.String jsonObjectReaderPath, @Nullable java.util.List<javax.lang.model.element.ExecutableElement> matchingConstructors, @Nullable javax.lang.model.element.ExecutableElement annotatedConstructor, @Nullable javax.lang.model.element.ExecutableElement annotatedFactory, @Nullable BuilderInfo builder, @Nullable javax.lang.model.element.AnnotationMirror annotation, @Nullable CompiledJson.Behavior onUnknown, @Nullable CompiledJson.TypeSignature typeSignature, CompiledJson.ObjectFormatPolicy objectFormatPolicy, @Nullable javax.lang.model.element.TypeElement deserializeAs, @Nullable java.lang.String discriminator, @Nullable java.lang.String deserializeName, @Nullable javax.lang.model.element.Element enumConstantNameSource, @Nullable NamingStrategy namingStrategy, @Nullable CompiledJson.Format[] formats, java.util.Map<java.lang.String,javax.lang.model.type.TypeMirror> genericSignatures)
-
StructInfo
public StructInfo(ConverterInfo converter, javax.lang.model.type.DeclaredType discoveredBy, javax.lang.model.element.TypeElement target, java.lang.String name, java.lang.String binaryName)
-
-
Method Detail
-
extractParametersNames
private java.util.List<java.lang.String> extractParametersNames(java.util.List<? extends javax.lang.model.element.TypeParameterElement> typeParameters)
-
selectedConstructor
@Nullable public javax.lang.model.element.ExecutableElement selectedConstructor()
-
supertype
public void supertype(@Nullable StructInfo parent)
-
getParent
@Nullable public StructInfo getParent()
-
inheritedAttributes
public java.util.Collection<AttributeInfo> inheritedAttributes()
-
useConstructor
public void useConstructor(javax.lang.model.element.ExecutableElement ctor)
-
hasKnownConversion
public boolean hasKnownConversion()
-
usesEmptyCtor
public boolean usesEmptyCtor()
-
usesCtorWithArguments
public boolean usesCtorWithArguments()
-
hasEmptyCtor
public boolean hasEmptyCtor()
-
createFromEmptyInstance
public boolean createFromEmptyInstance()
-
hasAnnotation
public boolean hasAnnotation()
-
hasCycles
public boolean hasCycles(java.util.Map<java.lang.String,StructInfo> structs)
-
hasCycles
private boolean hasCycles(java.util.HashSet<javax.lang.model.type.TypeMirror> processed, java.util.Map<java.lang.String,StructInfo> structs)
-
propertyName
public java.lang.String propertyName(AttributeInfo attribute)
-
calcHash
public static int calcHash(java.lang.String name)
-
calcWeakHash
public static int calcWeakHash(java.lang.String name)
-
getDeserializeTarget
@Nullable public StructInfo getDeserializeTarget()
-
setDeserializeTarget
public void setDeserializeTarget(@Nullable StructInfo value)
-
pathDescription
public java.lang.String pathDescription()
-
checkHashCollision
public boolean checkHashCollision()
-
sortAttributes
public void sortAttributes()
-
add
public void add(AttributeInfo attr)
-
-