• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java XCasePart类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.eclipse.xtext.xbase.XCasePart的典型用法代码示例。如果您正苦于以下问题:Java XCasePart类的具体用法?Java XCasePart怎么用?Java XCasePart使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



XCasePart类属于org.eclipse.xtext.xbase包,在下文中一共展示了XCasePart类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: checkTypeGuardsOrder

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Check
public void checkTypeGuardsOrder(XSwitchExpression expression) {
	if (isIgnored(IssueCodes.UNREACHABLE_CASE)) {
		return;
	}
	ITypeReferenceOwner owner = new StandardTypeReferenceOwner(getServices(), expression);
	List<LightweightTypeReference> previousTypeReferences = new ArrayList<LightweightTypeReference>();
	for (XCasePart casePart : expression.getCases()) {
		JvmTypeReference typeGuard = casePart.getTypeGuard();
		if (typeGuard == null) {
			continue;
		}
		LightweightTypeReference actualType = owner.toLightweightTypeReference(typeGuard);
		if (actualType == null) {
			continue;
		}
		if (isHandled(actualType, previousTypeReferences)) {
			addIssue("Unreachable code: The case can never match. It is already handled by a previous condition.", typeGuard, IssueCodes.UNREACHABLE_CASE);
			continue;
		}
		if (casePart.getCase() == null) {
			previousTypeReferences.add(actualType);
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:26,代码来源:XbaseValidator.java


示例2: checkTypeGuardsOrderWithGenerics

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Check
public void checkTypeGuardsOrderWithGenerics(XSwitchExpression expression) {
	if (isIgnored(IssueCodes.UNREACHABLE_CASE)) {
		return;
	}
	ITypeReferenceOwner owner = new StandardTypeReferenceOwner(getServices(), expression);
	List<LightweightTypeReference> previousTypeReferences = new ArrayList<LightweightTypeReference>();
	for (XCasePart casePart : expression.getCases()) {
		JvmTypeReference typeGuard = casePart.getTypeGuard();
		if (typeGuard == null) {
			continue;
		}
		LightweightTypeReference typeReference = owner.toLightweightTypeReference(typeGuard);
		LightweightTypeReference actualType = typeReference.getRawTypeReference();
		if (actualType == null || typeReference == actualType) {
			continue;
		}
		if (isHandled(actualType, previousTypeReferences)) {
			addIssue("Unreachable code: The case can never match. It is already handled by a previous condition (with the same type erasure).", typeGuard, IssueCodes.UNREACHABLE_CASE);
			continue;
		}
		if (casePart.getCase() == null) {
			previousTypeReferences.add(actualType);
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:27,代码来源:XbaseValidator.java


示例3: appendCloseIfStatement

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
protected ITreeAppendable appendCloseIfStatement(XCasePart casePart, ITreeAppendable caseAppendable, XSwitchExpressionCompilationState state) {
	// close surrounding if statements
	if (state.caseNeedsIfNotMatchedCheck()) {
		if (casePart.getCase() != null) {
			caseAppendable.decreaseIndentation().newLine().append("}");
		}
		
		if (casePart.getTypeGuard() != null) {
			caseAppendable.decreaseIndentation().newLine().append("}");
			caseAppendable.closeScope();
		}
	} else if (casePart.getCase() != null && casePart.getTypeGuard() != null) {
		caseAppendable.decreaseIndentation().newLine().append("}");
		caseAppendable.closeScope();
	} else if (casePart.getTypeGuard() != null) {
		caseAppendable.closeScope();
	}
	state.finishProcessingCase();
	return caseAppendable;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:21,代码来源:XbaseCompiler.java


示例4: isCompiledToJava7Switch

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
/**
 * Determine whether the given switch expression should be compiled to a Java switch for Java version 7 or higher.
 */
protected boolean isCompiledToJava7Switch(XSwitchExpression expr) {
	// NOTE: This method could be merged with #isCompiledToJavaSwitch(XSwitchExpression)
	if (!switchExpressions.isJava7SwitchExpression(expr)) {
		return false;
	}
	for (XCasePart casePart : expr.getCases()) {
		if (!switchExpressions.isJavaCaseExpression(expr, casePart)) {
			return false;
		}
		if (!switchExpressions.isConstant(casePart)) {
			return false;
		}
	}
	return true;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:19,代码来源:XbaseCompiler.java


示例5: eSet

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
	switch (featureID)
	{
		case XbasePackage.XSWITCH_EXPRESSION__SWITCH:
			setSwitch((XExpression)newValue);
			return;
		case XbasePackage.XSWITCH_EXPRESSION__CASES:
			getCases().clear();
			getCases().addAll((Collection<? extends XCasePart>)newValue);
			return;
		case XbasePackage.XSWITCH_EXPRESSION__DEFAULT:
			setDefault((XExpression)newValue);
			return;
		case XbasePackage.XSWITCH_EXPRESSION__DECLARED_PARAM:
			setDeclaredParam((JvmFormalParameter)newValue);
			return;
	}
	super.eSet(featureID, newValue);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:28,代码来源:XSwitchExpressionImpl.java


示例6: isConstant

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
public boolean isConstant(final XCasePart casePart) {
  final XExpression case_ = casePart.getCase();
  if ((case_ == null)) {
    return false;
  }
  try {
    this._switchConstantExpressionsInterpreter.evaluate(case_);
    return true;
  } catch (final Throwable _t) {
    if (_t instanceof ConstantExpressionEvaluationException) {
      return false;
    } else {
      throw Exceptions.sneakyThrow(_t);
    }
  }
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:17,代码来源:XSwitchExpressions.java


示例7: getThen

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
public XExpression getThen(final XCasePart casePart, final XSwitchExpression switchExpression) {
  final XExpression then = casePart.getThen();
  if ((then != null)) {
    return then;
  }
  final int casePartIndex = switchExpression.getCases().indexOf(casePart);
  if ((casePartIndex == (-1))) {
    return null;
  }
  final int count = switchExpression.getCases().size();
  if ((casePartIndex == (count - 1))) {
    return switchExpression.getDefault();
  }
  if (((casePartIndex + 1) < count)) {
    return this.getThen(switchExpression.getCases().get((casePartIndex + 1)), switchExpression);
  }
  return null;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:19,代码来源:XSwitchExpressions.java


示例8: checkTypeReferenceIsNotVoid

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Check
public void checkTypeReferenceIsNotVoid(XCasePart expression) {
	if (expression.getTypeGuard() != null) {
		if (toLightweightTypeReference(expression.getTypeGuard()).isPrimitiveVoid()) {
			error("Primitive void cannot be used here.", expression.getTypeGuard(), null, INVALID_USE_OF_TYPE);
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:9,代码来源:XbaseValidator.java


示例9: checkTypeGuards

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Check
public void checkTypeGuards(XCasePart casePart) {
	if (casePart.getTypeGuard() == null)
		return;
	LightweightTypeReference typeGuard = toLightweightTypeReference(casePart.getTypeGuard());
	if (typeGuard.isPrimitive()) {
		error("Primitives are not allowed as type guards", Literals.XCASE_PART__TYPE_GUARD, INVALID_USE_OF_TYPE);
		return;
	}
	LightweightTypeReference targetTypeRef = getActualType(((XSwitchExpression) casePart.eContainer()).getSwitch());
	checkCast(casePart.getTypeGuard(), typeGuard, targetTypeRef);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:13,代码来源:XbaseValidator.java


示例10: checkRedundantCase

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Check
public void checkRedundantCase(XSwitchExpression switchExpression) {
	XCasePart casePart = IterableExtensions.last(switchExpression.getCases());
	if (casePart == null || !(casePart.isFallThrough() && casePart.getThen() == null)) {
		return;
	}
	if (switchExpression.getDefault() == null) {
		error("Redundant case.", casePart, null, IssueCodes.REDUNDANT_CASE);
	} else {
		warning("Redundant case.", casePart, null, IssueCodes.REDUNDANT_CASE);
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:13,代码来源:XbaseValidator.java


示例11: checkDeadCode

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Check
public void checkDeadCode(XSwitchExpression switchExpression) {
	List<XCasePart> cases = switchExpression.getCases();
	for(int i = 0, size = cases.size(); i < size; i++) {
		XCasePart casePart = cases.get(i);
		XExpression caseExpression = casePart.getCase();
		if (!earlyExitComputer.isEarlyExit(caseExpression)) {
			validateCondition(caseExpression, false);
		} else if (!markAsDeadCode(casePart.getThen())) {
			if (casePart.getTypeGuard() == null) { 
				i = markAsDeadCode(cases, casePart, i, size);
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:16,代码来源:EarlyExitValidator.java


示例12: markAsDeadCode

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
protected int markAsDeadCode(List<XCasePart> cases, XCasePart from, int idx, int size) {
	if (!markAsDeadCode(from.getThen())) {
		for(int j = idx + 1; j < size; j++) {
			XCasePart next = cases.get(j);
			if (markAsDeadCode(next.getTypeGuard()) || markAsDeadCode(next.getCase()) || markAsDeadCode(next.getThen())) {
				idx = j;
				j = size;
			}
		}
	}
	return idx;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:13,代码来源:EarlyExitValidator.java


示例13: isCompiledToJavaSwitch

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
/**
 * Determine whether the given switch expression should be compiled to a Java switch for Java version 6 or lower. 
 */
protected boolean isCompiledToJavaSwitch(XSwitchExpression expr) {
	if (!switchExpressions.isJavaSwitchExpression(expr)) {
		return false;
	}
	for (XCasePart casePart : expr.getCases()) {
		if (!switchExpressions.isJavaCaseExpression(expr, casePart)) {
			return false;
		}
		if (!switchExpressions.isConstant(casePart)) {
			return false;
		}
	}
	return true;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:18,代码来源:XbaseCompiler.java


示例14: allCasesAreExitedEarly

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
protected boolean allCasesAreExitedEarly(XSwitchExpression expr) {
	for(XCasePart casePart: expr.getCases()) {
		if(casePart.getThen() != null && !isEarlyExit(casePart.getThen())) {
			return false;
		}
	}
	return true;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:9,代码来源:XbaseCompiler.java


示例15: getCases

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public EList<XCasePart> getCases()
{
	if (cases == null)
	{
		cases = new EObjectContainmentEList<XCasePart>(XCasePart.class, this, XbasePackage.XSWITCH_EXPRESSION__CASES);
	}
	return cases;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:14,代码来源:XSwitchExpressionImpl.java


示例16: _findImplicitReturns

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
protected void _findImplicitReturns(final XSwitchExpression expression, final ImplicitReturnFinder.Acceptor acceptor) {
  final Consumer<XCasePart> _function = (XCasePart it) -> {
    this.findImplicitReturns(it.getThen(), acceptor);
  };
  expression.getCases().forEach(_function);
  this.findImplicitReturns(expression.getDefault(), acceptor);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:8,代码来源:XbaseImplicitReturnFinder.java


示例17: isJavaCaseExpression

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
public boolean isJavaCaseExpression(final XSwitchExpression it, final XCasePart casePart) {
  boolean _xblockexpression = false;
  {
    JvmTypeReference _typeGuard = casePart.getTypeGuard();
    boolean _tripleNotEquals = (_typeGuard != null);
    if (_tripleNotEquals) {
      return false;
    }
    final XExpression case_ = casePart.getCase();
    if ((case_ == null)) {
      return false;
    }
    @Extension
    final IResolvedTypes resolvedTypes = this._iBatchTypeResolver.resolveTypes(it);
    final LightweightTypeReference caseType = resolvedTypes.getActualType(case_);
    if ((caseType == null)) {
      return false;
    }
    final LightweightTypeReference switchType = this.getSwitchVariableType(it);
    boolean _isAssignableFrom = switchType.isAssignableFrom(caseType);
    boolean _not = (!_isAssignableFrom);
    if (_not) {
      return false;
    }
    _xblockexpression = true;
  }
  return _xblockexpression;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:29,代码来源:XSwitchExpressions.java


示例18: getCases

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Override
protected List<XCasePart> getCases(XSwitchExpression switchExpression) {
	List<XCasePart> result = super.getCases(switchExpression);
	for(XCasePart casePart: result) {
		if (casePart.getThen() == null) {
			return result;
		}
	}
	return Lists.reverse(result);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:11,代码来源:XbaseShufflingInjectorProvider.java


示例19: testSwitch_0

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Test public void testSwitch_0() throws Exception {
	XSwitchExpression se = (XSwitchExpression) expression("switch true { case 1==0 : '1' }");
	assertNull(se.getDefault());
	assertEquals(1, se.getCases().size());
	assertNotNull(se.getSwitch());
	XCasePart casePart = se.getCases().get(0);
	assertTrue(casePart.getCase() instanceof XBinaryOperation);
	assertTrue(casePart.getThen() instanceof XStringLiteral);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:10,代码来源:XbaseParserTest.java


示例20: testSwitch_1

import org.eclipse.xtext.xbase.XCasePart; //导入依赖的package包/类
@Test public void testSwitch_1() throws Exception {
	XSwitchExpression se = (XSwitchExpression) expression("switch number{case 1:'1' case 2:'2' default:'3'}");
	assertTrue(se.getDefault() instanceof XStringLiteral);
	assertEquals(2, se.getCases().size());
	assertTrue(se.getSwitch() instanceof XFeatureCall);

	XCasePart case1 = se.getCases().get(0);
	assertEquals("1", ((XNumberLiteral) case1.getCase()).getValue());
	assertTrue(case1.getThen() instanceof XStringLiteral);

	XCasePart case2 = se.getCases().get(1);
	assertEquals("2", ((XNumberLiteral) case2.getCase()).getValue());
	assertTrue(case2.getThen() instanceof XStringLiteral);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:15,代码来源:XbaseParserTest.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java XClosure类代码示例发布时间:2022-05-22
下一篇:
Java SVNProperty类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap