org.sonar.channel
Class CodeReader

java.lang.Object
  extended by org.sonar.channel.CodeBuffer
      extended by org.sonar.channel.CodeReader
All Implemented Interfaces:
CharSequence

public class CodeReader
extends CodeBuffer

The CodeReader class provides some advanced features to read a source code. The most important one is the ability to try consuming the next characters in the stream according to a regular expression.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.sonar.channel.CodeBuffer
CodeBuffer.Cursor
 
Constructor Summary
CodeReader(Reader code)
           
CodeReader(Reader code, CodeReaderConfiguration configuration)
          Creates a code reader with specific configuration parameters.
CodeReader(String code)
           
CodeReader(String code, CodeReaderConfiguration configuration)
          Creates a code reader with specific configuration parameters.
 
Method Summary
 CodeBuffer.Cursor getPreviousCursor()
           
 char[] peek(int length)
          Read without consuming the next characters
 String peekTo(EndMatcher matcher)
          Deprecated. in 2.2, use peekTo(EndMatcher matcher, Appendable appendable) instead
 void peekTo(EndMatcher matcher, Appendable appendable)
          Read without consuming the next characters until a condition is reached (EndMatcher)
 void pop(Appendable appendable)
          Read and consume the next character
 void popTo(EndMatcher matcher, Appendable appendable)
          Deprecated. in 2.2, use popTo(Matcher matcher, Appendable appendable) instead
 int popTo(Matcher matcher, Appendable appendable)
          Read and consume the next characters according to a given regular expression
 int popTo(Matcher matcher, Matcher afterMatcher, Appendable appendable)
          Read and consume the next characters according to a given regular expression.
 
Methods inherited from class org.sonar.channel.CodeBuffer
charAt, close, getColumnPosition, getCursor, getLinePosition, intAt, lastChar, length, peek, pop, setColumnPosition, setLinePosition, startRecording, stopRecording, subSequence, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CodeReader

public CodeReader(Reader code)

CodeReader

public CodeReader(String code)

CodeReader

public CodeReader(Reader code,
                  CodeReaderConfiguration configuration)
Creates a code reader with specific configuration parameters. Note that this constructor will read everything from reader and will close it.

Parameters:
code - the Reader to read code from
configuration - the configuration parameters

CodeReader

public CodeReader(String code,
                  CodeReaderConfiguration configuration)
Creates a code reader with specific configuration parameters.

Parameters:
code - the code itself
configuration - the configuration parameters
Method Detail

pop

public final void pop(Appendable appendable)
Read and consume the next character

Parameters:
appendable - the read character is appended to appendable

peek

public final char[] peek(int length)
Read without consuming the next characters

Parameters:
length - number of character to read
Returns:
array of characters

peekTo

public final void peekTo(EndMatcher matcher,
                         Appendable appendable)
Read without consuming the next characters until a condition is reached (EndMatcher)

Parameters:
matcher - the EndMatcher used to stop the reading
appendable - the read characters is appended to appendable

peekTo

@Deprecated
public final String peekTo(EndMatcher matcher)
Deprecated. in 2.2, use peekTo(EndMatcher matcher, Appendable appendable) instead


popTo

@Deprecated
public final void popTo(EndMatcher matcher,
                                   Appendable appendable)
Deprecated. in 2.2, use popTo(Matcher matcher, Appendable appendable) instead


popTo

public final int popTo(Matcher matcher,
                       Appendable appendable)
Read and consume the next characters according to a given regular expression

Parameters:
matcher - the regular expression matcher
appendable - the consumed characters are appended to this appendable
Returns:
number of consumed characters or -1 if the next input sequence doesn't match this matcher's pattern

popTo

public final int popTo(Matcher matcher,
                       Matcher afterMatcher,
                       Appendable appendable)
Read and consume the next characters according to a given regular expression. Moreover the character sequence immediately following the desired characters must also match a given regular expression.

Parameters:
matcher - the Matcher used to try consuming next characters
afterMatcher - the Matcher used to check character sequence immediately following the consumed characters
appendable - the consumed characters are appended to this appendable
Returns:
number of consumed characters or -1 if one of the two Matchers doesn't match

getPreviousCursor

public final CodeBuffer.Cursor getPreviousCursor()


Copyright © 2009-2012 SonarSource. All Rights Reserved.