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

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

Introduction

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

Prototype

public NaturalOrderStringComparator(boolean ascending, boolean caseSensitive) 

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  ww  . j a v  a  2 s .  com

    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);
}