org.eclipse.jdt.core.dom.Statement#getLength ( )源码实例Demo

下面列出了org.eclipse.jdt.core.dom.Statement#getLength ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jdt-codemining   文件: EndStatementCodeMining.java
public EndStatementCodeMining(Statement node, ITextEditor textEditor, ITextViewer viewer, int minLineNumber,
		ICodeMiningProvider provider) {
	super(new Position(node.getStartPosition() + node.getLength(), 1), provider, e -> {
		textEditor.selectAndReveal(node.getStartPosition(), 0);
	});
	String label = getLabel(node, viewer.getDocument(), minLineNumber);
	super.setLabel(label);
}
 
源代码2 项目: eclipse.jdt.ls   文件: RefactorProposalUtility.java
private static int getIndex(int offset, List<Statement> statements) {
	for (int i = 0; i < statements.size(); i++) {
		Statement s = statements.get(i);
		if (offset <= s.getStartPosition()) {
			return i;
		}
		if (offset < s.getStartPosition() + s.getLength()) {
			return -1;
		}
	}
	return statements.size();
}
 
源代码3 项目: eclipse.jdt.ls   文件: FlowAnalyzer.java
protected SwitchData createSwitchData(SwitchStatement node) {
	SwitchData result = new SwitchData();
	List<Statement> statements = node.statements();
	if (statements.isEmpty()) {
		return result;
	}

	int start = -1, end = -1;
	GenericSequentialFlowInfo info = null;

	for (Iterator<Statement> iter = statements.iterator(); iter.hasNext();) {
		Statement statement = iter.next();
		if (statement instanceof SwitchCase) {
			SwitchCase switchCase = (SwitchCase) statement;
			if (switchCase.isDefault()) {
				result.setHasDefaultCase();
			}
			if (info == null) {
				info = createSequential();
				start = statement.getStartPosition();
			} else {
				if (info.isReturn() || info.isPartialReturn() || info.branches()) {
					result.add(new Region(start, end - start + 1), info);
					info = createSequential();
					start = statement.getStartPosition();
				}
			}
		} else {
			info.merge(getFlowInfo(statement), fFlowContext);
		}
		end = statement.getStartPosition() + statement.getLength() - 1;
	}
	result.add(new Region(start, end - start + 1), info);
	return result;
}
 
protected SwitchData createSwitchData(SwitchStatement node) {
	SwitchData result= new SwitchData();
	List<Statement> statements= node.statements();
	if (statements.isEmpty())
		return result;

	int start= -1, end= -1;
	GenericSequentialFlowInfo info= null;

	for (Iterator<Statement> iter= statements.iterator(); iter.hasNext(); ) {
		Statement statement= iter.next();
		if (statement instanceof SwitchCase) {
			SwitchCase switchCase= (SwitchCase)statement;
			if (switchCase.isDefault()) {
				result.setHasDefaultCase();
			}
			if (info == null) {
				info= createSequential();
				start= statement.getStartPosition();
			} else {
				if (info.isReturn() || info.isPartialReturn() || info.branches()) {
					result.add(new Region(start, end - start + 1), info);
					info= createSequential();
					start= statement.getStartPosition();
				}
			}
		} else {
			info.merge(getFlowInfo(statement), fFlowContext);
		}
		end= statement.getStartPosition() + statement.getLength() - 1;
	}
	result.add(new Region(start, end - start + 1), info);
	return result;
}
 
private static int getIndex(int offset, List<Statement> statements) {
	for (int i= 0; i < statements.size(); i++) {
		Statement s= statements.get(i);
		if (offset <= s.getStartPosition()) {
			return i;
		}
		if (offset < s.getStartPosition() + s.getLength()) {
			return -1;
		}
	}
	return statements.size();
}
 
private boolean nodeExistsInsideTypeCheckCodeFragment(ASTNode node) {
	Statement statement = typeCheckElimination.getTypeCheckCodeFragment();
	int startPosition = statement.getStartPosition();
	int endPosition = startPosition + statement.getLength();
	if(node.getStartPosition() >= startPosition && node.getStartPosition() <= endPosition)
		return true;
	else
		return false;
}