@Override
  public int compare(Viewer viewer, Object e1, Object e2) {
    NumericStringComparator numComp = new NumericStringComparator();
    if (e1 instanceof Massnahme && e2 instanceof Massnahme) {
      // sort chapters correctly by converting 2.45, 2.221, 3.42
      // to 2045, 2221, 3024

      //            return (Integer.valueOf(((Massnahme)
      // e1).getKapitelValue()).compareTo(((Massnahme) e2).getKapitelValue()));
      return numComp.compare(((Massnahme) e1).getId(), ((Massnahme) e2).getId());
    }

    if (e1 instanceof MassnahmenUmsetzung && e2 instanceof MassnahmenUmsetzung) {
      // sort chapters correctly by converting 2.45, 2.221, 3.42
      // to 2045, 2221, 3024
      return numComp.compare(
          ((MassnahmenUmsetzung) e1).getEntity().getSimpleValue(MassnahmenUmsetzung.P_KAPITEL),
          ((MassnahmenUmsetzung) e2).getEntity().getSimpleValue(MassnahmenUmsetzung.P_KAPITEL));
    }

    // else, consider elements as equal:
    return 0;
  }
 private int compareNullSafe(String login2) {
   return NSC.compare(this.getUser().toLowerCase(), login2.toLowerCase());
 }