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

Java XMemberFeatureCall类代码示例

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

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



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

示例1: checkIsValidConstructorArgument

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected void checkIsValidConstructorArgument(XExpression argument, JvmType containerType) {
	TreeIterator<EObject> iterator = EcoreUtil2.eAll(argument);
	while(iterator.hasNext()) {
		EObject partOfArgumentExpression = iterator.next();
		if (partOfArgumentExpression instanceof XFeatureCall || partOfArgumentExpression instanceof XMemberFeatureCall) {				
			XAbstractFeatureCall featureCall = (XAbstractFeatureCall) partOfArgumentExpression;
			XExpression actualReceiver = featureCall.getActualReceiver();
			if(actualReceiver instanceof XFeatureCall && ((XFeatureCall)actualReceiver).getFeature() == containerType) {
				JvmIdentifiableElement feature = featureCall.getFeature();
				if (feature != null && !feature.eIsProxy()) {
					if (feature instanceof JvmField) {
						if (!((JvmField) feature).isStatic())
							error("Cannot refer to an instance field " + feature.getSimpleName() + " while explicitly invoking a constructor", 
									partOfArgumentExpression, null, INVALID_CONSTRUCTOR_ARGUMENT);
					} else if (feature instanceof JvmOperation) {
						if (!((JvmOperation) feature).isStatic())
							error("Cannot refer to an instance method while explicitly invoking a constructor", 
									partOfArgumentExpression, null, INVALID_CONSTRUCTOR_ARGUMENT);	
					}
				}
			}
		} else if(isLocalClassSemantics(partOfArgumentExpression)) {
			iterator.prune();
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:27,代码来源:XbaseValidator.java


示例2: checkNoJavaStyleTypeCasting

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected void checkNoJavaStyleTypeCasting(INode node) {
	BidiTreeIterator<INode> iterator = node.getAsTreeIterable().reverse().iterator();
	ILeafNode child = getFirstLeafNode(iterator);
	if (child != null && child.getGrammarElement() == grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()) {
		INode expressionNode = getNode(iterator, grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
		EObject semanticObject = NodeModelUtils.findActualSemanticObjectFor(expressionNode);
		if (semanticObject instanceof XFeatureCall || semanticObject instanceof XMemberFeatureCall) {
			XAbstractFeatureCall featureCall = (XAbstractFeatureCall) semanticObject;
			if (featureCall.isTypeLiteral()) {
				ICompositeNode parenthesizedNode = child.getParent();
				ITextRegion parenthesizedRegion = parenthesizedNode.getTextRegion();
				addIssue("Use 'as' keyword for type casting.", featureCall, parenthesizedRegion.getOffset(), parenthesizedRegion.getLength(), JAVA_STYLE_TYPE_CAST);
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:17,代码来源:XbaseValidator.java


示例3: preApply

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Override
protected void preApply() {
	XAbstractFeatureCall expression = getExpression();
	JvmType type = getType();
	if (expression instanceof XMemberFeatureCall) {
		if (type instanceof JvmDeclaredType) {
			JvmDeclaredType declaredType = (JvmDeclaredType) type;
			if (declaredType.getDeclaringType() == null) {
				helper.applyPackageFragment((XMemberFeatureCall) expression, declaredType);
			} else {
				String queriedName = description.getName().toString(); // may be Map$Entry
				String qualifiedName = declaredType.getIdentifier();
				String packageName = Strings.emptyIfNull(declaredType.getPackageName());
				if (packageName.length() + 1 + queriedName.length() == qualifiedName.length()) {
					helper.applyPackageFragment((XMemberFeatureCall) expression, declaredType);
				}
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:21,代码来源:TypeLiteralLinkingCandidate.java


示例4: getSyntacticReceiver

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
public XExpression getSyntacticReceiver(XExpression expression) {
	if (expression instanceof XAbstractFeatureCall) {
		if (expression instanceof XFeatureCall) {
			return null;
		}
		if (expression instanceof XMemberFeatureCall) {
			return ((XMemberFeatureCall) expression).getMemberCallTarget();
		}
		if (expression instanceof XAssignment) {
			return ((XAssignment) expression).getAssignable();
		}
		if (expression instanceof XBinaryOperation) {
			return ((XBinaryOperation) expression).getLeftOperand();
		}
		if (expression instanceof XUnaryOperation) {
			return ((XUnaryOperation) expression).getOperand();
		}
		if (expression instanceof XPostfixOperation) {
			return ((XPostfixOperation) expression).getOperand();
		}
	}
	return null;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:24,代码来源:FeatureLinkHelper.java


示例5: getSyntacticArguments

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
public List<XExpression> getSyntacticArguments(XAbstractFeatureCall expression) {
	if (expression instanceof XFeatureCall) {
		return ((XFeatureCall) expression).getFeatureCallArguments();
	}
	if (expression instanceof XMemberFeatureCall) {
		return ((XMemberFeatureCall) expression).getMemberCallArguments();
	}
	if (expression instanceof XAssignment) {
		return Collections.singletonList(((XAssignment) expression).getValue());
	}
	if (expression instanceof XBinaryOperation) {
		return Collections.singletonList(((XBinaryOperation) expression).getRightOperand());
	}
	// explicit condition to make sure we thought about it
	if (expression instanceof XUnaryOperation) {
		return Collections.emptyList();
	}
	if (expression instanceof XPostfixOperation) {
		return Collections.emptyList();
	}
	return Collections.emptyList();
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:23,代码来源:FeatureLinkHelper.java


示例6: applyToComputationState

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Override
public void applyToComputationState() {
	super.applyToComputationState();
	XAbstractFeatureCall featureCall = getFeatureCall();
	if (featureCall instanceof XMemberFeatureCall) {
		XExpression target = ((XMemberFeatureCall) featureCall).getMemberCallTarget();
		if (target == null || !(target instanceof XAbstractFeatureCall))
			throw new IllegalStateException();
		XAbstractFeatureCall targetFeatureCall = (XAbstractFeatureCall) target;
		ResolvedTypes resolvedTypes = getState().getResolvedTypes();
		LightweightTypeReference targetType = resolvedTypes.getActualType(targetFeatureCall.getFeature());
		if (targetType == null) {
			throw new IllegalStateException();
		}
		TypeExpectation expectation = new TypeExpectation(null, getState(), false);
		resolvedTypes.acceptType(targetFeatureCall, expectation, targetType.copyInto(resolvedTypes.getReferenceOwner()), false, ConformanceFlags.UNCHECKED);
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:19,代码来源:ImplicitReceiver.java


示例7: testClosureParameter

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Test
	public void testClosureParameter() throws Exception {
//		List<? super String> list = Lists.newArrayList();
//		ListExtensions.map(list, new Functions.Function1<CharSequence, String>() {
//			public String apply(CharSequence p) {
//				return null;
//			}
//		});
//		ListExtensions.map(list, new Functions.Function1<Object, String>() {
//			public String apply(Object p) {
//				return null;
//			}
//		});
		XBlockExpression block = (XBlockExpression) expression(
				"{\n" + 
				"  var java.util.List<? super String> list = null;\n" + 
				"  list.map(e|e)\n" +
				"}");
		XMemberFeatureCall featureCall = (XMemberFeatureCall) block.getExpressions().get(1);
		XClosure closure = (XClosure) featureCall.getMemberCallArguments().get(0);
		JvmFormalParameter e = closure.getDeclaredFormalParameters().get(0);
		LightweightTypeReference typeRef = typeResolver.resolveTypes(closure).getActualType(e);
		assertEquals("java.lang.Object", typeRef.getIdentifier());
	}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:25,代码来源:XbaseIdentifiableTypeProviderTest.java


示例8: doGetTypeScope

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected IScope doGetTypeScope(XMemberFeatureCall call, JvmType type) {
	if (call.isPackageFragment()) {
		if (type instanceof JvmDeclaredType) {
			int segmentIndex = countSegments(call);
			String packageName = ((JvmDeclaredType) type).getPackageName();
			List<String> splitted = Strings.split(packageName, '.');
			String segment = splitted.get(segmentIndex);
			return new SingletonScope(EObjectDescription.create(segment, type), IScope.NULLSCOPE);
		}
		return IScope.NULLSCOPE;
	} else {
		if (type instanceof JvmDeclaredType && ((JvmDeclaredType) type).getDeclaringType() == null) {
			return new SingletonScope(EObjectDescription.create(type.getSimpleName(), type), IScope.NULLSCOPE);
		} else {
			XAbstractFeatureCall target = (XAbstractFeatureCall) call.getMemberCallTarget();
			if (target.isPackageFragment()) {
				String qualifiedName = type.getQualifiedName();
				int dot = qualifiedName.lastIndexOf('.');
				String simpleName = qualifiedName.substring(dot + 1);
				return new SingletonScope(EObjectDescription.create(simpleName, type), IScope.NULLSCOPE);
			} else {
				return new SingletonScope(EObjectDescription.create(type.getSimpleName(), type), IScope.NULLSCOPE);	
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:27,代码来源:SerializerScopeProvider.java


示例9: doGetRootTypeLiteral

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected XAbstractFeatureCall doGetRootTypeLiteral(XMemberFeatureCall featureCall) {
	boolean staticNotation = featureCall.isExplicitStatic();
	XMemberFeatureCall current = featureCall;
	while(current.eContainingFeature() == XbasePackage.Literals.XMEMBER_FEATURE_CALL__MEMBER_CALL_TARGET) {
		XMemberFeatureCall container = (XMemberFeatureCall) current.eContainer();
		if (container.isExplicitStatic()) {
			if (staticNotation == false) {
				return current;
			}
			current = container;
		} else if (staticNotation) {
			return (XAbstractFeatureCall) current.getMemberCallTarget();
		} else {
			current = container;
		}
	}
	if (current != featureCall && staticNotation) {
		return (XAbstractFeatureCall) current.getMemberCallTarget();
	}
	return null;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:22,代码来源:FeatureCallAsTypeLiteralHelper.java


示例10: getLocationWithoutTypeArguments

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected ILocationData getLocationWithoutTypeArguments(XAbstractFeatureCall call) {
	final ICompositeNode startNode = NodeModelUtils.getNode(call);
	if (startNode != null) {
		List<INode> resultNodes = Lists.newArrayList();
		if (call instanceof XFeatureCall || call instanceof XMemberFeatureCall) {
			boolean featureReferenceSeen = false;
			for (INode child : startNode.getChildren()) {
				if (featureReferenceSeen) {
					resultNodes.add(child);
				} else {
					EObject grammarElement = child.getGrammarElement();
					if (grammarElement instanceof CrossReference) {
						Assignment assignment = GrammarUtil.containingAssignment(grammarElement);
						if (assignment != null && "feature".equals(assignment.getFeature())) {
							featureReferenceSeen = true;
							resultNodes.add(child);
						}
					}
				}
			}
		}
		return toLocationData(resultNodes);
	}
	return null;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:26,代码来源:FeatureCallCompiler.java


示例11: prependNewLineIfMultiline

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected boolean prependNewLineIfMultiline(final EObject obj) {
  boolean _switchResult = false;
  boolean _matched = false;
  if (obj instanceof XMemberFeatureCall) {
    _matched=true;
    _switchResult = this.prependNewLineIfMultiline(this.builder(((XMemberFeatureCall)obj).getMemberCallArguments()));
  }
  if (!_matched) {
    if (obj instanceof XClosure) {
      _matched=true;
      _switchResult = false;
    }
  }
  if (!_matched) {
    if (obj instanceof XBlockExpression) {
      _matched=true;
      _switchResult = false;
    }
  }
  if (!_matched) {
    _switchResult = true;
  }
  return _switchResult;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:25,代码来源:XbaseFormatter.java


示例12: _visit

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected void _visit(final XMemberFeatureCall semanticObj, final INode originNode, final ImportsAcceptor acceptor) {
  if (((semanticObj.getFeature() instanceof JvmType) && semanticObj.isTypeLiteral())) {
    JvmIdentifiableElement _feature = semanticObj.getFeature();
    this.visit(((JvmType) _feature), originNode, acceptor);
  }
  boolean _isExplicitStatic = semanticObj.isExplicitStatic();
  boolean _not = (!_isExplicitStatic);
  if (_not) {
    final XExpression target = semanticObj.getMemberCallTarget();
    if ((target instanceof XAbstractFeatureCall)) {
      boolean _isTypeLiteral = ((XAbstractFeatureCall)target).isTypeLiteral();
      if (_isTypeLiteral) {
        return;
      }
    }
    this.collectStaticImportsFrom(semanticObj, acceptor);
  }
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:19,代码来源:ImportsCollector.java


示例13: completeXFeatureCall

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected void completeXFeatureCall(final EObject model, final ContentAssistContext context, final IIdeContentProposalAcceptor acceptor) {
  if ((model != null)) {
    boolean _hasExpressionScope = this.typeResolver.resolveTypes(model).hasExpressionScope(model, IExpressionScope.Anchor.WITHIN);
    if (_hasExpressionScope) {
      return;
    }
  }
  if ((model instanceof XMemberFeatureCall)) {
    final ICompositeNode node = NodeModelUtils.getNode(model);
    boolean _isInMemberFeatureCall = this.isInMemberFeatureCall(model, node.getEndOffset(), context);
    if (_isInMemberFeatureCall) {
      return;
    }
  }
  this.createLocalVariableAndImplicitProposals(model, IExpressionScope.Anchor.AFTER, context, acceptor);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:17,代码来源:XbaseIdeContentProposalProvider.java


示例14: createReceiverProposals

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected void createReceiverProposals(final XExpression receiver, final CrossReference crossReference, final ContentAssistContext context, final IIdeContentProposalAcceptor acceptor) {
  final IResolvedTypes resolvedTypes = this.typeResolver.resolveTypes(receiver);
  final LightweightTypeReference receiverType = resolvedTypes.getActualType(receiver);
  if (((receiverType == null) || receiverType.isPrimitiveVoid())) {
    return;
  }
  final IExpressionScope expressionScope = resolvedTypes.getExpressionScope(receiver, IExpressionScope.Anchor.RECEIVER);
  IScope scope = null;
  final EObject currentModel = context.getCurrentModel();
  if ((currentModel != receiver)) {
    if (((currentModel instanceof XMemberFeatureCall) && 
      (((XMemberFeatureCall) currentModel).getMemberCallTarget() == receiver))) {
      scope = this.syntaxFilteredScopes.create(expressionScope.getFeatureScope(((XAbstractFeatureCall) currentModel)), crossReference);
    } else {
      scope = this.syntaxFilteredScopes.create(expressionScope.getFeatureScope(), crossReference);
    }
  } else {
    scope = this.syntaxFilteredScopes.create(expressionScope.getFeatureScope(), crossReference);
  }
  this.getCrossrefProposalProvider().lookupCrossReference(scope, crossReference, context, acceptor, this.featureDescriptionPredicate);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:22,代码来源:XbaseIdeContentProposalProvider.java


示例15: testClosure_04

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Test
public void testClosure_04() throws Exception {
	XBlockExpression block = (XBlockExpression) expression(
			"{\n" + 
			"  var java.util.List<? super String> list = null;\n" + 
			"  list.map(e|e == null)\n" +
			"}");
	XMemberFeatureCall featureCall = (XMemberFeatureCall) block.getExpressions().get(1);
	XClosure closure = (XClosure) featureCall.getMemberCallArguments().get(0);
	LightweightTypeReference typeRef = getType(closure);
	assertEquals("(java.lang.Object)=>boolean", toString(typeRef));
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:13,代码来源:XbaseTypeProviderTest.java


示例16: testStaticFeatureCall_08

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Ignore("TODO eager binding of type arguments to expectation")
@Test public void testStaticFeatureCall_08() throws Exception {
	XBlockExpression block = (XBlockExpression) expression("{ val Iterable<CharSequence> iterable = testdata::MethodOverrides4::staticM5(null) }");
	XVariableDeclaration variable = (XVariableDeclaration) block.getExpressions().get(0);
	XMemberFeatureCall featureCall = (XMemberFeatureCall) variable.getRight();
	assertEquals("testdata.MethodOverrides3.staticM5(T)", featureCall.getFeature().getIdentifier());
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:8,代码来源:AbstractXbaseLinkingTest.java


示例17: testOverloadedMethods_04

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Test public void testOverloadedMethods_04() throws Exception {
	XBlockExpression block = (XBlockExpression) expression(
			"{\n" +
			"    var java.util.List<? extends Object> objects = null\n" +
			"    var testdata.OverloadedMethods<Object> receiver = null\n" +
			"    receiver.overloaded(objects, objects)\n" +
			"}");
	XMemberFeatureCall featureCall = (XMemberFeatureCall) block.getExpressions().get(2);
	JvmIdentifiableElement overloaded = featureCall.getFeature();
	assertNotNull(overloaded);
	assertFalse(overloaded.eIsProxy());
	assertEquals("testdata.OverloadedMethods.overloaded(java.lang.Iterable,java.lang.Iterable)", overloaded.getIdentifier());
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:14,代码来源:AbstractXbaseLinkingTest.java


示例18: preApply

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Override
protected void preApply() {
	JvmType type = getType();
	XAbstractFeatureCall expression = getExpression();
	if (expression instanceof XMemberFeatureCall) {
		if (type instanceof JvmDeclaredType) {
			JvmDeclaredType declaredType = (JvmDeclaredType) type;
			if (declaredType.getDeclaringType() == null) {
				helper.applyPackageFragment((XMemberFeatureCall) expression, declaredType);
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:14,代码来源:ResolvedTypeLiteral.java


示例19: isStaticWithDeclaringType

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
protected boolean isStaticWithDeclaringType() {
	XAbstractFeatureCall featureCall = getFeatureCall();
	if (featureCall instanceof XMemberFeatureCall) {
		return ((XMemberFeatureCall) featureCall).isStaticWithDeclaringType();
	}
	if (featureCall instanceof XAssignment) {
		return isStaticWithDeclaringType((XAssignment) featureCall);
	}
	return false;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:11,代码来源:FeatureLinkingCandidate.java


示例20: testTypeParamInference_04

import org.eclipse.xtext.xbase.XMemberFeatureCall; //导入依赖的package包/类
@Test public void testTypeParamInference_04() throws Exception {
	XBlockExpression block = (XBlockExpression) expression("{ var Integer i = new testdata.ClosureClient().invoke1([e|null],'foo') }");
	XVariableDeclaration var = (XVariableDeclaration) block.getExpressions().get(0);
	XMemberFeatureCall fc = (XMemberFeatureCall) var.getRight();
	final XExpression closure = fc.getMemberCallArguments().get(0);
	assertExpected(Functions.class.getCanonicalName()+"$Function1<java.lang.String, java.lang.Integer>", closure);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:8,代码来源:XbaseExpectedTypeProviderTest.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java AbstractStringLayout类代码示例发布时间:2022-05-22
下一篇:
Java RetryType类代码示例发布时间: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