{
    boolean result = true;
    List<String> names = new ArrayList<String>();
    EList<ETypeParameter> eTypeParameters = eClassifier.getETypeParameters();
    for (ETypeParameter eTypeParameter : eTypeParameters)
    {
      String name = eTypeParameter.getName();
      if (name != null)
      {
        int index = names.indexOf(name);
        if (index != -1)
        {
          if (diagnostics == null)
          {
            return false;
          }
          else
          {
            result = false;
            ETypeParameter otherETypeParameter = eTypeParameters.get(index);
            diagnostics.add
              (createDiagnostic
                (Diagnostic.ERROR,
                 DIAGNOSTIC_SOURCE,
                 UNIQUE_TYPE_PARAMETER_NAMES,
                 "_UI_UniqueTypeParameterNames_diagnostic", 
                 new Object[] { name },
                 new Object[] { eClassifier, eTypeParameter, otherETypeParameter },
                 context));
          }
        }
      }
      names.add(name);
    }
    return result;
  }