Class DefaultIdStrategy
java.lang.Object
io.protostuff.runtime.IdStrategy
io.protostuff.runtime.DefaultIdStrategy
The FQCN(fully qualified class name) will serve as the id (string). Does not need any registration in the user-code
(works out-of-the-box). The size of serialized representation may be not very efficient.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class(package private) static final class(package private) static final class(package private) static final class(package private) static final class(package private) static final classNested classes/interfaces inherited from class IdStrategy
IdStrategy.Factory, IdStrategy.UnknownTypeException, IdStrategy.Wrapper -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final ConcurrentHashMap<String, CollectionSchema.MessageFactory> (package private) final ConcurrentHashMap<String, HasDelegate<?>> (package private) final ConcurrentHashMap<String, EnumIO<?>> (package private) final ConcurrentHashMap<String, MapSchema.MessageFactory> (package private) final ConcurrentHashMap<String, HasSchema<?>> Fields inherited from class IdStrategy
ARRAY_BIGDECIMAL_SCHEMA, ARRAY_BIGINTEGER_SCHEMA, ARRAY_BOOL_BOXED_SCHEMA, ARRAY_BOOL_DERIVED_SCHEMA, ARRAY_BOOL_PRIMITIVE_SCHEMA, ARRAY_BYTEARRAY_SCHEMA, ARRAY_BYTESTRING_SCHEMA, ARRAY_CHAR_BOXED_SCHEMA, ARRAY_CHAR_DERIVED_SCHEMA, ARRAY_CHAR_PRIMITIVE_SCHEMA, ARRAY_DATE_SCHEMA, ARRAY_DOUBLE_BOXED_SCHEMA, ARRAY_DOUBLE_DERIVED_SCHEMA, ARRAY_DOUBLE_PRIMITIVE_SCHEMA, ARRAY_ELEMENT_SCHEMA, ARRAY_FLOAT_BOXED_SCHEMA, ARRAY_FLOAT_DERIVED_SCHEMA, ARRAY_FLOAT_PRIMITIVE_SCHEMA, ARRAY_INT32_BOXED_SCHEMA, ARRAY_INT32_DERIVED_SCHEMA, ARRAY_INT32_PRIMITIVE_SCHEMA, ARRAY_INT64_BOXED_SCHEMA, ARRAY_INT64_DERIVED_SCHEMA, ARRAY_INT64_PRIMITIVE_SCHEMA, ARRAY_PIPE_SCHEMA, ARRAY_SCHEMA, ARRAY_SHORT_BOXED_SCHEMA, ARRAY_SHORT_DERIVED_SCHEMA, ARRAY_SHORT_PRIMITIVE_SCHEMA, ARRAY_STRING_SCHEMA, AUTO_LOAD_POLYMORPHIC_CLASSES, CLASS_ELEMENT_SCHEMA, CLASS_PIPE_SCHEMA, CLASS_SCHEMA, COLLECTION_PIPE_SCHEMA, COLLECTION_SCHEMA, COLLECTION_SCHEMA_ON_REPEATED_FIELDS, DEFAULT_FLAGS, DYNAMIC_VALUE_PIPE_SCHEMA, DYNAMIC_VALUE_SCHEMA, ENTRY_PIPE_SCHEMA, ENTRY_SCHEMA, ENUMS_BY_NAME, flags, groupId, MAP_PIPE_SCHEMA, MAP_SCHEMA, MORPH_COLLECTION_INTERFACES, MORPH_MAP_INTERFACES, MORPH_NON_FINAL_POJOS, NUMBER_ELEMENT_SCHEMA, OBJECT_ELEMENT_SCHEMA, OBJECT_PIPE_SCHEMA, OBJECT_SCHEMA, POJO_SCHEMA_ON_COLLECTION_FIELDS, POJO_SCHEMA_ON_MAP_FIELDS, POLYMORPHIC_COLLECTION_PIPE_SCHEMA, POLYMORPHIC_COLLECTION_SCHEMA, POLYMORPHIC_ENUM_ELEMENT_SCHEMA, POLYMORPHIC_MAP_PIPE_SCHEMA, POLYMORPHIC_MAP_SCHEMA, POLYMORPHIC_POJO_ELEMENT_SCHEMA, POLYMORPHIC_THROWABLE_ELEMENT_SCHEMA, PRESERVE_NULL_ELEMENTS, preserveNull, primaryGroup -
Constructor Summary
ConstructorsConstructorDescriptionDefaultIdStrategy(int flags) DefaultIdStrategy(int flags, IdStrategy primaryGroup, int groupId) DefaultIdStrategy(IdStrategy primaryGroup, int groupId) -
Method Summary
Modifier and TypeMethodDescriptionprotected CollectionSchema.MessageFactorygetCollectionFactory(Class<?> clazz) Returns theCollectionSchema.MessageFactory.<T> Delegate<T> getDelegate(Class<? super T> typeClass) Returns thedelegate.<T> HasDelegate<T> getDelegateWrapper(Class<? super T> typeClass) Returns thedelegate.Returns theEnumIO.protected MapSchema.MessageFactorygetMapFactory(Class<?> clazz) Returns theMapSchema.MessageFactory.<T> HasSchema<T> getSchemaWrapper(Class<T> typeClass, boolean create) Returns theschema wrapper.private <T> HasSchema<T> getSchemaWrapper(String className, boolean load) booleanisDelegateRegistered(Class<?> typeClass) Returns true if there is aDelegateexplicitly registered for thetypeClass.booleanisRegistered(Class<?> typeClass) Returns true if thetypeClassis explicitly registered.<T> booleanUsed byRuntimeSchema.map(Class, Class).booleanRegisters a collection.<T> booleanregisterDelegate(Delegate<T> delegate) Registers a delegate.<T> booleanregisterDelegate(String className, Delegate<T> delegate) Registers a delegate by specifying the class name.<T extends Enum<T>>
booleanregisterEnum(Class<T> enumClass) Registers an enum.booleanregisterMap(MapSchema.MessageFactory factory) Registers a map.<T> booleanregisterPojo(Class<T> typeClass) Registers a pojo.<T> booleanregisterPojo(Class<T> typeClass, Schema<T> schema) Registers a pojo.protected Class<?> resolveArrayComponentTypeFrom(Input input, boolean mapped) (package private) static Class<?> resolveClass(String className) protected Class<?> resolveClassFrom(Input input, boolean mapped, boolean array) protected CollectionSchema.MessageFactoryresolveCollectionFrom(Input input) protected <T> HasDelegate<T> resolveDelegateFrom(Input input) protected EnumIO<?> resolveEnumFrom(Input input) protected MapSchema.MessageFactoryresolveMapFrom(Input input) protected <T> HasSchema<T> resolvePojoFrom(Input input, int fieldNumber) protected voidtransferArrayId(Input input, Output output, int fieldNumber, boolean mapped) protected voidtransferClassId(Input input, Output output, int fieldNumber, boolean mapped, boolean array) protected voidtransferCollectionId(Input input, Output output, int fieldNumber) protected <T> HasDelegate<T> transferDelegateId(Input input, Output output, int fieldNumber) protected voidtransferEnumId(Input input, Output output, int fieldNumber) protected voidtransferMapId(Input input, Output output, int fieldNumber) protected <T> HasSchema<T> transferPojoId(Input input, Output output, int fieldNumber) protected <T> HasDelegate<T> tryWriteDelegateIdTo(Output output, int fieldNumber, Class<T> clazz) If this method returns null, the clazz was not registered as a delegate.protected <T> HasSchema<T> tryWritePojoIdTo(Output output, int fieldNumber, Class<T> clazz, boolean registered) protected voidwriteArrayIdTo(Output output, Class<?> componentType) protected voidwriteClassIdTo(Output output, Class<?> componentType, boolean array) protected voidwriteCollectionIdTo(Output output, int fieldNumber, Class<?> clazz) protected voidwriteEnumIdTo(Output output, int fieldNumber, Class<?> clazz) protected voidwriteMapIdTo(Output output, int fieldNumber, Class<?> clazz) protected <T> Schema<T> writeMessageIdTo(Output output, int fieldNumber, Message<T> message) protected <T> HasSchema<T> writePojoIdTo(Output output, int fieldNumber, Class<T> clazz) Methods inherited from class IdStrategy
createMessageInstance, newSchema
-
Field Details
-
pojoMapping
-
enumMapping
-
collectionMapping
-
mapMapping
-
delegateMapping
-
-
Constructor Details
-
DefaultIdStrategy
public DefaultIdStrategy() -
DefaultIdStrategy
-
DefaultIdStrategy
public DefaultIdStrategy(int flags) -
DefaultIdStrategy
-
-
Method Details
-
registerPojo
Registers a pojo. Returns true if registration is successful or if the same exact schema was previously registered. Used byRuntimeSchema.register(Class, Schema). -
registerPojo
Registers a pojo. Returns true if registration is successful or if the same exact schema was previously registered. -
registerEnum
-
registerDelegate
Registers a delegate. Returns true if registration is successful. -
registerDelegate
-
registerCollection
Registers a collection. Returns true if registration is successful. -
registerMap
Registers a map. Returns true if registration is successful. -
map
Used byRuntimeSchema.map(Class, Class). -
isDelegateRegistered
Description copied from class:IdStrategyReturns true if there is aDelegateexplicitly registered for thetypeClass.- Specified by:
isDelegateRegisteredin classIdStrategy
-
getDelegateWrapper
Description copied from class:IdStrategyReturns thedelegate.- Specified by:
getDelegateWrapperin classIdStrategy
-
getDelegate
Description copied from class:IdStrategyReturns thedelegate.- Specified by:
getDelegatein classIdStrategy
-
isRegistered
Description copied from class:IdStrategyReturns true if thetypeClassis explicitly registered.- Specified by:
isRegisteredin classIdStrategy
-
getSchemaWrapper
-
getSchemaWrapper
Description copied from class:IdStrategyReturns theschema wrapper. The caller is responsible that the typeClass is a pojo (e.g not an enum/array/etc).- Specified by:
getSchemaWrapperin classIdStrategy
-
getEnumIO
-
getEnumIO
Description copied from class:IdStrategyReturns theEnumIO. The callers (internal field factories) are responsible that the class provided is an enum class.- Specified by:
getEnumIOin classIdStrategy
-
getCollectionFactory
Description copied from class:IdStrategyReturns theCollectionSchema.MessageFactory. The callers (internal field factories) are responsible that the class provided implementsCollection.- Specified by:
getCollectionFactoryin classIdStrategy
-
getMapFactory
Description copied from class:IdStrategyReturns theMapSchema.MessageFactory. The callers (internal field factories}) are responsible that the class provided implementsMap.- Specified by:
getMapFactoryin classIdStrategy
-
writeCollectionIdTo
protected void writeCollectionIdTo(Output output, int fieldNumber, Class<?> clazz) throws IOException - Specified by:
writeCollectionIdToin classIdStrategy- Throws:
IOException
-
transferCollectionId
- Specified by:
transferCollectionIdin classIdStrategy- Throws:
IOException
-
resolveCollectionFrom
- Specified by:
resolveCollectionFromin classIdStrategy- Throws:
IOException
-
writeMapIdTo
- Specified by:
writeMapIdToin classIdStrategy- Throws:
IOException
-
transferMapId
- Specified by:
transferMapIdin classIdStrategy- Throws:
IOException
-
resolveMapFrom
- Specified by:
resolveMapFromin classIdStrategy- Throws:
IOException
-
writeEnumIdTo
- Specified by:
writeEnumIdToin classIdStrategy- Throws:
IOException
-
transferEnumId
- Specified by:
transferEnumIdin classIdStrategy- Throws:
IOException
-
resolveEnumFrom
- Specified by:
resolveEnumFromin classIdStrategy- Throws:
IOException
-
tryWriteDelegateIdTo
protected <T> HasDelegate<T> tryWriteDelegateIdTo(Output output, int fieldNumber, Class<T> clazz) throws IOException Description copied from class:IdStrategyIf this method returns null, the clazz was not registered as a delegate.- Specified by:
tryWriteDelegateIdToin classIdStrategy- Throws:
IOException
-
transferDelegateId
protected <T> HasDelegate<T> transferDelegateId(Input input, Output output, int fieldNumber) throws IOException - Specified by:
transferDelegateIdin classIdStrategy- Throws:
IOException
-
resolveDelegateFrom
- Specified by:
resolveDelegateFromin classIdStrategy- Throws:
IOException
-
tryWritePojoIdTo
protected <T> HasSchema<T> tryWritePojoIdTo(Output output, int fieldNumber, Class<T> clazz, boolean registered) throws IOException - Specified by:
tryWritePojoIdToin classIdStrategy- Throws:
IOException
-
writePojoIdTo
protected <T> HasSchema<T> writePojoIdTo(Output output, int fieldNumber, Class<T> clazz) throws IOException - Specified by:
writePojoIdToin classIdStrategy- Throws:
IOException
-
transferPojoId
protected <T> HasSchema<T> transferPojoId(Input input, Output output, int fieldNumber) throws IOException - Specified by:
transferPojoIdin classIdStrategy- Throws:
IOException
-
resolvePojoFrom
- Specified by:
resolvePojoFromin classIdStrategy- Throws:
IOException
-
writeMessageIdTo
protected <T> Schema<T> writeMessageIdTo(Output output, int fieldNumber, Message<T> message) throws IOException - Specified by:
writeMessageIdToin classIdStrategy- Throws:
IOException
-
writeArrayIdTo
- Specified by:
writeArrayIdToin classIdStrategy- Throws:
IOException
-
transferArrayId
protected void transferArrayId(Input input, Output output, int fieldNumber, boolean mapped) throws IOException - Specified by:
transferArrayIdin classIdStrategy- Throws:
IOException
-
resolveArrayComponentTypeFrom
- Specified by:
resolveArrayComponentTypeFromin classIdStrategy- Throws:
IOException
-
resolveClass
-
writeClassIdTo
protected void writeClassIdTo(Output output, Class<?> componentType, boolean array) throws IOException - Specified by:
writeClassIdToin classIdStrategy- Throws:
IOException
-
transferClassId
protected void transferClassId(Input input, Output output, int fieldNumber, boolean mapped, boolean array) throws IOException - Specified by:
transferClassIdin classIdStrategy- Throws:
IOException
-
resolveClassFrom
- Specified by:
resolveClassFromin classIdStrategy- Throws:
IOException
-