docs: @Override
  	public IssueSeverities getIssueSeverities(Map<Object, Object> context, EObject currentObject,
  			IssueSeverities predefinedSeverities) {
  		// Search for @SuppressWarnings annotations
  		final Set<String> codes = new HashSet<>();
  		XtendAnnotationTarget cObject = EcoreUtil2.getContainerOfType(currentObject, XtendAnnotationTarget.class);
  		boolean ignoreAll = false;
  		while (!ignoreAll && cObject != null) {
  			for (final XAnnotation annotation : cObject.getAnnotations()) {
  				if (SuppressWarnings.class.getName().equals(annotation.getAnnotationType().getIdentifier())) {
  					final XExpression expr = annotation.getValue();
  					if (expr instanceof XStringLiteral) {
  						final String id = ((XStringLiteral) expr).getValue();
  						if (ALL_WARNINGS.equalsIgnoreCase(id)) {
  							ignoreAll = true;
  							codes.clear();
  							break;
  						}
  						codes.add(extractId(id));
  					} else if (expr instanceof XCollectionLiteral) {
  						final XCollectionLiteral collection = (XCollectionLiteral) expr;
  						for (final XExpression idExpr : collection.getElements()) {
  							final String id;
  							if (idExpr instanceof XStringLiteral) {
  								id = ((XStringLiteral) idExpr).getValue();
  							} else {
  								id = null;
  							}
  							if (ALL_WARNINGS.equalsIgnoreCase(id)) {
  								ignoreAll = true;
  								codes.clear();
  								break;
  							}
  							codes.add(extractId(id));
  						}
  					}
  				}
  			}
  			cObject = EcoreUtil2.getContainerOfType(cObject.eContainer(), XtendAnnotationTarget.class);
  		}
  		if (!ignoreAll && codes.isEmpty()) {
  			return predefinedSeverities;
  		}
  		return new SuppressWarningIssueSeverities(predefinedSeverities, ignoreAll, codes);
  	}