AttributeSorter sorter; if (function == null) { sorter = new AttributeSorter(field); } else if (Sorting.LOWERCASE.equals(function)) { sorter = new LowerCaseSorter(field);
@SuppressWarnings("rawtypes") private int compareValues(Object first, Object second, Sorting.AttributeSorter s) { if (first == null) { if (second == null) return 0; return -1; } else if (second == null) { return 1; } if (first.getClass().isInstance(second) && first instanceof Comparable) { // We now know: // second is of a type which is a subclass of first's type // They both implement Comparable return s.compare((Comparable)first, (Comparable)second); } else { return s.compare(first.toString(), second.toString()); } }
@Override public boolean equals(Object other) { if (!(other instanceof UcaSorter)) { return false; } return super.equals(other) && locale.equals(((UcaSorter)other).locale) && (strength == ((UcaSorter)other).strength); } public UcaSorter clone() {
f.getSorter().setName("[rank]"); } else if (names.containsKey(name)) { AttributesConfig.Attribute attrConfig = names.get(name);
sorter = new AttributeSorter(sortString.substring(funcAttrStart));
public int encode(ByteBuffer buffer) { int usedBytes = 0; byte[] nameBuffer; buffer.position(); byte space = '.'; for (FieldOrder fieldOrder : fieldOrders) { if (space == ' ') { buffer.put(space); usedBytes++; } if (fieldOrder.getSortOrder() == Order.ASCENDING) { buffer.put((byte) '+'); } else { buffer.put((byte) '-'); } usedBytes++; nameBuffer = Utf8.toBytes(fieldOrder.getSorter().toString()); buffer.put(nameBuffer); usedBytes += nameBuffer.length; // If this isn't the last element, append a separating space //if (i + 1 < sortSpec.size()) { space = ' '; } return usedBytes; }
@Override public int hashCode() { return 1 + 3*locale.hashCode() + 5*strength.hashCode() + 7*super.hashCode(); } @Override
@Override public int hashCode() { return 1 + 3*super.hashCode(); } @Override
@Override public boolean equals(Object other) { if (!(other instanceof LowerCaseSorter)) { return false; } return super.equals(other); } @SuppressWarnings({ "rawtypes", "unchecked" })
@Override public FieldOrder clone() { return new FieldOrder(fieldSorter.clone(), sortOrder); } }
public UcaSorter clone() { UcaSorter clone = (UcaSorter)super.clone(); if (locale != null) { clone.setLocale(locale, strength); } return clone; } @SuppressWarnings({ "rawtypes", "unchecked" })
@Override public String toString() { return sortOrder.toString() + ":" + fieldSorter.toString(); }
/** * Returns the name of this attribute */ public String getFieldName() { return fieldSorter.getName(); }
@Override public boolean equals(Object other) { if (!(other instanceof RawSorter)) { return false; } return super.equals(other); } }
@Override public int hashCode() { return sortOrder.hashCode() + 17 * fieldSorter.hashCode(); } @Override
@Override public boolean equals(Object other) { if (!(other instanceof FieldOrder)) { return false; } FieldOrder otherAttr = (FieldOrder) other; return otherAttr.sortOrder.equals(sortOrder) && otherAttr.fieldSorter.equals(fieldSorter); } @Override