@Override
	public final int compare(final T lhs, final T rhs) {

		int c = compareDirectoryNames(lhs, rhs);

		if (c == EQUAL) {
			if (isSetupFile(lhs) || isTearDownFile(rhs)) {
				return LEFT_IS_SMALLER;
			} else if (isSetupFile(rhs) || isTearDownFile(lhs)) {
				return RIGHT_IS_SMALLER;
			} else {
				return compareFullnames(lhs, rhs);
			}
		} else if (c <= LEFT_IS_SMALLER) {
			return subCompare(lhs, rhs);
		} else {
			return -subCompare(rhs, lhs);
		}
	}
@Override
	public final int compare(final T lhs, final T rhs) {

		int c = compareDirectoryNames(lhs, rhs);

		if (c == EQUAL) {
			if (isSetupFile(lhs) || isTearDownFile(rhs)) {
				return LEFT_IS_SMALLER;
			} else if (isSetupFile(rhs) || isTearDownFile(lhs)) {
				return RIGHT_IS_SMALLER;
			} else {
				return compareFullnames(lhs, rhs);
			}
		} else if (c <= LEFT_IS_SMALLER) {
			return subCompare(lhs, rhs);
		} else {
			return -subCompare(rhs, lhs);
		}
	}
@ Override public final int compare ( final T lhs , final T rhs ) { int c = compareDirectoryNames ( lhs , rhs ) ; if ( c == EQUAL ) { if ( isSetupFile ( lhs ) || isTearDownFile ( rhs ) ) { return LEFT_IS_SMALLER ; } else if ( isSetupFile ( rhs ) || isTearDownFile ( lhs ) ) { return RIGHT_IS_SMALLER ; } else { return compareFullnames ( lhs , rhs ) ; } } else if ( c <= LEFT_IS_SMALLER ) { return subCompare ( lhs , rhs ) ; } else { return - subCompare ( rhs , lhs ) ; } }
Compare two <code>FileInformation</code> objects. See {@link FitFilenameComparator}
for more information.

@param lhs left hand side
@param rhs right hand side
@return &lt; 0 if <code>lhs</code> is greater, &gt; 0 if <code>rhr</code>
is greater, 0 if they are equal.
Compare two <code > FileInformation< / code > objects . See { @link FitFilenameComparator } for more information .