public String getPrintString(IAdaptable element, int flags) {
    if (element instanceof EObjectAdapter) {
      final TemplateParameter templateParam =
          ((TemplateParameter) ((EObjectAdapter) element).getRealObject());
      if (templateParam.getOwnedParameteredElement() == null) {
        return "<UNDEFINED>";
      }
      String out = "";
      if (templateParam.getOwnedParameteredElement() instanceof Classifier) {
        Classifier namedElement = (Classifier) templateParam.getOwnedParameteredElement();
        out = out + namedElement.getName() + ": " + namedElement.eClass().getName();
      }
      if (templateParam instanceof ClassifierTemplateParameter) {
        if (!((ClassifierTemplateParameter) templateParam).getConstrainingClassifiers().isEmpty()) {
          out = out + ">";
          for (int i = 0;
              i < ((ClassifierTemplateParameter) templateParam).getConstrainingClassifiers().size();
              i++) {
            out =
                out
                    + ((ClassifierTemplateParameter) templateParam)
                        .getConstrainingClassifiers()
                        .get(i)
                        .getName();
            if (i
                < ((ClassifierTemplateParameter) templateParam).getConstrainingClassifiers().size()
                    - 1) {
              out = out + ", ";
            }
          }
        }
      }
      return out;
    }

    return "<UNDEFINED>";
  }