Class JsonObjectDefault
- All Implemented Interfaces:
Iterable<Map.Entry<String,,Object>> JsonObject,JsonObjectOrArray
- Direct Known Subclasses:
FormDefault
JsonObject implementation.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static interfaceNested classes/interfaces inherited from class org.spincast.core.json.JsonObjectArrayBase
JsonObjectArrayBase.JsonPathCachingItem -
Field Summary
FieldsFields inherited from class org.spincast.core.json.JsonObjectArrayBase
defaultElementValidator -
Constructor Summary
ConstructorsConstructorDescriptionJsonObjectDefault(Map<String, Object> initialMap, boolean mutable, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) ConstructorJsonObjectDefault(Map<String, Object> initialMap, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) ConstructorJsonObjectDefault(JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) ConstructorJsonObjectDefault(JsonObject configToMerge, boolean mutable, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) Constructor -
Method Summary
Modifier and TypeMethodDescriptionclear()Clears all elements.clone(boolean mutable) Clone the object.<T> TConverts theJsonObjectto an instance of the specifiedTtype.Converts theJsonObjectto a plain Map.protected ObjectgetElementNoKeyParsing(String jsonPath, boolean hasDefaultValue, Object defaultValue) Gets the element at this key/index, without key parsing.getMap()booleanDoes the JsonObject contain an element at the specified key? The key is considered as is, without being parsed as aJsonPath.booleanisEquivalentTo(JsonObject other) Compares the currentJsonObjectto the specified one and returnstrueif they are equivalent.iterator()Merges all the specified Map elements in the JsonObject.Merges all the specified Map elements in the JsonObject.merge(JsonObject jsonObj) Merges the specifiedJsonObjectproperties in the current object.merge(JsonObject jsonObj, boolean clone) Merges the specifiedJsonObjectproperties in the current object.Transforms the specifie3d object toJsonObjectand merges its properties in the current object.protected JsonObjectRemoves a property atJsonPathfrom the object.removeNoKeyParsing(String key) Removes a element from the object.setNoKeyParsing(String jsonPath, Object value) Sets an element at the specified key, without parsing this key as aJsonPath.setNoKeyParsing(String jsonPath, Object value, boolean clone) Sets an element at the specified key, without parsing this key as aJsonPath.intsize()The size of the object.voidtransformAll(ElementTransformer transformer, boolean recursive) Transforms all the elements of the object, using the specified transformer.Methods inherited from class org.spincast.core.json.JsonObjectArrayBase
clone, contains, getArrayFirst, getArrayFirstBigDecimal, getArrayFirstBigDecimal, getArrayFirstBigDecimal, getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBoolean, getArrayFirstBoolean, getArrayFirstBoolean, getArrayFirstBooleanNoKeyParsing, getArrayFirstBooleanNoKeyParsing, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstDate, getArrayFirstDate, getArrayFirstDate, getArrayFirstDateNoKeyParsing, getArrayFirstDateNoKeyParsing, getArrayFirstDouble, getArrayFirstDouble, getArrayFirstDouble, getArrayFirstDoubleNoKeyParsing, getArrayFirstDoubleNoKeyParsing, getArrayFirstFloat, getArrayFirstFloat, getArrayFirstFloat, getArrayFirstFloatNoKeyParsing, getArrayFirstFloatNoKeyParsing, getArrayFirstInstant, getArrayFirstInstant, getArrayFirstInstant, getArrayFirstInstantNoKeyParsing, getArrayFirstInstantNoKeyParsing, getArrayFirstInteger, getArrayFirstInteger, getArrayFirstInteger, getArrayFirstIntegerNoKeyParsing, getArrayFirstIntegerNoKeyParsing, getArrayFirstJsonArray, getArrayFirstJsonArray, getArrayFirstJsonArray, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonObject, getArrayFirstJsonObject, getArrayFirstJsonObject, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstLong, getArrayFirstLong, getArrayFirstLong, getArrayFirstLongNoKeyParsing, getArrayFirstLongNoKeyParsing, getArrayFirstString, getArrayFirstString, getArrayFirstString, getArrayFirstStringNoKeyParsing, getArrayFirstStringNoKeyParsing, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimalElement, getBigDecimalFromObject, getBigDecimalNoKeyParsing, getBigDecimalNoKeyParsing, getBoolean, getBoolean, getBoolean, getBooleanElement, getBooleanFromObject, getBooleanNoKeyParsing, getBooleanNoKeyParsing, getBytesFromBase64String, getBytesFromBase64String, getBytesFromBase64String, getBytesFromBase64StringElement, getBytesFromBase64StringNoKeyParsing, getBytesFromBase64StringNoKeyParsing, getBytesFromBase64StringValueFromObject, getDate, getDate, getDate, getDateElement, getDateFromObject, getDateNoKeyParsing, getDateNoKeyParsing, getdefaultElementValidator, getDouble, getDouble, getDouble, getDoubleElement, getDoubleFromObject, getDoubleNoKeyParsing, getDoubleNoKeyParsing, getElement, getFloat, getFloat, getFloat, getFloatElement, getFloatFromObject, getFloatNoKeyParsing, getFloatNoKeyParsing, getInstant, getInstant, getInstant, getInstantElement, getInstantFromObject, getInstantNoKeyParsing, getInstantNoKeyParsing, getInteger, getInteger, getInteger, getIntegerElement, getIntegerFromObject, getIntegerNoKeyParsing, getIntegerNoKeyParsing, getJsonArray, getJsonArray, getJsonArray, getJsonArrayFromObject, getJsonArrayNoKeyParsing, getJsonArrayNoKeyParsing, getJsonArrayOrEmpty, getJsonArrayOrEmpty, getJsonArrayOrEmptyNoKeyParsing, getJsonManager, getJsonObject, getJsonObject, getJsonObject, getJsonObject, getJsonObjectFromObject, getJsonObjectNoKeyParsing, getJsonObjectNoKeyParsing, getJsonObjectOrEmpty, getJsonObjectOrEmpty, getJsonObjectOrEmptyNoKeyParsing, getJsonPathCachingMap, getLong, getLong, getLong, getLongElement, getLongFromObject, getLongNoKeyParsing, getLongNoKeyParsing, getObject, getObject, getObject, getObjectConverter, getObjectNoKeyParsing, getObjectNoKeyParsing, getSpincastUtils, getString, getString, getString, getString, getStringFromObject, getStringNoKeyParsing, getStringNoKeyParsing, getTrimTransformer, isCanBeConvertedToBigDecimal, isCanBeConvertedToBigDecimal, isCanBeConvertedToBigDecimalNoKeyParsing, isCanBeConvertedToBoolean, isCanBeConvertedToBoolean, isCanBeConvertedToBooleanNoKeyParsing, isCanBeConvertedToByteArray, isCanBeConvertedToByteArray, isCanBeConvertedToByteArrayNoKeyParsing, isCanBeConvertedToDate, isCanBeConvertedToDate, isCanBeConvertedToDateNoKeyParsing, isCanBeConvertedToDouble, isCanBeConvertedToDouble, isCanBeConvertedToDoubleNoKeyParsing, isCanBeConvertedToFloat, isCanBeConvertedToFloat, isCanBeConvertedToFloatNoKeyParsing, isCanBeConvertedToInteger, isCanBeConvertedToInteger, isCanBeConvertedToIntegerNoKeyParsing, isCanBeConvertedToJsonArray, isCanBeConvertedToJsonArray, isCanBeConvertedToJsonArrayNoKeyParsing, isCanBeConvertedToJsonObject, isCanBeConvertedToJsonObject, isCanBeConvertedToJsonObjectNoKeyParsing, isCanBeConvertedToLong, isCanBeConvertedToLong, isCanBeConvertedToLongNoKeyParsing, isCanBeConvertedToString, isCanBeConvertedToString, isCanBeConvertedToStringNoKeyParsing, isMutable, isNull, isNullNoKeyParsing, isOfTypeBigDecimal, isOfTypeBigDecimalNoKeyParsing, isOfTypeBoolean, isOfTypeBoolean, isOfTypeBooleanNoKeyParsing, isOfTypeByteArray, isOfTypeByteArray, isOfTypeByteArrayNoKeyParsing, isOfTypeDate, isOfTypeDate, isOfTypeDateNoKeyParsing, isOfTypeDouble, isOfTypeDouble, isOfTypeDoubleNoKeyParsing, isOfTypeeBigDecimal, isOfTypeFloat, isOfTypeFloat, isOfTypeFloatNoKeyParsing, isOfTypeInteger, isOfTypeInteger, isOfTypeIntegerNoKeyParsing, isOfTypeJsonArray, isOfTypeJsonArray, isOfTypeJsonArrayNoKeyParsing, isOfTypeJsonObject, isOfTypeJsonObject, isOfTypeJsonObjectNoKeyParsing, isOfTypeLong, isOfTypeLong, isOfTypeLongNoKeyParsing, isOfTypeString, isOfTypeString, isOfTypeStringNoKeyParsing, isPresent, put, set, set, setIfAbsent, setIfAbsent, toJsonString, toJsonString, toString, transform, transformAll, trim, trimAll, trimAll, validateIsNullMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.spincast.core.json.JsonObject
getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBooleanNoKeyParsing, getArrayFirstBooleanNoKeyParsing, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstDateNoKeyParsing, getArrayFirstDateNoKeyParsing, getArrayFirstDoubleNoKeyParsing, getArrayFirstDoubleNoKeyParsing, getArrayFirstFloatNoKeyParsing, getArrayFirstFloatNoKeyParsing, getArrayFirstIntegerNoKeyParsing, getArrayFirstIntegerNoKeyParsing, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstLongNoKeyParsing, getArrayFirstLongNoKeyParsing, getArrayFirstStringNoKeyParsing, getArrayFirstStringNoKeyParsing, getBigDecimalNoKeyParsing, getBigDecimalNoKeyParsing, getBooleanNoKeyParsing, getBooleanNoKeyParsing, getBytesFromBase64StringNoKeyParsing, getBytesFromBase64StringNoKeyParsing, getDateNoKeyParsing, getDateNoKeyParsing, getDoubleNoKeyParsing, getDoubleNoKeyParsing, getFloatNoKeyParsing, getFloatNoKeyParsing, getInstantNoKeyParsing, getInstantNoKeyParsing, getIntegerNoKeyParsing, getIntegerNoKeyParsing, getJsonArrayNoKeyParsing, getJsonArrayNoKeyParsing, getJsonArrayOrEmptyNoKeyParsing, getJsonObjectNoKeyParsing, getJsonObjectNoKeyParsing, getJsonObjectOrEmptyNoKeyParsing, getLongNoKeyParsing, getLongNoKeyParsing, getObjectNoKeyParsing, getObjectNoKeyParsing, getStringNoKeyParsing, getStringNoKeyParsing, isCanBeConvertedToBigDecimalNoKeyParsing, isCanBeConvertedToBooleanNoKeyParsing, isCanBeConvertedToByteArrayNoKeyParsing, isCanBeConvertedToDateNoKeyParsing, isCanBeConvertedToDoubleNoKeyParsing, isCanBeConvertedToFloatNoKeyParsing, isCanBeConvertedToIntegerNoKeyParsing, isCanBeConvertedToJsonArrayNoKeyParsing, isCanBeConvertedToJsonObjectNoKeyParsing, isCanBeConvertedToLongNoKeyParsing, isCanBeConvertedToStringNoKeyParsing, isNullNoKeyParsing, isOfTypeBigDecimalNoKeyParsing, isOfTypeBooleanNoKeyParsing, isOfTypeByteArrayNoKeyParsing, isOfTypeDateNoKeyParsing, isOfTypeDoubleNoKeyParsing, isOfTypeFloatNoKeyParsing, isOfTypeIntegerNoKeyParsing, isOfTypeJsonArrayNoKeyParsing, isOfTypeJsonObjectNoKeyParsing, isOfTypeLongNoKeyParsing, isOfTypeStringNoKeyParsingMethods inherited from interface org.spincast.core.json.JsonObjectOrArray
contains, getArrayFirstBigDecimal, getArrayFirstBigDecimal, getArrayFirstBoolean, getArrayFirstBoolean, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64String, getArrayFirstDate, getArrayFirstDate, getArrayFirstDouble, getArrayFirstDouble, getArrayFirstFloat, getArrayFirstFloat, getArrayFirstInstant, getArrayFirstInstant, getArrayFirstInteger, getArrayFirstInteger, getArrayFirstJsonArray, getArrayFirstJsonArray, getArrayFirstJsonObject, getArrayFirstJsonObject, getArrayFirstLong, getArrayFirstLong, getArrayFirstString, getArrayFirstString, getBigDecimal, getBigDecimal, getBoolean, getBoolean, getBytesFromBase64String, getBytesFromBase64String, getDate, getDate, getDouble, getDouble, getFloat, getFloat, getInstant, getInstant, getInteger, getInteger, getJsonArray, getJsonArray, getJsonArrayOrEmpty, getJsonArrayOrEmpty, getJsonObject, getJsonObject, getJsonObjectOrEmpty, getJsonObjectOrEmpty, getLong, getLong, getObject, getObject, getString, getString, isCanBeConvertedToBigDecimal, isCanBeConvertedToBoolean, isCanBeConvertedToByteArray, isCanBeConvertedToDate, isCanBeConvertedToDouble, isCanBeConvertedToFloat, isCanBeConvertedToInteger, isCanBeConvertedToJsonArray, isCanBeConvertedToJsonObject, isCanBeConvertedToLong, isCanBeConvertedToString, isMutable, isNull, isOfTypeBigDecimal, isOfTypeBoolean, isOfTypeByteArray, isOfTypeDate, isOfTypeDouble, isOfTypeFloat, isOfTypeInteger, isOfTypeJsonArray, isOfTypeJsonObject, isOfTypeLong, isOfTypeString, isPresent, set, set, setIfAbsent, setIfAbsent, toJsonString, toJsonString, transform, transformAll, trim, trimAll, trimAll
-
Field Details
-
logger
protected static final org.slf4j.Logger logger
-
-
Constructor Details
-
JsonObjectDefault
public JsonObjectDefault(JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) Constructor -
JsonObjectDefault
public JsonObjectDefault(@Nullable Map<String, Object> initialMap, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) Constructor -
JsonObjectDefault
public JsonObjectDefault(@Nullable Map<String, Object> initialMap, boolean mutable, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) Constructor -
JsonObjectDefault
public JsonObjectDefault(@Nullable JsonObject configToMerge, boolean mutable, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter) Constructor
-
-
Method Details
-
getMap
-
putAsIs
- Specified by:
putAsIsin classJsonObjectArrayBase
-
setNoKeyParsing
Description copied from interface:JsonObjectSets an element at the specified key, without parsing this key as aJsonPath.If the element to add is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If the element to add is a
JsonObjector aJsonArrayand is immutable, it will be cloned. Doing so, we can make sure theJsonArrayis always fully mutable or fully immutable.If the element implements
ToJsonObjectConvertible, it will be converted to aJsonObjectusing the associated conversion method. If it implementsToJsonArrayConvertible, it will be converted to anJsonArrayusing the associated conversion method.Those are the types of objects that will be converted to a
JsonArrayinstead of aJsonObject, if no conversion interface is implemented :- A Collection
- An array
- Specified by:
setNoKeyParsingin interfaceJsonObject
-
setNoKeyParsing
Description copied from interface:JsonObjectSets an element at the specified key, without parsing this key as aJsonPath.If the element to add is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If the element to add is a
JsonObjector aJsonArrayand is immutable, it will be cloned. Doing so, we can make sure theJsonArrayis always fully mutable or fully immutable.If the element implements
ToJsonObjectConvertible, it will be converted to aJsonObjectusing the associated conversion method. If it implementsToJsonArrayConvertible, it will be converted to anJsonArrayusing the associated conversion method.Those are the types of objects that will be converted to a
JsonArrayinstead of aJsonObject, if no conversion interface is implemented :- A Collection
- An array
- Specified by:
setNoKeyParsingin interfaceJsonObjectclone- iftrue, and the element to add is aJsonObjectorJsonArray, a clone will be made before being added. If that case, any modification to the original element won't affect the added one, and vice-versa. If the element is immutable then it will always be cloned. Doing so, we can make sure aJsonObjectis always fully mutable or fully immutable.
-
merge
Description copied from interface:JsonObjectMerges all the specified Map elements in the JsonObject. The keys are parsed asJsonPaths. Overwrites existing elements at the specified JsonPaths.Note that the JsonObject and JsonArray objects from the source will be added as is, so any modification to them WILL affect the added elements, and vise-versa. There is an exception though : if the element to add is immutable then it will always be cloned. Doing so, we can make sure a
JsonObjectis always fully mutable or fully immutable.If an element to is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If an element to is a
JsonObjector aJsonArrayand is immutable, it will be cloned. Doing so, we can make sure theJsonArrayis always fully mutable or fully immutable.If an element implements
ToJsonObjectConvertible, it will be converted to aJsonObjectusing the associated conversion method. If it implementsToJsonArrayConvertible, it will be converted to anJsonArrayusing the associated conversion method.Those are the types of objects that will be converted to a
JsonArrayinstead of aJsonObject, if no conversion interface is implemented :- A Collection
- An array
- Specified by:
mergein interfaceJsonObject
-
merge
Description copied from interface:JsonObjectMerges all the specified Map elements in the JsonObject. The keys are parsed asJsonPaths. Overwrites existing elements at the specified JsonPaths.If an element to is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If an element to is a
JsonObjector aJsonArrayand is immutable, it will be cloned. Doing so, we can make sure theJsonArrayis always fully mutable or fully immutable.If an element implements
ToJsonObjectConvertible, it will be converted to aJsonObjectusing the associated conversion method. If it implementsToJsonArrayConvertible, it will be converted to anJsonArrayusing the associated conversion method.Those are the types of objects that will be converted to a
JsonArrayinstead of aJsonObject, if no conversion interface is implemented :- A Collection
- An array
- Specified by:
mergein interfaceJsonObjectclone- iftrue, a clone of anyJsonObjectorJsonArraywill be made before being added. If that case, any modification to the original elements won't affect the added elements, and vice-versa. If the element is immutable then it will always be cloned. Doing so, we can make sure aJsonObjectis always fully mutable or fully immutable.
-
merge
Description copied from interface:JsonObjectMerges the specifiedJsonObjectproperties in the current object. Overwrites elements of the same JsonPaths.Note that the elements from the source are added as is, so any modification to them WILL affect the added element, and vise-versa. There is an exception though : if an element to add is immutable then it will always be cloned. Doing so, we can make sure a
JsonObjectis always fully mutable or fully immutable.- Specified by:
mergein interfaceJsonObject
-
merge
Description copied from interface:JsonObjectTransforms the specifie3d object toJsonObjectand merges its properties in the current object. Overwrites elements of the same JsonPaths.- Specified by:
mergein interfaceJsonObject
-
merge
Description copied from interface:JsonObjectMerges the specifiedJsonObjectproperties in the current object. Overwrites elements of the same JsonPaths.- Specified by:
mergein interfaceJsonObjectclone- iftrue, a clone of the originalJsonObjectwill be made before being added. If that case, any modification to the original object won't affect the added element, and vice-versa. If an element is immutable then it will always be cloned. Doing so, we can make sure aJsonObjectis always fully mutable or fully immutable.
-
remove
Removes a property atJsonPathfrom the object.- Specified by:
removein interfaceJsonObjectOrArray- Returns:
- the current object (fluent style).
-
removeNoKeyParsing
Description copied from interface:JsonObjectRemoves a element from the object. The key is used as is, without being parsed as aJsonPath.- Specified by:
removeNoKeyParsingin interfaceJsonObject
-
clear
Description copied from interface:JsonObjectOrArrayClears all elements.- Specified by:
clearin interfaceJsonObjectOrArray
-
isElementExistsNoKeyParsing
Description copied from interface:JsonObjectDoes the JsonObject contain an element at the specified key? The key is considered as is, without being parsed as aJsonPath.- Specified by:
isElementExistsNoKeyParsingin interfaceJsonObject
-
iterator
-
getElementNoKeyParsing
protected Object getElementNoKeyParsing(String jsonPath, boolean hasDefaultValue, Object defaultValue) Description copied from class:JsonObjectArrayBaseGets the element at this key/index, without key parsing.- Specified by:
getElementNoKeyParsingin classJsonObjectArrayBase
-
convertToPlainMap
Description copied from interface:JsonObjectConverts theJsonObjectto a plain Map. AllJsonObjectchildren will be converted to Maps and allJsonArraychildren will be converted to Lists.- Specified by:
convertToPlainMapin interfaceJsonObject
-
convert
Description copied from interface:JsonObjectConverts theJsonObjectto an instance of the specifiedTtype.This uses
JsonManager#fromJsonStringand may throw an exception if it is unable to do the conversion.- Specified by:
convertin interfaceJsonObject
-
size
public int size()Description copied from interface:JsonObjectOrArrayThe size of the object.- Specified by:
sizein interfaceJsonObjectOrArray
-
isEquivalentTo
Description copied from interface:JsonObjectCompares the currentJsonObjectto the specified one and returnstrueif they are equivalent. To be equivalent, all their elements must be so too.An element is equivalent to the other if they can be converted to the¸ same type, and then if they are equals.
For example, the
String"123" is equivalent tonew BigDecimal("123")or to123L.- Specified by:
isEquivalentToin interfaceJsonObject
-
clone
Description copied from class:JsonObjectArrayBaseClone the object.- Specified by:
clonein interfaceJsonObject- Specified by:
clonein interfaceJsonObjectOrArray- Specified by:
clonein classJsonObjectArrayBase- Parameters:
mutable- iftruethe resulting object and all its children will be mutable, otherwise they will all be immutable.
-
transformAll
Description copied from interface:JsonObjectOrArrayTransforms all the elements of the object, using the specified transformer.- Specified by:
transformAllin interfaceJsonObjectOrArray- Specified by:
transformAllin classJsonObjectArrayBaserecursive- iftrue, then all children elements will also be transformed, recursively.
-