Example usage for com.liferay.portal.kernel.util NaturalOrderStringComparator compare

List of usage examples for com.liferay.portal.kernel.util NaturalOrderStringComparator compare

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util NaturalOrderStringComparator compare.

Prototype

@Override
    public int compare(String s1, String s2) 

Source Link

Usage

From source file:com.liferay.tools.sourceformatter.JavaTermComparator.java

License:Open Source License

protected int doCompare(JavaTerm javaTerm1, JavaTerm javaTerm2) {
    int type1 = javaTerm1.getType();
    int type2 = javaTerm2.getType();

    if (type1 != type2) {
        return type1 - type2;
    }//from   w w  w .ja  v  a  2  s  .co m

    String name1 = javaTerm1.getName();
    String name2 = javaTerm2.getName();

    if (javaTerm1.isVariable()) {
        if (StringUtil.isUpperCase(name1) && !StringUtil.isLowerCase(name1) && !StringUtil.isUpperCase(name2)) {

            return -1;
        }

        if (!StringUtil.isUpperCase(name1) && StringUtil.isUpperCase(name2) && !StringUtil.isLowerCase(name2)) {

            return 1;
        }
    }

    if (type1 == JavaTerm.TYPE_VARIABLE_PRIVATE_STATIC) {
        if (name2.equals("_log") || name2.equals("_logger")) {
            return 1;
        }

        if (name1.equals("_instance") || name1.equals("_log") || name1.equals("_logger")) {

            return -1;
        }

        if (name2.equals("_instance")) {
            return 1;
        }
    }

    if (name1.compareToIgnoreCase(name2) != 0) {
        NaturalOrderStringComparator naturalOrderStringComparator = new NaturalOrderStringComparator(true,
                false);

        return naturalOrderStringComparator.compare(name1, name2);
    }

    if (name1.compareTo(name2) != 0) {
        NaturalOrderStringComparator naturalOrderStringComparator = new NaturalOrderStringComparator(true,
                true);

        return -naturalOrderStringComparator.compare(name1, name2);
    }

    return compareParameterTypes(javaTerm1, javaTerm2);
}