object Splitter
- Source
- Splitter.scala
- Alphabetic
- By Inheritance
- Splitter
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[In]: SplitterApplyWithBoundInput[In]
Convenience for creating Splitters with a specific
Intype; useful when type inference can figure out the other type parameters. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def consecutiveMatches[In](p: (In) => Boolean): Splitter[In, Any]
Create a Splitter that treats consecutive values matching the predicate
pas substreams with no particular context value.Create a Splitter that treats consecutive values matching the predicate
pas substreams with no particular context value. For example, given a matcher likei => i % 2 == 0, a stream like1 3 2 2 4 5 6 7 8 10 4 3 1
could be treated as having three substreams:
2 2 468 10 4
- def consecutiveMatches[In, Context](matcher: PartialFunction[In, Context]): Splitter[In, Context]
Create a Splitter that treats consecutive matched values as substreams.
Create a Splitter that treats consecutive matched values as substreams. For example, given a matcher like
{ case c if c.isLetter => c }, a stream like1 2 3 A B C 4 5 6 D 7 8 E F G H 9
could be treated as having three substreams, where each substream's "context value" is the first letter in that group (because context is always defined by the beginning of the substream).
A B Cwith context'A'(between the 3 and 4)Dwith context'D'(between the 6 and 7)E F G Hwith context'E'(between the 8 and 9)
- matcher
A function defining which inputs count as a "match"
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def fromMatcher[In, Elem, C](matcher: ContextMatcher[Elem, C])(implicit S: StackLike[In, Elem], pos: CallerPos): Splitter[In, C]
Create a splitter that keeps track of a "stack" which is pushed and popped by
Inevents, starting a new substream when the givenmatchermatches the stack.Create a splitter that keeps track of a "stack" which is pushed and popped by
Inevents, starting a new substream when the givenmatchermatches the stack.The primary use-case for this is when dealing with nestable data formats like XML or JSON, where a token could signify a push to the stack (e.g. an ElemStart event), and where you want to operate on events that occur within some specific stack of elements.
For inputs that cause a push or pop to the stack, whether that input is included as "inside" the pushed context is up to the specific
StackLikeimplementation. - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def splitOnMatch[In](f: (In) => Boolean): Splitter[In, Any]
Create a splitter that starts a new substream every time the predicate function
preturns true for an input.Create a splitter that starts a new substream every time the predicate function
preturns true for an input. Any inputs passed through before the initial match will be discarded, but every event thereafter will be part of a substream. Context is ignored for substreams from this method - the context type isAny.For example, in a stream like
4 3 2 1 2 3 1 2 1 2 3 4, if our predicate was{ _ == 1 }, then we'd have a new substream starting from each1input.- (new context) 1 2 3
- (new context) 1 2
- (new context) 1 2 3 4
- In
The input type
- f
The predicate function responsible for determining if a new context should start for an input.
- returns
A splitter that starts a new substream for every input where
p(input) == true
- def splitOnMatch[In, C](matcher: PartialFunction[In, C]): Splitter[In, C]
Create a splitter that starts a new substream every time the
matchermatches.Create a splitter that starts a new substream every time the
matchermatches. Any events passed through before the initial match will be discarded, but every event thereafter will be part of a substream. The context for a substream is based on the value returned by thematcherfor the event that caused that match.For example, in a stream like
4 3 2 1 2 3 1 2 1 2 3 4, if our matcher was{ case 1 => "yay" }, then we'd have a new substream with context "yay" every time a1came through:- (new context: "yay") 1 2 3
- (new context: "yay") 1 2
- (new context: "yay") 1 2 3 4
- In
The input type
- C
The extracted context type
- matcher
A PartialFunction that can extract a context value from inputs
- returns
A splitter that starts a new substream for every input where
matcher.isDefinedAt(input), with a context equal tomatcher(input).
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()