当前位置: 首页>>代码示例>>Java>>正文


Java Initializer.traverse方法代码示例

本文整理汇总了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();
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:66,代码来源:CodeFormatterVisitor.java


注:本文中的org.eclipse.jdt.internal.compiler.ast.Initializer.traverse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。