trait Visitor[-T, +J] extends AnyRef

Standard set of hooks uPickle uses to traverse over a structured data. A superset of the JSON, MessagePack, and Scala object hierarchies, since it needs to support efficiently processing all of them.

Note that some parameters are un-set (-1) when not available; e.g. visitArray's length is not set when parsing JSON input (since it cannot be known up front) and the various index parameters are not set when traversing Scala object hierarchies.

When expecting to deal with a subset of the methods; it is common to forward the ones you don't care about to the ones you do; e.g. JSON visitors would forward all visitFloat32/visitInt/etc. methods to visitFloat64

T

???

J

the result of visiting elements (e.g. a json AST or side-effecting writer)

See also

http://www.lihaoyi.com/post/ZeroOverheadTreeProcessingwiththeVisitorPattern.html

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Visitor
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def visitArray(length: Int, index: Int): ArrVisitor[T, J]

    index

    json source position at the start of the [ being visited

    returns

    a Visitor used for visiting the elements of the array

  2. abstract def visitBinary(bytes: Array[Byte], offset: Int, len: Int, index: Int): J
  3. abstract def visitChar(s: Char, index: Int): J
  4. abstract def visitExt(tag: Byte, bytes: Array[Byte], offset: Int, len: Int, index: Int): J
  5. abstract def visitFalse(index: Int): J

    index

    json source position at the start of the false being visited

  6. abstract def visitFloat32(d: Float, index: Int): J
  7. abstract def visitFloat64(d: Double, index: Int): 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.

    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

    d

    the input number

    index

    json source position at the start of the number being visited

  8. abstract def visitFloat64String(s: String, index: Int): 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

    s

    the text string being visited

    index

    json source position at the start of the string being visited

  9. abstract def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int): J

    Visit the number in its text representation.

    Visit the number in its text representation.

    s

    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

    index

    json source position at the start of the number being visited

  10. abstract def visitInt32(i: Int, index: Int): J
  11. abstract def visitInt64(i: Long, index: Int): J
  12. abstract def visitNull(index: Int): J

    index

    json source position at the start of the null being visited

  13. abstract def visitObject(length: Int, index: Int): ObjVisitor[T, J]

    index

    json source position at the start of the { being visited

    returns

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

  14. abstract def visitString(s: CharSequence, index: Int): J

    s

    the text string being visited

    index

    json source position at the start of the string being visited

  15. abstract def visitTrue(index: Int): J

    index

    json source position at the start of the true being visited

  16. abstract def visitUInt64(i: Long, index: Int): J

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. def map[Z](f: (J) ⇒ Z): Visitor[T, Z]
  12. def mapNulls[Z](f: (J) ⇒ Z): Visitor[T, Z]
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped