本文整理汇总了Java中org.eclipse.jdt.internal.compiler.ast.Initializer.traverse方法的典型用法代码示例。如果您正苦于以下问题:Java Initializer.traverse方法的具体用法?Java Initializer.traverse怎么用?Java Initializer.traverse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.jdt.internal.compiler.ast.Initializer
的用法示例。
在下文中一共展示了Initializer.traverse方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: formatClassBodyDeclarations
import org.eclipse.jdt.internal.compiler.ast.Initializer; //导入方法依赖的package包/类
private void formatClassBodyDeclarations(ASTNode[] nodes) {
final int FIELD = 1, METHOD = 2, TYPE = 3;
this.scribe.lastNumberOfNewLines = 1;
ASTNode[] mergedNodes = computeMergedMemberDeclarations(nodes);
Alignment memberAlignment = this.scribe.createMemberAlignment(
Alignment.TYPE_MEMBERS,
this.preferences.align_type_members_on_columns ? Alignment.M_MULTICOLUMN : Alignment.M_NO_ALIGNMENT,
4,
this.scribe.scanner.currentPosition);
this.scribe.enterMemberAlignment(memberAlignment);
boolean isChunkStart = false;
boolean ok = false;
int startIndex = 0;
do {
try {
for (int i = startIndex, max = mergedNodes.length; i < max; i++) {
ASTNode member = mergedNodes[i];
if (member instanceof FieldDeclaration) {
isChunkStart = memberAlignment.checkChunkStart(FIELD, i, this.scribe.scanner.currentPosition);
if (member instanceof MultiFieldDeclaration){
MultiFieldDeclaration multiField = (MultiFieldDeclaration) member;
format(multiField, this, null, isChunkStart, i == 0);
} else if (member instanceof Initializer) {
int newLineBeforeChunk = isChunkStart ? this.preferences.blank_lines_before_new_chunk : 0;
if (newLineBeforeChunk > 0 && i != 0) {
this.scribe.printEmptyLines(newLineBeforeChunk);
} else if (i == 0) {
int newLinesBeforeFirstClassBodyDeclaration = this.preferences.blank_lines_before_first_class_body_declaration;
if (newLinesBeforeFirstClassBodyDeclaration > 0) {
this.scribe.printEmptyLines(newLinesBeforeFirstClassBodyDeclaration);
}
}
Initializer initializer = (Initializer) member;
initializer.traverse(this, null);
} else {
FieldDeclaration field = (FieldDeclaration) member;
format(field, this, null, isChunkStart, i == 0);
}
} else if (member instanceof AbstractMethodDeclaration) {
isChunkStart = memberAlignment.checkChunkStart(METHOD, i, this.scribe.scanner.currentPosition);
format((AbstractMethodDeclaration) member, null, isChunkStart, i == 0);
} else {
isChunkStart = memberAlignment.checkChunkStart(TYPE, i, this.scribe.scanner.currentPosition);
format((TypeDeclaration)member, null, isChunkStart, i == 0);
}
while (isNextToken(TerminalTokens.TokenNameSEMICOLON)) {
this.scribe.printNextToken(TerminalTokens.TokenNameSEMICOLON, this.preferences.insert_space_before_semicolon);
this.scribe.printComment(CodeFormatter.K_UNKNOWN, Scribe.BASIC_TRAILING_COMMENT);
}
if (i != max - 1) {
this.scribe.printNewLine();
}
}
ok = true;
} catch(AlignmentException e){
startIndex = memberAlignment.chunkStartIndex;
this.scribe.redoMemberAlignment(e);
}
} while (!ok);
this.scribe.exitMemberAlignment(memberAlignment);
if (hasComments()) {
this.scribe.printNewLine();
}
this.scribe.printComment();
}