public int compare()

in aws-datastore/src/main/java/com/amplifyframework/datastore/storage/sqlite/ModelComparator.java [81:180]


    public int compare(T modelLeft, T modelRight) {
        if (sortBy != null && sortBy.getModelName() != null) {
            Method method = getMethod();
            if (method != null) {
                Object valueLeft = getValue(method, modelLeft);
                Object valueRight = getValue(method, modelRight);
                if (valueLeft == null) {
                    return -1;
                } else if (valueRight == null) {
                    return 1;
                }
                if (method.getReturnType() == String.class) {
                    String valueModel1 = (String) valueLeft;
                    String valueModel2 = (String) valueRight;
                    return valueModel1.compareTo(valueModel2);
                }
                if (method.getReturnType() == int.class) {
                    int valueModel1 = (int) valueLeft;
                    int valueModel2 = (int) valueRight;
                    return Integer.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Integer.class) {
                    Integer valueModel1 = (Integer) valueLeft;
                    Integer valueModel2 = (Integer) valueRight;
                    return Integer.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == boolean.class) {
                    boolean valueModel1 = (boolean) valueLeft;
                    boolean valueModel2 = (boolean) valueRight;
                    return Boolean.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Boolean.class) {
                    Boolean valueModel1 = (Boolean) valueLeft;
                    Boolean valueModel2 = (Boolean) valueRight;
                    return Boolean.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == long.class) {
                    long valueModel1 = (long) valueLeft;
                    long valueModel2 = (long) valueRight;
                    return Long.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == double.class) {
                    double valueModel1 = (double) valueLeft;
                    double valueModel2 = (double) valueRight;
                    return Double.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Double.class) {
                    Double valueModel1 = (Double) valueLeft;
                    Double valueModel2 = (Double) valueRight;
                    return Double.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Date.class) {
                    Date valueModel1 = (Date) valueLeft;
                    Date valueModel2 = (Date) valueRight;
                    return valueModel1.compareTo(valueModel2);
                }
                if (method.getReturnType() == float.class) {
                    float valueModel1 = (float) valueLeft;
                    float valueModel2 = (float) valueRight;
                    return Float.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Float.class) {
                    Float valueModel1 = (Float) valueLeft;
                    Float valueModel2 = (Float) valueRight;
                    return Float.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == char.class) {
                    char valueModel1 = (char) valueLeft;
                    char valueModel2 = (char) valueRight;
                    return Character.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Character.class) {
                    Character valueModel1 = (Character) valueLeft;
                    Character valueModel2 = (Character) valueRight;
                    return Character.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == byte.class) {
                    byte valueModel1 = (byte) valueLeft;
                    byte valueModel2 = (byte) valueRight;
                    return Byte.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Byte.class) {
                    Byte valueModel1 = (Byte) valueLeft;
                    Byte valueModel2 = (Byte) valueRight;
                    return Byte.compare(valueModel1, valueModel2);
                }
                if (method.getReturnType() == Temporal.DateTime.class) {
                    Temporal.DateTime valueModel1 = (Temporal.DateTime) valueLeft;
                    Temporal.DateTime valueModel2 = (Temporal.DateTime) valueRight;
                    return valueModel1.compareTo(valueModel2);
                }
                if (method.getReturnType() == Temporal.Date.class) {
                    Temporal.DateTime valueModel1 = (Temporal.DateTime) valueLeft;
                    Temporal.DateTime valueModel2 = (Temporal.DateTime) valueRight;
                    return valueModel1.compareTo(valueModel2);
                }
            }
        }
        return -1;
    }