package org.korsakow.ide.ui.components.snupool; import org.korsakow.ide.ui.components.pool.ContentEntry; public class KeywordEntry implements ContentEntry { private final String keyword; private boolean isInKeyword; private boolean isOutKeyword; public KeywordEntry(String keyword) { this(keyword, false, false); } public KeywordEntry(String keyword, boolean isIn, boolean isOut) { this.keyword = keyword; isInKeyword = isIn; isOutKeyword = isOut; } public String getKeyword() { return keyword; } public void setInKeyword(boolean isIn) { isInKeyword = isIn; } public boolean isInKeyword() { return isInKeyword; } public void setOutKeyword(boolean isOut) { isOutKeyword = isOut; } public boolean isOutKeyword() { return isOutKeyword; } /** * Used to sort. Ranks are: * 3: isInKeyword && isOutKeyword * 2: isInKeyword && !isOutKeyword * 1: !isInKeyword && isOutKeyword * 0: !isInKeyword && !isOutkeyword * @param entry * @return */ private static int getRank(KeywordEntry entry) { int rank = 0; if (entry.isInKeyword) rank += 2; if (entry.isOutKeyword) rank += 1; return rank; } public int compareTo(ContentEntry oo) { KeywordEntry o = (KeywordEntry)oo; int rank = getRank(this); int rank2 = getRank(o); if (rank == rank2) return keyword.compareTo(o.getKeyword()); return rank > rank2 ? -1 : 1; } }