/FileExtraction/Java_unseen/Wind-Development_WindSpigot/WindSpigot-API/src/main/java/org/bukkit/help/HelpTopicComparator.java
package org.bukkit.help;

import java.util.Comparator;

/**
 * Used to impose a custom total ordering on help topics.
 * <p>
 * All topics are listed in alphabetic order, but topics that start with a slash
 * come after topics that don't.
 */
public class HelpTopicComparator implements Comparator<HelpTopic> {

	// Singleton implementations
	private static final TopicNameComparator tnc = new TopicNameComparator();

	public static TopicNameComparator topicNameComparatorInstance() {
		return tnc;
	}

	private static final HelpTopicComparator htc = new HelpTopicComparator();

	public static HelpTopicComparator helpTopicComparatorInstance() {
		return htc;
	}

	private HelpTopicComparator() {
	}

	public int compare(HelpTopic lhs, HelpTopic rhs) {
		return tnc.compare(lhs.getName(), rhs.getName());
	}

	public static class TopicNameComparator implements Comparator<String> {
		private TopicNameComparator() {
		}

		public int compare(String lhs, String rhs) {
			boolean lhsStartSlash = lhs.startsWith("/");
			boolean rhsStartSlash = rhs.startsWith("/");

			if (lhsStartSlash && !rhsStartSlash) {
				return 1;
			} else if (!lhsStartSlash && rhsStartSlash) {
				return -1;
			} else {
				return lhs.compareToIgnoreCase(rhs);
			}
		}
	}
}
