org.eclipse.jdt.internal.formatter
Class Scribe

java.lang.Object
  extended by 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
           
 int editsIndex
           
 CodeFormatterVisitor formatter
           
 int indentationLevel
           
 int indentationSize
           
 int lastNumberOfNewLines
           
 int line
           
 Alignment memberAlignment
           
 boolean needSpace
           
 int nlsTagCounter
           
 int numberOfIndentations
           
 int pageWidth
           
 boolean pendingSpace
           
 Scanner scanner
           
 int scannerEndPosition
           
 int tabChar
           
 int tabLength
           
 
Fields inherited from interface 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_SPECIAL_TAGS, JAVADOC_SPECIAL_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(java.lang.String name, int mode, int count, int sourceRestart)
           
 Alignment createAlignment(java.lang.String name, int mode, int count, int sourceRestart, boolean adjust)
           
 Alignment createAlignment(java.lang.String name, int mode, int tieBreakRule, int count, int sourceRestart)
           
 Alignment createAlignment(java.lang.String name, int mode, int count, int sourceRestart, int continuationIndent, boolean adjust)
           
 Alignment createAlignment(java.lang.String name, int mode, int tieBreakRule, int count, int sourceRestart, int continuationIndent, boolean adjust)
           
 Alignment createMemberAlignment(java.lang.String name, int mode, int count, int sourceRestart)
           
 void enterAlignment(Alignment alignment)
           
 void enterMemberAlignment(Alignment alignment)
           
 void exitAlignment(Alignment alignment, boolean discardAlignment)
           
 void exitMemberAlignment(Alignment alignment)
           
 Alignment getAlignment(java.lang.String name)
           
 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)
 org.eclipse.text.edits.TextEdit getRootEdit()
           
 void handleLineTooLong()
           
 void indent()
           
 void initializeScanner(char[] compilationUnitSource)
           
 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 printQualifiedReference(int sourceEnd, boolean expectParenthesis)
           
 void printTrailingComment()
           
 void printTrailingComment(int numberOfNewLinesToInsert)
           
 void reset()
           
 void space()
           
 java.lang.String toString()
           
 void unIndent()
           
 
Methods inherited from class java.lang.Object
equals, 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
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(java.lang.String name,
                                 int mode,
                                 int count,
                                 int sourceRestart)

createAlignment

public Alignment createAlignment(java.lang.String name,
                                 int mode,
                                 int count,
                                 int sourceRestart,
                                 boolean adjust)

createAlignment

public Alignment createAlignment(java.lang.String name,
                                 int mode,
                                 int tieBreakRule,
                                 int count,
                                 int sourceRestart)

createAlignment

public Alignment createAlignment(java.lang.String name,
                                 int mode,
                                 int count,
                                 int sourceRestart,
                                 int continuationIndent,
                                 boolean adjust)

createAlignment

public Alignment createAlignment(java.lang.String name,
                                 int mode,
                                 int tieBreakRule,
                                 int count,
                                 int sourceRestart,
                                 int continuationIndent,
                                 boolean adjust)

createMemberAlignment

public Alignment createMemberAlignment(java.lang.String name,
                                       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)

getAlignment

public Alignment getAlignment(java.lang.String name)

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 org.eclipse.text.edits.TextEdit getRootEdit()

handleLineTooLong

public void handleLineTooLong()

indent

public void indent()

initializeScanner

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

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[] 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)

printTrailingComment

public void printTrailingComment(int numberOfNewLinesToInsert)

printTrailingComment

public void printTrailingComment()

reset

public void reset()

space

public void space()

toString

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

unIndent

public void unIndent()