gpt4 book ai didi

org.eclipse.xtext.xbase.XExpression.eAllContents()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-22 14:55:05 24 4
gpt4 key购买 nike

本文整理了Java中org.eclipse.xtext.xbase.XExpression.eAllContents()方法的一些代码示例,展示了XExpression.eAllContents()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XExpression.eAllContents()方法的具体详情如下:
包路径:org.eclipse.xtext.xbase.XExpression
类名称:XExpression
方法名:eAllContents

XExpression.eAllContents介绍

暂无

代码示例

代码示例来源:origin: org.eclipse.viatra/org.eclipse.viatra.query.patternlanguage.emf

public static List<Variable> getUsedVariables(XExpression xExpression, Iterable<Variable> allVariables){
  if (xExpression == null) return Collections.emptyList();
  List<EObject> contents = Lists.newArrayList(xExpression.eAllContents());
  Stream<XFeatureCall> contentStream = contents.stream().filter(XFeatureCall.class::isInstance).map(XFeatureCall.class::cast);
  Stream<XFeatureCall> featuredCalls = (xExpression instanceof XFeatureCall) 
      ? Stream.concat(Stream.of((XFeatureCall)xExpression), contentStream)
      : contentStream;
  final Set<String> valNames = featuredCalls.map(XFeatureCall::getConcreteSyntaxFeatureName).collect(Collectors.toSet()); 
  Iterable<Variable> calledVariables = Iterables.filter(allVariables, var -> valNames.contains(var.getName()));
  return IterableExtensions.sortBy(calledVariables, Variable::getName);
}

代码示例来源:origin: org.eclipse.incquery/org.eclipse.incquery.patternlanguage

public static List<Variable> getUsedVariables(XExpression xExpression, Iterable<Variable> allVariables){
  List<EObject> contents = Lists.newArrayList(xExpression.eAllContents());
  Iterable<XFeatureCall> featuredCalls = Iterables.filter(contents, XFeatureCall.class);
  final Set<String> valNames = Sets.newHashSet(Iterables.transform(featuredCalls, new Function<XFeatureCall,String>() {
    @Override
    public String apply(final XFeatureCall call) {
     return call.getConcreteSyntaxFeatureName();
    }
   }));
  Iterable<Variable> calledVariables = Iterables.filter(allVariables, new Predicate<Variable>() {
    @Override
    public boolean apply(final Variable var) {
     return valNames.contains(var.getName());
    }
   });
  return IterableExtensions.sortBy(calledVariables, new Function1<Variable,String>() {
    public String apply(final Variable var) {
     return var.getName();
    }
   });
}

代码示例来源:origin: org.eclipse.viatra/org.eclipse.viatra.query.patternlanguage.emf

/**
 * Finds all pattern variables referenced from the given XExpression. </p>
 * <p>
 * <strong>Warning</strong> This method cannot be used in JvmModelInferrer,
 * as that is used to set up the list of available local variables.
 */
public static Set<Variable> getReferencedPatternVariablesOfXExpression(XExpression xExpression, IJvmModelAssociations associations) {
  Set<Variable> result = new HashSet<>();
  if (xExpression != null) {
    collectVariableFromExpression(xExpression, associations, result, xExpression);
    TreeIterator<EObject> eAllContents = xExpression.eAllContents();
    while (eAllContents.hasNext()) {
      EObject expression = eAllContents.next();
      collectVariableFromExpression(xExpression, associations, result, expression);
    }
  }
  return result;
}

代码示例来源:origin: org.eclipse.viatra/org.eclipse.viatra.query.patternlanguage.emf

private void checkForImpureJavaCallsInternal(XExpression xExpression) {
  Iterator<EObject> eAllContents = Iterators.concat(Iterators.singletonIterator(xExpression),
      xExpression.eAllContents());
  while (eAllContents.hasNext()) {
    EObject nextEObject = eAllContents.next();
    if (nextEObject instanceof XMemberFeatureCall) {
      XMemberFeatureCall xFeatureCall = (XMemberFeatureCall) nextEObject;
      JvmIdentifiableElement jvmIdentifiableElement = xFeatureCall.getFeature();
      if (jvmIdentifiableElement instanceof JvmOperation) {
        JvmOperation jvmOperation = (JvmOperation) jvmIdentifiableElement;
        if (!jvmOperation.eIsProxy() && !isPure(jvmOperation)) {
          warning("Impure method call " + jvmOperation.getQualifiedName(), xFeatureCall,
              XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE,
              IssueCodes.CHECK_WITH_IMPURE_JAVA_CALLS);
        }
      }
    }
  }
}

代码示例来源:origin: org.eclipse.incquery/org.eclipse.incquery.patternlanguage

/**
 * Finds all pattern variables referenced from the given XExpression. </p>
 * <p>
 * <strong>Warning</strong> This method cannot be used in JvmModelInferrer,
 * as that is used to set up the list of available local variables.
 */
public static Set<Variable> getReferencedPatternVariablesOfXExpression(XExpression xExpression, IJvmModelAssociations associations) {
  Set<Variable> result = new HashSet<Variable>();
  if (xExpression != null) {
    TreeIterator<EObject> eAllContents = xExpression.eAllContents();
    while (eAllContents.hasNext()) {
      EObject expression = eAllContents.next();
      EList<EObject> eCrossReferences = expression.eCrossReferences();
      for (EObject eObject : eCrossReferences) {
        if (eObject instanceof JvmFormalParameter && !EcoreUtil.isAncestor(xExpression, eObject)) {
          for (EObject obj : associations.getSourceElements(eObject)) {
            if (obj instanceof Variable) {
            result.add((Variable) obj);
            }
          }
        }
      }
    }
  }
  return result;
}

代码示例来源:origin: org.eclipse.viatra/org.eclipse.viatra.query.patternlanguage.emf

public List<Variable> variables(final XExpression ex) {
 List<Variable> _xblockexpression = null;
 {
  final PatternBody body = EcoreUtil2.<PatternBody>getContainerOfType(ex, PatternBody.class);
  TreeIterator<EObject> _eAllContents = ex.eAllContents();
  Iterator<XExpression> _iterator = CollectionLiterals.<XExpression>newImmutableList(ex).iterator();
  final Function1<XFeatureCall, String> _function = (XFeatureCall it) -> {
   return it.getConcreteSyntaxFeatureName();
  };
  final List<String> valNames = IteratorExtensions.<String>toList(IteratorExtensions.<XFeatureCall, String>map(Iterators.<XFeatureCall>filter(Iterators.<EObject>concat(_eAllContents, _iterator), XFeatureCall.class), _function));
  final Function1<Variable, Boolean> _function_1 = (Variable it) -> {
   return Boolean.valueOf(valNames.contains(it.getName()));
  };
  final Function1<Variable, String> _function_2 = (Variable it) -> {
   return it.getName();
  };
  _xblockexpression = IterableExtensions.<Variable, String>sortBy(IterableExtensions.<Variable>filter(body.getVariables(), _function_1), _function_2);
 }
 return _xblockexpression;
}

代码示例来源:origin: org.eclipse.incquery/org.eclipse.incquery.patternlanguage

private void checkForImpureJavaCallsInternal(XExpression xExpression, EStructuralFeature feature) {
  Set<String> elementsWithWarnings = new HashSet<String>();
  if (xExpression != null) {
    TreeIterator<EObject> eAllContents = xExpression.eAllContents();
    while (eAllContents.hasNext()) {
      EObject nextEObject = eAllContents.next();
      if (nextEObject instanceof XMemberFeatureCall) {
        XMemberFeatureCall xFeatureCall = (XMemberFeatureCall) nextEObject;
        JvmIdentifiableElement jvmIdentifiableElement = xFeatureCall.getFeature();
        if (jvmIdentifiableElement instanceof JvmOperation) {
          JvmOperation jvmOperation = (JvmOperation) jvmIdentifiableElement;
          if (!PurityChecker.isPure(jvmOperation) && !jvmOperation.eIsProxy()) {
            elementsWithWarnings.add(jvmOperation.getQualifiedName());
          }
        }
      }
    }
  }
  if (!elementsWithWarnings.isEmpty()) {
    warning("There is at least one potentially problematic java call in the check()/eval() expression. Custom java calls "
        + "are considered unsafe in IncQuery unless they are annotated with @"
        + Pure.class.getSimpleName()
        + " or registered with the "
        + PureWhitelistExtensionLoader.EXTENSION_ID
        + " extension point. The possible erroneous calls are the following: " + elementsWithWarnings + ".",
        xExpression.eContainer(), feature, IssueCodes.CHECK_WITH_IMPURE_JAVA_CALLS);
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

protected boolean isImplicitReturn(ITypeComputationResult expressionResult) {
    int flags = expressionResult.getConformanceFlags();
    if ((ConformanceFlags.NO_IMPLICIT_RETURN & flags) != 0) {
      return false;
    }
    XExpression expression = expressionResult.getExpression();
    if (expression == null) {
      return true;
    }
    if (expression.eClass() == XbasePackage.Literals.XRETURN_EXPRESSION) {
      return false;
    }
    TreeIterator<EObject> contents = expression.eAllContents();
    while (contents.hasNext()) {
      EObject next = contents.next();
      if (next.eClass() == XbasePackage.Literals.XRETURN_EXPRESSION) {
        return false;
      }
      if (next.eClass() == XbasePackage.Literals.XCLOSURE) {
        contents.prune();
      }
    }
    return true;
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

protected boolean hasConstructorCallWithThis(JvmConstructor constr) {
  XExpression associatedExpression = logicalContainerProvider.getAssociatedExpression(constr);
  if (associatedExpression == null) {
    return false;
  }
  TreeIterator<EObject> contents = associatedExpression.eAllContents();
  while (contents.hasNext()) {
    EObject next = contents.next();
    if (next instanceof XFeatureCall) {
      XFeatureCall featureCall = (XFeatureCall) next;
      if (featureCall.getFeature() instanceof JvmConstructor && featureCall.getConcreteSyntaxFeatureName().equals(IFeatureNames.THIS.toString())) {
        return true;
      }
    }
  }
  return false;
}

代码示例来源:origin: org.eclipse.incquery/org.eclipse.incquery.patternlanguage.emf

TreeIterator<EObject> _eAllContents = ex.eAllContents();
List<XExpression> _newImmutableList = CollectionLiterals.<XExpression>newImmutableList(ex);
Iterator<XExpression> _iterator = _newImmutableList.iterator();

代码示例来源:origin: io.sarl.lang/io.sarl.lang

iter = Iterators.singletonIterator((XFeatureCall) defaultValue);
} else {
  iter = Iterators.filter(defaultValue.eAllContents(), XFeatureCall.class);

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com