Package com.cedarsoftware.io
Interface JsonReader.ClassFactory
- All Known Implementing Classes:
ArrayFactory
,CharacterPrimArrayFactory
,CheckedFactory
,CollectionFactory
,CompactMapFactory
,CompactSetFactory
,EmptyFactory
,EnumClassFactory
,EnumSetFactory
,MapFactory
,RecordFactory
,SingletonFactory
,StackTraceElementFactory
,SynchronizedFactory
,ThrowableFactory
,UnmodifiableFactory
- Enclosing class:
JsonReader
public static interface JsonReader.ClassFactory
Subclass this interface and create a class that will return a new instance of the
passed in Class (c). Your factory subclass will be called when json-io encounters an
instance of (c) which you register with JsonReader.assignInstantiator().
Use the passed in JsonObject o which is a JsonObject to source values for the construction
of your class.
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
gatherRemainingValues
(Resolver resolver, JsonObject jObj, List<Object> arguments, Set<String> excludedFields) default boolean
default Object
newInstance
(Class<?> c, JsonObject jObj, Resolver resolver) Implement this method to return a new instance of the passed in Class.
-
Method Details
-
newInstance
Implement this method to return a new instance of the passed in Class. Use the passed in JsonObject to supply values to the construction of the object.- Parameters:
c
- Class of the object that needs to be createdjObj
- JsonObject (if primitive type do jObj.getPrimitiveValue();resolver
- Resolve instance that has references to ID Map, Converter, ReadOptions- Returns:
- a new instance of C. If you completely fill the new instance using the value(s) from object, and no further work is needed for construction, then override the isObjectFinal() method below and return true.
-
isObjectFinal
default boolean isObjectFinal()- Returns:
- true if this object is instantiated and completely filled using the contents from the Object [a JsonObject or value]. In this case, no further processing will be performed on the instance. If the object has sub-objects (complex fields), then return false so that the JsonReader will continue on filling out the remaining portion of the object.
-
gatherRemainingValues
-