private String getPatternBodyName(PatternBody patternBody) { return (patternBody.getName() != null) ? patternBody.getName() : String.format("#%d", ((Pattern) patternBody.eContainer()).getBodies().indexOf(patternBody) + 1); }
EList<Variable> parameters = ((Pattern) body.eContainer()).getParameters(); for (Variable var : variables) { parameterMap.put(var.getName(), var);
@Override public QualifiedName getFullyQualifiedName(EObject obj) { if (obj instanceof Pattern) { Pattern pattern = (Pattern) obj; return nameConverter.toQualifiedName(CorePatternLanguageHelper.getFullyQualifiedName(pattern)); } else if (obj instanceof PatternBody) { PatternBody patternBody = (PatternBody) obj; Pattern pattern = (Pattern) patternBody.eContainer(); return getFullyQualifiedName(pattern).append(Integer.toString(pattern.getBodies().indexOf(patternBody))); } return super.getFullyQualifiedName(obj); }
@Check public void checkPatternBody(PatternBody body) { if (body.getConstraints().isEmpty()) { String bodyName = getName(body); if (bodyName == null) { Pattern pattern = ((Pattern) body.eContainer()); String patternName = pattern.getName(); error("A patternbody of " + patternName + " is empty", body, PatternLanguagePackage.Literals.PATTERN_BODY__CONSTRAINTS, IssueCodes.PATTERN_BODY_EMPTY); } else { error("The patternbody " + bodyName + " cannot be empty", body, PatternLanguagePackage.Literals.PATTERN_BODY__NAME, IssueCodes.PATTERN_BODY_EMPTY); } } }
} else { EClassifier explicitType = emfTypeProvider.getExplicitClassifierForPatternParameterVariable(variable); PatternModel patternModel = (PatternModel) patternBody.eContainer().eContainer(); if (explicitType != null && possibleClassifiers.contains(explicitType) && hasCommonSubType(patternModel, possibleClassifiers)) {