Package io.protostuff.runtime
Class IncrementalIdStrategy.Registry
java.lang.Object
io.protostuff.runtime.IncrementalIdStrategy.Registry
- All Implemented Interfaces:
NumericIdStrategy.Registry
- Enclosing class:
IncrementalIdStrategy
public static class IncrementalIdStrategy.Registry
extends Object
implements NumericIdStrategy.Registry
This Registry is only way to register your pojos/enums/collections/maps/delegates.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRegistry
(int collectionIdMax, int collectionIdStart, int mapIdMax, int mapIdStart, int enumIdMax, int enumIdStart, int pojoIdMax, int pojoIdStart) Registry
(int flags, IdStrategy primaryGroup, int groupId, int collectionIdMax, int collectionIdStart, int mapIdMax, int mapIdStart, int enumIdMax, int enumIdStart, int pojoIdMax, int pojoIdStart) -
Method Summary
Modifier and TypeMethodDescriptionIf you are sure that you are only using a single implementation of your interface/abstract class, then it makes sense to map it directly to its impl class to avoid writing the type.<T extends Collection<?>>
IncrementalIdStrategy.RegistryregisterCollection
(CollectionSchema.MessageFactory factory, int id) Collection ids start at 1.registerDelegate
(Delegate<T> delegate, int id) Register aDelegate
and assign an id.registerEnum
(EnumIO<?> eio, int id) Enum ids start at 1.<T extends Enum<T>>
IncrementalIdStrategy.RegistryregisterEnum
(Class<T> clazz, int id) Enum ids start at 1.<T extends Map<?,
?>>
IncrementalIdStrategy.RegistryregisterMap
(MapSchema.MessageFactory factory, int id) Map ids start at 1.registerPojo
(Schema<T> schema, Pipe.Schema<T> pipeSchema, int id) Pojo ids start at 1.registerPojo
(Class<T> clazz, int id) Pojo ids start at 1.
-
Field Details
-
strategy
-
-
Constructor Details
-
Registry
public Registry(int collectionIdMax, int collectionIdStart, int mapIdMax, int mapIdStart, int enumIdMax, int enumIdStart, int pojoIdMax, int pojoIdStart) -
Registry
public Registry(int flags, IdStrategy primaryGroup, int groupId, int collectionIdMax, int collectionIdStart, int mapIdMax, int mapIdStart, int enumIdMax, int enumIdStart, int pojoIdMax, int pojoIdStart)
-
-
Method Details
-
registerCollection
public <T extends Collection<?>> IncrementalIdStrategy.Registry registerCollection(CollectionSchema.MessageFactory factory, int id) Collection ids start at 1.- Specified by:
registerCollection
in interfaceNumericIdStrategy.Registry
-
registerMap
public <T extends Map<?,?>> IncrementalIdStrategy.Registry registerMap(MapSchema.MessageFactory factory, int id) Map ids start at 1.- Specified by:
registerMap
in interfaceNumericIdStrategy.Registry
-
registerEnum
Enum ids start at 1.- Specified by:
registerEnum
in interfaceNumericIdStrategy.Registry
-
registerEnum
Enum ids start at 1.- Specified by:
registerEnum
in interfaceNumericIdStrategy.Registry
-
registerPojo
Pojo ids start at 1.- Specified by:
registerPojo
in interfaceNumericIdStrategy.Registry
-
registerPojo
public <T> IncrementalIdStrategy.Registry registerPojo(Schema<T> schema, Pipe.Schema<T> pipeSchema, int id) Pojo ids start at 1.- Specified by:
registerPojo
in interfaceNumericIdStrategy.Registry
-
mapPojo
If you are sure that you are only using a single implementation of your interface/abstract class, then it makes sense to map it directly to its impl class to avoid writing the type.Note that the type is always written when your field is
Object
.Pojo ids start at 1.
- Specified by:
mapPojo
in interfaceNumericIdStrategy.Registry
-
registerDelegate
Register aDelegate
and assign an id.Delegate ids start at 1.
- Specified by:
registerDelegate
in interfaceNumericIdStrategy.Registry
-