// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.tagging.ac; /** * Represents an entry in the list of auto completion values. * * An AutoCompletionListItem has a <em>priority</em> and a <em>value</em>. * * The priority helps to sort the auto completion items according to their importance. For instance, * in an auto completion list for tag names, standard tag names would be assigned a higher * priority than arbitrary tag names present in the current data set. There are three priority levels, * {@see AutoCompletionItemPritority}. * * The value is a string which will be displayed in the auto completion list. * */ public class AutoCompletionListItem implements Comparable<AutoCompletionListItem>{ /** the pritority of this item */ private AutoCompletionItemPritority priority; /** the value of this item */ private String value; /** * constructor */ public AutoCompletionListItem() { value = ""; priority = AutoCompletionItemPritority.UNKNOWN; } public AutoCompletionListItem(String value, AutoCompletionItemPritority priority) { this.value = value; this.priority = priority; } /** * * @return the priority */ public AutoCompletionItemPritority getPriority() { return priority; } /** * sets the priority * @param priority the priority */ public void setPriority(AutoCompletionItemPritority priority) { this.priority = priority; } /** * * @return the value */ public String getValue() { return value; } /** * sets the value * @param value the value; must not be null * @exception IllegalArgumentException thrown, if value if null */ public void setValue(String value) { if (value == null) throw new IllegalArgumentException("argument 'value' must not be null"); this.value = value; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("<AutoCompletionItemPritority: "); sb.append("value='"); sb.append(value); sb.append("',"); sb.append("priority='"); sb.append(priority.toString()); sb.append("'>"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((priority == null) ? 0 : priority.hashCode()); result = prime * result + ((value == null) ? 0 : value.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final AutoCompletionListItem other = (AutoCompletionListItem)obj; if (priority == null) { if (other.priority != null) return false; } else if (!priority.equals(other.priority)) return false; if (value == null) { if (other.value != null) return false; } else if (!value.equals(other.value)) return false; return true; } public int compareTo(AutoCompletionListItem other) { int ret = this.priority.compareTo(other.priority); if (ret != 0) return ret; else return this.value.compareTo(other.value); } }