ArgonautJson

com.rallyhealth.weejson.v1.argonaut.ArgonautJson
object ArgonautJson extends AstTransformer[Json]

Attributes

Graph
Supertypes
trait AstTransformer[Json]
trait JsVisitor[Json, Json]
trait Visitor[Json, Json]
trait AutoCloseable
trait Transformer[Json]
class Object
trait Matchable
class Any
Show all
Self type

Members list

Type members

Inherited classlikes

class AstArrVisitor[T[_]](build: T[I] => I)(implicit factory: Factory[I, T[I]]) extends ArrVisitor[I, I]

Attributes

Inherited from:
AstTransformer
Supertypes
trait ArrVisitor[I, I]
trait ObjArrVisitor[I, I]
class Object
trait Matchable
class Any
class AstObjVisitor[T](build: T => I)(implicit factory: Factory[(String, I), T]) extends ObjVisitor[I, I]

Attributes

Inherited from:
AstTransformer
Supertypes
trait ObjVisitor[I, I]
trait ObjArrVisitor[I, I]
class Object
trait Matchable
class Any

Value members

Concrete methods

override def transform[T](i: Json, to: Visitor[_, T]): T

Attributes

Definition Classes
Transformer
def visitArray(length: Int): ArrVisitor[Json, Json]

Attributes

Returns

a Visitor used for visiting the elements of the array

def visitFalse(): Json
def visitFloat64StringParts(cs: CharSequence, decIndex: Int, expIndex: Int): Json

Visit the number in its text representation.

Visit the number in its text representation.

Value parameters

cs

unparsed text representation of the number.

decIndex

index of the ., relative to the start of the CharSequence, or -1 if omitted

expIndex

index of e or E relative to the start of the CharSequence, or -1 if omitted

Attributes

def visitNull(): Json
def visitObject(length: Int): ObjVisitor[Json, Json]

Attributes

Returns

a ObjVisitor used for visiting the keys/values of the object

def visitString(cs: CharSequence): Json

Value parameters

cs

the text string being visited

Attributes

def visitTrue(): Json

Inherited methods

def apply(s: String): I

Attributes

Inherited from:
AstTransformer
override def close(): Unit

==Responsibility== Generally, whoever creates the visitor should be responsible for closing it, i.e. not intermediate transform(v: Visitor) methods themselves.

==Responsibility== Generally, whoever creates the visitor should be responsible for closing it, i.e. not intermediate transform(v: Visitor) methods themselves.

==Self Closing== Given that common usage is most often single-valued (e.g. "{}"), rather than multi-valued (e.g. "{} {} {}"), Visitors may self-close (e.g. visitor.map{v => Try(v.close); v)} after a single value to prevent resource leaks, but are encouraged to expose both forms (i.e. single/multiple), if supportable.

==Multiple close() calls/Idempotency== Visitors are encouraged to respond gracefully if close() is called multiple times. If an underlying resource would throw if already closed, this may mean adding a private var isClosed: Boolean field to prevent multiple calls.

Attributes

Definition Classes
Visitor -> AutoCloseable
Inherited from:
Visitor
def map[Z](f: Json => Z): Visitor[T, Z]

Attributes

Inherited from:
Visitor
def mapNulls[Z](f: Json => Z): Visitor[T, Z]

Attributes

Inherited from:
Visitor
def transformArray[T](f: Visitor[_, T], items: Iterable[Json]): T

Attributes

Inherited from:
AstTransformer
def transformObject[T](f: Visitor[_, T], items: Iterable[(String, Json)]): T

Attributes

Inherited from:
AstTransformer
def validate[T](i: Json, to: Visitor[_, T]): Try[T]

Attributes

Inherited from:
Transformer
def visitBinary(bytes: Array[Byte], offset: Int, len: Int): J

Raw bytes.

Raw bytes.

Attributes

Inherited from:
JsVisitor
def visitChar(c: Char): J

Attributes

Inherited from:
JsVisitor
def visitExt(tag: Byte, bytes: Array[Byte], offset: Int, len: Int): J

MsgPack extension type.

MsgPack extension type.

Attributes

Inherited from:
JsVisitor
def visitFloat32(d: Float): J

Attributes

Inherited from:
JsVisitor
def visitFloat64(d: Double): J

Optional handler for raw double values; can be overriden for performance in cases where you're translating directly between numbers to avoid the overhead of stringifying and re-parsing your numbers (e.g. the WebJson transformer gets raw doubles from the underlying Json.parse).

Optional handler for raw double values; can be overriden for performance in cases where you're translating directly between numbers to avoid the overhead of stringifying and re-parsing your numbers (e.g. the WebJson transformer gets raw doubles from the underlying Json.parse).

Delegates to visitFloat64StringParts if not overriden

Value parameters

d

the input number

Attributes

Inherited from:
JsVisitor
def visitFloat64String(s: String): J

Convenience methods to help you compute the decimal-point-index and exponent-index of an arbitrary numeric string

Convenience methods to help you compute the decimal-point-index and exponent-index of an arbitrary numeric string

Value parameters

s

the text string being visited

Attributes

Inherited from:
JsVisitor
def visitInt32(i: Int): J

Attributes

Inherited from:
JsVisitor
def visitInt64(l: Long): J

Attributes

Inherited from:
JsVisitor
def visitTimestamp(instant: Instant): J

Attributes

Inherited from:
JsVisitor
def visitUInt64(ul: Long): J

Attributes

Inherited from:
JsVisitor