Package us.kbase.common.service
Class UObject
- java.lang.Object
-
- us.kbase.common.service.UObject
-
public class UObject extends java.lang.ObjectClass provides ways to deal with unconstrained (untyped) data. In order to be able to work with very large amounts of data there is a way to store this data in file, wrap it by UObject (through JsonTokenStream) and process it as a stream of json tokens (like open/close of maps/arrays, map keys, long/ double/text/boolean/null values).
-
-
Constructor Summary
Constructors Constructor Description UObject(java.lang.Object obj)Creates instance of UObject from File, byte[], char[], JsonTokenStream, JsonNode, POJO, Map, List or scalar.UObject(JsonTokenStream jts, java.util.List<java.lang.String> rootPath)Creates instance of UObject from JsonTokenStream with specified root path modifier.UObject(UObject parent, java.lang.String... relativePath)Creates instance of UObject from another UObject with specified root path modifier.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TasClassInstance(TypeReference<T> retType)<T> TasClassInstance(java.lang.Class<T> retType)<T> TasInstance()JsonNodeasJsonNode()java.util.List<UObject>asList()java.util.Map<java.lang.String,UObject>asMap()<T> TasScalar()static UObjectfromJsonString(java.lang.String json)static ObjectMappergetMapper()JsonTokenStreamgetPlacedStream()Setting up internal JsonTokenStream before usage.java.util.List<java.lang.String>getRootPath()Root path specified in order to shift starting point of working subtree inside actual data described by internal JsonTokenStream.longgetSizeInBytes()booleanisBoolean()booleanisDouble()booleanisInteger()booleanisJsonNode()booleanisList()booleanisLong()booleanisMap()booleanisNull()booleanisString()booleanisTokenStream()java.lang.StringtoJsonString()java.lang.StringtoString()static <T> TtransformJacksonToObject(JsonNode node, TypeReference<T> retType)Helper method for transformation Jackson tree into POJO.static <T> TtransformJacksonToObject(JsonNode node, java.lang.Class<T> retType)Helper method for transformation Jackson tree into POJO.static java.lang.StringtransformJacksonToString(JsonNode node)Helper method for transformation Jackson tree into JSON text.static JsonNodetransformObjectToJackson(java.lang.Object obj)Helper method for transformation POJO into Jackson tree.static <T> TtransformObjectToObject(java.lang.Object obj, TypeReference<T> retType)Helper method for transformation POJO into POJO of another type.static <T> TtransformObjectToObject(java.lang.Object obj, java.lang.Class<T> retType)Helper method for transformation POJO into POJO of another type.static java.lang.StringtransformObjectToString(java.lang.Object obj)Helper method for transformation POJO into JSON text.static JsonNodetransformStringToJackson(java.lang.String json)Helper method for transformation JSON text into Jackson tree.static <T> TtransformStringToObject(java.lang.String json, TypeReference<T> retType)Helper method for transformation JSON text into POJO.static <T> TtransformStringToObject(java.lang.String json, java.lang.Class<T> retType)Helper method for transformation JSON text into POJO.voidwrite(JsonGenerator jgen)Writing inner data into output token stream (generator).voidwrite(java.io.OutputStream os)Writing inner data into output stream.voidwrite(java.io.Writer w)Writing inner data into writer.
-
-
-
Constructor Detail
-
UObject
public UObject(java.lang.Object obj)
Creates instance of UObject from File, byte[], char[], JsonTokenStream, JsonNode, POJO, Map, List or scalar.
-
UObject
public UObject(JsonTokenStream jts, java.util.List<java.lang.String> rootPath)
Creates instance of UObject from JsonTokenStream with specified root path modifier.
-
UObject
public UObject(UObject parent, java.lang.String... relativePath)
Creates instance of UObject from another UObject with specified root path modifier.
-
-
Method Detail
-
fromJsonString
public static UObject fromJsonString(java.lang.String json)
- Returns:
- instance of UObject created from Jackson tree parsed from JSON text
-
getMapper
public static ObjectMapper getMapper()
-
getPlacedStream
public JsonTokenStream getPlacedStream() throws java.io.IOException
Setting up internal JsonTokenStream before usage.- Throws:
java.io.IOException
-
getRootPath
public java.util.List<java.lang.String> getRootPath()
Root path specified in order to shift starting point of working subtree inside actual data described by internal JsonTokenStream.- Returns:
- null in case of UObject created for not JsonTokenStream
-
isJsonNode
public boolean isJsonNode()
- Returns:
- true in case UObject was created from Jackson tree rather than from plain maps, lists, scalars, POJOs or JsonTokenStream
-
isTokenStream
public boolean isTokenStream()
- Returns:
- true in case UObject was created from JsonTokenStream
-
asJsonNode
public JsonNode asJsonNode()
- Returns:
- Jackson tree representation of this object
-
isList
public boolean isList()
- Returns:
- true in case this object is list of something, for JsonTokenStream it will always be false
-
asList
public java.util.List<UObject> asList()
- Returns:
- list representation of this object
-
isMap
public boolean isMap()
- Returns:
- true in case this object is mapping of something, for JsonTokenStream it will always be false
-
asMap
public java.util.Map<java.lang.String,UObject> asMap()
- Returns:
- map representation of this object
-
isInteger
public boolean isInteger()
- Returns:
- true in case this object is integer, for JsonTokenStream it will always be false
-
isLong
public boolean isLong()
- Returns:
- true in case this object is long, for JsonTokenStream it will always be false
-
isString
public boolean isString()
- Returns:
- true in case this object is text, for JsonTokenStream it will always be false
-
isDouble
public boolean isDouble()
- Returns:
- true in case this object is floating, for JsonTokenStream it will always be false
-
isBoolean
public boolean isBoolean()
- Returns:
- true in case this object is boolean, for JsonTokenStream it will always be false
-
isNull
public boolean isNull()
- Returns:
- true in case this object is null, for JsonTokenStream it will always be false
-
asScalar
public <T> T asScalar()
- Returns:
- scalar representation of this object
-
asInstance
public <T> T asInstance()
- Returns:
- POJO representation of this object
-
asClassInstance
public <T> T asClassInstance(java.lang.Class<T> retType)
- Returns:
- POJO representation of this object of type retType
-
asClassInstance
public <T> T asClassInstance(TypeReference<T> retType)
- Returns:
- POJO representation of this object of type retType
-
write
public void write(JsonGenerator jgen) throws java.io.IOException
Writing inner data into output token stream (generator). Method closes inner JsonTokenStream if it's used. So you don't need to worry about it.- Throws:
java.io.IOException
-
write
public void write(java.io.OutputStream os) throws java.io.IOExceptionWriting inner data into output stream. Method closes inner JsonTokenStream if it's used. So you don't need to worry about it.- Throws:
java.io.IOException
-
write
public void write(java.io.Writer w) throws java.io.IOExceptionWriting inner data into writer. Method closes inner JsonTokenStream if it's used. So you don't need to worry about it.- Throws:
java.io.IOException
-
toJsonString
public java.lang.String toJsonString()
- Returns:
- JSON text representation of this object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getSizeInBytes
public long getSizeInBytes() throws java.io.IOException- Returns:
- Real size of UObject as if it was stored in byte array.
- Throws:
java.io.IOException
-
transformObjectToObject
public static <T> T transformObjectToObject(java.lang.Object obj, java.lang.Class<T> retType)Helper method for transformation POJO into POJO of another type.
-
transformStringToObject
public static <T> T transformStringToObject(java.lang.String json, java.lang.Class<T> retType)Helper method for transformation JSON text into POJO.
-
transformObjectToObject
public static <T> T transformObjectToObject(java.lang.Object obj, TypeReference<T> retType)Helper method for transformation POJO into POJO of another type.
-
transformStringToObject
public static <T> T transformStringToObject(java.lang.String json, TypeReference<T> retType)Helper method for transformation JSON text into POJO.
-
transformJacksonToObject
public static <T> T transformJacksonToObject(JsonNode node, java.lang.Class<T> retType)
Helper method for transformation Jackson tree into POJO.
-
transformJacksonToObject
public static <T> T transformJacksonToObject(JsonNode node, TypeReference<T> retType)
Helper method for transformation Jackson tree into POJO.
-
transformObjectToString
public static java.lang.String transformObjectToString(java.lang.Object obj)
Helper method for transformation POJO into JSON text.
-
transformJacksonToString
public static java.lang.String transformJacksonToString(JsonNode node)
Helper method for transformation Jackson tree into JSON text.
-
transformObjectToJackson
public static JsonNode transformObjectToJackson(java.lang.Object obj)
Helper method for transformation POJO into Jackson tree.
-
transformStringToJackson
public static JsonNode transformStringToJackson(java.lang.String json)
Helper method for transformation JSON text into Jackson tree.
-
-