ValueReference valueReference = pathExpressionHead.getDst(); resultList.addAll(getUnnamedVariablesFromValueReference(valueReference, true));
private void gatherPathExpression(PathExpressionConstraint pathExpression, PatternModelAcceptor<?> acceptor) throws SpecificationBuilderException { PathExpressionHead head = pathExpression.getHead(); VariableReference src = head.getSrc(); ValueReference dst = head.getDst(); if (src == null || dst == null) { return;
final ValueReference valueReference = pathExpressionHead.getDst(); if (valueReference instanceof VariableValue) { final VariableReference secondVariableReference = ((VariableValue) valueReference).getValue();
/** * This validator checks if the literal or computational values match the path expression's type. * * @param pathExpressionConstraint */ @Check public void checkForWrongLiteralAndComputationValuesInPathExpressionConstraints( PathExpressionConstraint pathExpressionConstraint) { // Normal attribute-reference constraint PathExpressionHead pathExpressionHead = pathExpressionConstraint.getHead(); ValueReference valueReference = pathExpressionHead.getDst(); if (valueReference instanceof LiteralValueReference || valueReference instanceof ComputationValue) { EClassifier inputClassifier = emfTypeProvider .getClassifierForLiteralComputationEnumValueReference(valueReference); EClassifier typeClassifier = emfTypeProvider.getClassifierForType(emfTypeProvider .getTypeFromPathExpressionTail(pathExpressionHead.getTail())); if (!isCompatibleClassifiers(typeClassifier, inputClassifier)) { String name = typeClassifier == null ? "<unknown>" : typeClassifier.getInstanceClassName(); error("The type inferred from the path expression (" + name + ") is different from the input literal/computational value (" + inputClassifier.getInstanceClassName() + ").", pathExpressionConstraint, null, EMFIssueCodes.LITERAL_OR_COMPUTATION_TYPE_MISMATCH_IN_PATH_EXPRESSION); } } }
ValueReference valueReference = pathExpressionHead.getDst(); Variable pathExpressionHeadSourceVariable = null; if (pathExpressionHead.getSrc() != null) { ValueReference valueReference = pathExpressionHead.getDst(); addPositiveVariablesFromValueReference(unnamedRunningVariables, justPositiveUnionFindForVariables, positiveVariables, valueReference);
/** * Contexts: * PathExpressionHead returns PathExpressionHead * * Constraint: * (type=Type tail=PathExpressionTail src=VariableReference dst=ValueReference) */ protected void sequence_PathExpressionHead(ISerializationContext context, PathExpressionHead semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_ELEMENT__TYPE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_ELEMENT__TYPE)); if (transientValues.isValueTransient(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_ELEMENT__TAIL) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_ELEMENT__TAIL)); if (transientValues.isValueTransient(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_HEAD__SRC) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_HEAD__SRC)); if (transientValues.isValueTransient(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_HEAD__DST) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, PatternLanguagePackage.Literals.PATH_EXPRESSION_HEAD__DST)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getPathExpressionHeadAccess().getTypeTypeParserRuleCall_1_0(), semanticObject.getType()); feeder.accept(grammarAccess.getPathExpressionHeadAccess().getTailPathExpressionTailParserRuleCall_3_0(), semanticObject.getTail()); feeder.accept(grammarAccess.getPathExpressionHeadAccess().getSrcVariableReferenceParserRuleCall_5_0(), semanticObject.getSrc()); feeder.accept(grammarAccess.getPathExpressionHeadAccess().getDstValueReferenceParserRuleCall_7_0(), semanticObject.getDst()); feeder.finish(); }