@Override public int compareTo(final MenuEntry o) { final int orderNumber = menuItemDef != null ? menuItemDef.getOrderNumber() : 10000; final int otherOrderNumber = o.menuItemDef != null ? o.menuItemDef.getOrderNumber() : 10000; if (orderNumber < otherOrderNumber) { return -1; } else if (orderNumber > otherOrderNumber) { return 1; } final String name = menuItemDef != null ? menuItemDef.getI18nKey() : getName(); final String otherName = o.menuItemDef != null ? o.menuItemDef.getI18nKey() : o.getName(); return name.compareTo(otherName); }