public final class PrimitiveJsonTypeResolverToNewApiAdapter extends PrimitiveJsonTypeResolver<Object> implements TextToConcreteObjectResolver<Object>, ObjectToJsonTypeConverter<Object>
typeWhichCanBeResolved| Constructor and Description |
|---|
PrimitiveJsonTypeResolverToNewApiAdapter(PrimitiveJsonTypeResolver<?> oldImplementation) |
| Modifier and Type | Method and Description |
|---|---|
Optional<AbstractJsonType> |
convertToJsonTypeOrEmpty(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
Object convertedValue,
String propertyKey)
This method will be called in second phase conversion step (from some java Object to some implementation of AbstractJsonType) it will be called during
read properties from Map<String,Object>, Properties (without first processing step) or after first conversion phase (while reading properties from
file, Map<String,String>, inputStream)
But converters order (provided in PropertiesToJsonConverter constructor for List<ObjectToJsonTypeConverter> toJsonTypeResolvers or through
PropertiesToJsonConverterBuilder) doesn't have importance here as in first processing phase, it is important only when some of implementation of
ObjectToJsonTypeConverter can convert from the same java class, then order or the same
converters type have matter. |
List<Class<?>> |
getClassesWhichCanResolve()
Override it when want inform about what type of classes can coverts this converter.
|
PrimitiveJsonTypeResolver<?> |
getOldImplementation() |
Class<?> |
resolveTypeOfResolver() |
AbstractJsonType |
returnConcreteJsonType(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
Object convertedValue,
String propertyKey)
This method will be called in second phase processing step (from some java Object to some implementation of AbstractJsonType) it will be called during
read properties from Map<String,Object>, Properties (without first processing step) or after first processing step (while reading properties from
file, Map<String,String>, inputStream)
But resolvers order (provided in PropertiesToJsonConverter(PrimitiveJsonTypeResolver... primitiveResolvers) constructor) doesn't have importance here as
in first processing phase.
|
protected Optional<Object> |
returnConcreteValueWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
String propertyValue,
String propertyKey)
This method will be called in first phase processing step (from raw text to some object) if your condition is met then return concrete value of Object.
|
Optional<Object> |
returnConvertedValueForClearedText(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
String propertyValue,
String propertyKey) |
AbstractJsonType |
returnJsonType(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
Object propertyValue,
String propertyKey) |
Optional<Object> |
returnObjectWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
String propertyValue,
String propertyKey)
This method will be called in first phase processing step (from raw text to some object) if your condition is met then return Optional of concrete value
of Object. if it doesn't meet its condition then return Optional.empty() for allow go to others type resolver in order.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitreturnOptionalJsonTypepublic PrimitiveJsonTypeResolverToNewApiAdapter(PrimitiveJsonTypeResolver<?> oldImplementation)
public Class<?> resolveTypeOfResolver()
resolveTypeOfResolver in interface HasGenericType<Object>public AbstractJsonType returnJsonType(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, Object propertyValue, String propertyKey)
returnJsonType in class PrimitiveJsonTypeResolver<Object>protected Optional<Object> returnConcreteValueWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, String propertyValue, String propertyKey)
PrimitiveJsonTypeResolverreturnConcreteValueWhenCanBeResolved in class PrimitiveJsonTypeResolver<Object>primitiveJsonTypesResolver - primitiveJsonTypesResolverpropertyValue - currently processing property valuepropertyKey - currently processing property keypublic AbstractJsonType returnConcreteJsonType(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, Object convertedValue, String propertyKey)
PrimitiveJsonTypeResolver
But resolvers order (provided in PropertiesToJsonConverter(PrimitiveJsonTypeResolver... primitiveResolvers) constructor) doesn't have importance here as
in first processing phase. The hierarchy of classes plays a central role here It looks for sufficient resolver, firstly will looks for exactly match
class type provided by method PrimitiveJsonTypeResolver.getClassesWhichCanResolve() More here JsonTypeResolversHierarchyResolver
AbstractJsonType should contains converted data and provides implementation for "toStringJson()" method if you provide you own... or you can return
instance of existence one implementation in package 'pl.jalokim.propertiestojson.object'... number, boolean, text, primitive array, json objects... or
simply convert Java object to instance ObjectJsonType by static method: public static AbstractJsonType convertFromObjectToJson(Object propertyValue,
String propertyKey) ObjectFromTextJsonTypeResolver.convertFromObjectToJson(Object propertyValue, String propertyKey) Or if you want return null
json object then return instance of JsonNullReferenceType.NULL_OBJECT
returnConcreteJsonType in class PrimitiveJsonTypeResolver<Object>primitiveJsonTypesResolver - primitiveJsonTypesResolverconvertedValue - currently processing property value but as generic typepropertyKey - currently processing property keypublic Optional<Object> returnConvertedValueForClearedText(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, String propertyValue, String propertyKey)
returnConvertedValueForClearedText in interface TextToConcreteObjectResolver<Object>returnConvertedValueForClearedText in class PrimitiveJsonTypeResolver<Object>public Optional<Object> returnObjectWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, String propertyValue, String propertyKey)
TextToConcreteObjectResolverreturnObjectWhenCanBeResolved in interface TextToConcreteObjectResolver<Object>primitiveJsonTypesResolver - primitiveJsonTypesResolverpropertyValue - currently processing property valuepropertyKey - currently processing property keypublic Optional<AbstractJsonType> convertToJsonTypeOrEmpty(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, Object convertedValue, String propertyKey)
ObjectToJsonTypeConverter
But converters order (provided in PropertiesToJsonConverter constructor for List<ObjectToJsonTypeConverter> toJsonTypeResolvers or through
PropertiesToJsonConverterBuilder) doesn't have importance here as in first processing phase, it is important only when some of implementation of ObjectToJsonTypeConverter can convert from the same java class, then order or the same
converters type have matter. But mostly hierarchy of classes plays a main role here It looks for sufficient resolver, firstly will looks for exactly
match class type provided by method ObjectToJsonTypeConverter.getClassesWhichCanResolve()
if find a few resolvers for the same class then it will looks for firs converter which properly convert java object to AbstractJsonType (here converters
order does it matter). More here JsonTypeResolversHierarchyResolver
AbstractJsonType should contains converted data and provides implementation for "toStringJson()" method if you provide your own... or you can return
instance of existence one implementation in package 'pl.jalokim.propertiestojson.object'... number, boolean, text, primitive array, json objects... or
simply convert Java object to instance ObjectJsonType by static method: public static AbstractJsonType convertFromObjectToJson(Object propertyValue,
String propertyKey) SuperObjectToJsonTypeConverter.convertFromObjectToJson(Object propertyValue, String propertyKey) Or if you want return null
json object then return instance of JsonNullReferenceType.NULL_OBJECT Or if you want to skip this json leaf then return instance of SkipJsonField.SKIP_JSON_FIELD then it will not add it to json with null value.
convertToJsonTypeOrEmpty in interface ObjectToJsonTypeConverter<Object>primitiveJsonTypesResolver - primitiveJsonTypesResolverconvertedValue - currently processing property value but as generic typepropertyKey - currently processing property keypublic List<Class<?>> getClassesWhichCanResolve()
ObjectToJsonTypeConvertergetClassesWhichCanResolve in interface ObjectToJsonTypeConverter<Object>getClassesWhichCanResolve in class PrimitiveJsonTypeResolver<Object>public PrimitiveJsonTypeResolver<?> getOldImplementation()
Copyright © 2022. All rights reserved.