edu.iu.cnets.klatsch.stream
Class SLimit

java.lang.Object
  extended by edu.iu.cnets.klatsch.stream.Stream
      extended by edu.iu.cnets.klatsch.stream.SLimit

public class SLimit
extends Stream

This type of stream applies an element limit to an existing stream. This can be accomplished through other means, but it's still convenient.


Field Summary
(package private)  int left
          the number of elements we have left to produce
(package private)  Stream s
          the stream we've encapsulated
 
Fields inherited from class edu.iu.cnets.klatsch.stream.Stream
buffer
 
Constructor Summary
SLimit(Stream s, int left)
          Builds a new element-limited stream from the given one.
 
Method Summary
 boolean done()
          Sees whether we're at the end of the stream.
 Value getNext()
          Gets the next value in the list, if possible.
 java.lang.String toString()
          Provides an indication of internal state.
 
Methods inherited from class edu.iu.cnets.klatsch.stream.Stream
current, get
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

s

Stream s
the stream we've encapsulated


left

int left
the number of elements we have left to produce

Constructor Detail

SLimit

public SLimit(Stream s,
              int left)
Builds a new element-limited stream from the given one.

Parameters:
s - the stream to wrap
left - how many elements to permit
Method Detail

getNext

public Value getNext()
              throws EvaluationException
Gets the next value in the list, if possible.

Specified by:
getNext in class Stream
Returns:
the value
Throws:
EvaluationException

done

public boolean done()
Sees whether we're at the end of the stream.

Specified by:
done in class Stream
Returns:
true for end-of-stream

toString

public java.lang.String toString()
Provides an indication of internal state.

Overrides:
toString in class java.lang.Object
Returns:
the stream in string form