org.aspectj.org.eclipse.jdt.internal.formatter
Class Scribe

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.formatter.Scribe
All Implemented Interfaces:
IJavaDocTagConstants

public class Scribe
extends java.lang.Object
implements IJavaDocTagConstants

This class is responsible for dumping formatted source

Since:
2.1

Field Summary
 int column
          one-based column
 Alignment currentAlignment
           
 int currentToken
           
static int DO_NOT_PRESERVE_EMPTY_LINES
           
 int editsIndex
           
 CodeFormatterVisitor formatter
           
 int indentationLevel
           
 int indentationSize
           
 int lastNumberOfNewLines
           
 int line
           
 Alignment memberAlignment
           
 boolean needSpace
           
 int nlsTagCounter
           
 int numberOfIndentations
           
 int pageWidth
           
 boolean pendingSpace
           
static int PRESERVE_EMPTY_LINES_AT_END_OF_BLOCK
           
static int PRESERVE_EMPTY_LINES_AT_END_OF_METHOD_DECLARATION
           
static int PRESERVE_EMPTY_LINES_BEFORE_ELSE
           
static int PRESERVE_EMPTY_LINES_IN_BINARY_EXPRESSION
           
static int PRESERVE_EMPTY_LINES_IN_CLOSING_ARRAY_INITIALIZER
           
static int PRESERVE_EMPTY_LINES_IN_EQUALITY_EXPRESSION
           
static int PRESERVE_EMPTY_LINES_IN_FORMAT_LEFT_CURLY_BRACE
           
static int PRESERVE_EMPTY_LINES_IN_FORMAT_OPENING_BRACE
           
static int PRESERVE_EMPTY_LINES_IN_STRING_LITERAL_CONCATENATION
           
static int PRESERVE_EMPTY_LINES_IN_SWITCH_CASE
           
static int PRESERVE_EMPTY_LINES_KEEP_LAST_NEW_LINES_INDENTATION
           
 Scanner scanner
           
 int scannerEndPosition
           
 int tabChar
           
 int tabLength
           
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.formatter.comment.IJavaDocTagConstants
BLOCK_FOOTER, BLOCK_FOOTER_LENGTH, BLOCK_HEADER, BLOCK_HEADER_LENGTH, BLOCK_LINE_PREFIX, BLOCK_LINE_PREFIX_LENGTH, COMMENT_ROOT_TAGS, COMMENT_TAG_PREFIX, JAVADOC_BREAK_TAGS, JAVADOC_BREAK_TAGS_ID, JAVADOC_CLOSED_TAG, JAVADOC_CODE_TAGS, JAVADOC_CODE_TAGS_ID, JAVADOC_HEADER, JAVADOC_HEADER_LENGTH, JAVADOC_IMMUTABLE_TAGS, JAVADOC_IMMUTABLE_TAGS_ID, JAVADOC_NEWLINE_TAGS, JAVADOC_PARAM_TAGS, JAVADOC_SEPARATOR_TAGS, JAVADOC_SEPARATOR_TAGS_ID, JAVADOC_SINGLE_BREAK_TAG, JAVADOC_SINGLE_BREAK_TAG_ID, JAVADOC_SINGLE_TAGS_ID, JAVADOC_STAR, JAVADOC_TAG_PREFIX, JAVADOC_TAGS_ID_MASK, JAVADOC_TAGS_INDEX_MASK, LINE_COMMENT_PREFIX, LINE_COMMENT_PREFIX_LENGTH, LINK_TAG_POSTFIX, LINK_TAG_PREFIX, LINK_TAG_PREFIX_STRING
 
Method Summary
 void addInsertEdit(int insertPosition, java.lang.String insertedString)
           
 void addReplaceEdit(int start, int end, java.lang.String replacement)
           
 void alignFragment(Alignment alignment, int fragmentIndex)
           
 void checkNLSTag(int sourceStart)
           
 Alignment createAlignment(int kind, int mode, int count, int sourceRestart)
           
 Alignment createAlignment(int kind, int mode, int tieBreakRule, int count, int sourceRestart)
           
 Alignment createAlignment(int kind, int mode, int count, int sourceRestart, int continuationIndent, boolean adjust)
           
 Alignment createAlignment(int kind, int mode, int tieBreakRule, int count, int sourceRestart, int continuationIndent, boolean adjust)
           
 Alignment createMemberAlignment(int kind, int mode, int count, int sourceRestart)
           
 void enterAlignment(Alignment alignment)
           
 void enterMemberAlignment(Alignment alignment)
           
 void exitAlignment(Alignment alignment, boolean discardAlignment)
           
 void exitMemberAlignment(Alignment alignment)
           
 int getColumnIndentationLevel()
          Answer actual indentation level based on true column position
 int getCommentIndex(int position)
           
 java.lang.String getEmptyLines(int linesNumber)
           
 OptimizedReplaceEdit getLastEdit()
           
 int getLineEnd(int lineNumber)
           
 java.lang.String getNewLine()
           
 int getNextIndentationLevel(int someColumn)
          Answer next indentation level based on column estimated position (if column is not indented, then use indentationLevel)
 TextEdit getRootEdit()
           
 void handleLineTooLong()
           
 void indent()
           
 void printArrayQualifiedReference(int numberOfTokens, int sourceEnd)
           
 void printEmptyLines(int linesNumber)
           
 void printEndOfCompilationUnit()
           
 void printModifiers(Annotation[] annotations, ASTVisitor visitor)
           
 void printModifiers(Annotation[] annotations, ASTVisitor visitor, int annotationSourceKind)
           
 void printNewLine()
           
 void printNewLine(int insertPosition)
           
 void printNextToken(int expectedTokenType)
           
 void printNextToken(int[] expectedTokenTypes)
           
 void printNextToken(int[] expectedTokenTypes, boolean considerSpaceIfAny)
           
 void printNextToken(int expectedTokenType, boolean considerSpaceIfAny)
           
 void printNextToken(int expectedTokenType, boolean considerSpaceIfAny, int emptyLineRules)
           
 void printQualifiedReference(int sourceEnd, boolean expectParenthesis)
           
 void reset()
           
 void resetScanner(char[] compilationUnitSource)
           
 void space()
           
 java.lang.String toString()
           
 void unIndent()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

column

public int column
one-based column


currentAlignment

public Alignment currentAlignment

currentToken

public int currentToken

editsIndex

public int editsIndex

formatter

public CodeFormatterVisitor formatter

indentationLevel

public int indentationLevel

lastNumberOfNewLines

public int lastNumberOfNewLines

line

public int line

memberAlignment

public Alignment memberAlignment

needSpace

public boolean needSpace

nlsTagCounter

public int nlsTagCounter

pageWidth

public int pageWidth

pendingSpace

public boolean pendingSpace

scanner

public Scanner scanner

scannerEndPosition

public int scannerEndPosition

tabLength

public int tabLength

indentationSize

public int indentationSize

tabChar

public int tabChar

numberOfIndentations

public int numberOfIndentations

DO_NOT_PRESERVE_EMPTY_LINES

public static final int DO_NOT_PRESERVE_EMPTY_LINES
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_KEEP_LAST_NEW_LINES_INDENTATION

public static final int PRESERVE_EMPTY_LINES_KEEP_LAST_NEW_LINES_INDENTATION
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_FORMAT_LEFT_CURLY_BRACE

public static final int PRESERVE_EMPTY_LINES_IN_FORMAT_LEFT_CURLY_BRACE
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_STRING_LITERAL_CONCATENATION

public static final int PRESERVE_EMPTY_LINES_IN_STRING_LITERAL_CONCATENATION
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_CLOSING_ARRAY_INITIALIZER

public static final int PRESERVE_EMPTY_LINES_IN_CLOSING_ARRAY_INITIALIZER
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_FORMAT_OPENING_BRACE

public static final int PRESERVE_EMPTY_LINES_IN_FORMAT_OPENING_BRACE
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_BINARY_EXPRESSION

public static final int PRESERVE_EMPTY_LINES_IN_BINARY_EXPRESSION
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_EQUALITY_EXPRESSION

public static final int PRESERVE_EMPTY_LINES_IN_EQUALITY_EXPRESSION
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_BEFORE_ELSE

public static final int PRESERVE_EMPTY_LINES_BEFORE_ELSE
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_IN_SWITCH_CASE

public static final int PRESERVE_EMPTY_LINES_IN_SWITCH_CASE
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_AT_END_OF_METHOD_DECLARATION

public static final int PRESERVE_EMPTY_LINES_AT_END_OF_METHOD_DECLARATION
See Also:
Constant Field Values

PRESERVE_EMPTY_LINES_AT_END_OF_BLOCK

public static final int PRESERVE_EMPTY_LINES_AT_END_OF_BLOCK
See Also:
Constant Field Values
Method Detail

addInsertEdit

public final void addInsertEdit(int insertPosition,
                                java.lang.String insertedString)

addReplaceEdit

public final void addReplaceEdit(int start,
                                 int end,
                                 java.lang.String replacement)

alignFragment

public void alignFragment(Alignment alignment,
                          int fragmentIndex)

checkNLSTag

public void checkNLSTag(int sourceStart)

createAlignment

public Alignment createAlignment(int kind,
                                 int mode,
                                 int count,
                                 int sourceRestart)

createAlignment

public Alignment createAlignment(int kind,
                                 int mode,
                                 int tieBreakRule,
                                 int count,
                                 int sourceRestart)

createAlignment

public Alignment createAlignment(int kind,
                                 int mode,
                                 int count,
                                 int sourceRestart,
                                 int continuationIndent,
                                 boolean adjust)

createAlignment

public Alignment createAlignment(int kind,
                                 int mode,
                                 int tieBreakRule,
                                 int count,
                                 int sourceRestart,
                                 int continuationIndent,
                                 boolean adjust)

createMemberAlignment

public Alignment createMemberAlignment(int kind,
                                       int mode,
                                       int count,
                                       int sourceRestart)

enterAlignment

public void enterAlignment(Alignment alignment)

enterMemberAlignment

public void enterMemberAlignment(Alignment alignment)

exitAlignment

public void exitAlignment(Alignment alignment,
                          boolean discardAlignment)

exitMemberAlignment

public void exitMemberAlignment(Alignment alignment)

getColumnIndentationLevel

public int getColumnIndentationLevel()
Answer actual indentation level based on true column position

Returns:
int

getCommentIndex

public final int getCommentIndex(int position)

getEmptyLines

public java.lang.String getEmptyLines(int linesNumber)

getLastEdit

public OptimizedReplaceEdit getLastEdit()

getLineEnd

public final int getLineEnd(int lineNumber)

getNewLine

public java.lang.String getNewLine()

getNextIndentationLevel

public int getNextIndentationLevel(int someColumn)
Answer next indentation level based on column estimated position (if column is not indented, then use indentationLevel)


getRootEdit

public TextEdit getRootEdit()

handleLineTooLong

public void handleLineTooLong()

indent

public void indent()

printEndOfCompilationUnit

public void printEndOfCompilationUnit()

printEmptyLines

public void printEmptyLines(int linesNumber)

printModifiers

public void printModifiers(Annotation[] annotations,
                           ASTVisitor visitor)

printModifiers

public void printModifiers(Annotation[] annotations,
                           ASTVisitor visitor,
                           int annotationSourceKind)

printNewLine

public void printNewLine()

printNewLine

public void printNewLine(int insertPosition)

printNextToken

public void printNextToken(int expectedTokenType)

printNextToken

public void printNextToken(int expectedTokenType,
                           boolean considerSpaceIfAny)

printNextToken

public void printNextToken(int expectedTokenType,
                           boolean considerSpaceIfAny,
                           int emptyLineRules)

printNextToken

public void printNextToken(int[] expectedTokenTypes)

printNextToken

public void printNextToken(int[] expectedTokenTypes,
                           boolean considerSpaceIfAny)

printArrayQualifiedReference

public void printArrayQualifiedReference(int numberOfTokens,
                                         int sourceEnd)

printQualifiedReference

public void printQualifiedReference(int sourceEnd,
                                    boolean expectParenthesis)

reset

public void reset()

resetScanner

public void resetScanner(char[] compilationUnitSource)
Parameters:
compilationUnitSource -

space

public void space()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

unIndent

public void unIndent()