@Override public int compareTo(StreamName streamName) { if (streamName == null) { return -1; } Area area = getArea(kind); Area otherArea = streamName.getArea(streamName.kind); if (area != otherArea) { return -area.compareTo(otherArea); } if (column != streamName.column) { return column < streamName.column ? -1 : 1; } return kind.compareTo(streamName.kind); }