package org.limewire.ui.swing.filter;
import org.limewire.ui.swing.util.I18n;
import org.limewire.util.Objects;
/**
* An item in the SourceFilter list.
*/
class SourceItem {
/** Source types. */
public static enum Type {
ANONYMOUS, ANY_FRIEND, FRIEND;
}
public static final SourceItem ANONYMOUS_SOURCE = new SourceItem(Type.ANONYMOUS, I18n.tr("P2P Users"));
public static final SourceItem ANY_FRIEND_SOURCE = new SourceItem(Type.ANY_FRIEND, I18n.tr("Any Friend"));
private final Type type;
private final String name;
/**
* Constructs a SourceItem with the specified type and name.
*/
public SourceItem(Type type, String name) {
this.type = type;
this.name = name;
}
/**
* Returns the display name.
*/
public String getName() {
return name;
}
/**
* Returns the source type.
*/
public Type getType() {
return type;
}
@Override
public String toString() {
return getName();
}
@Override
public boolean equals(Object obj) {
if(obj == this) {
return true;
}
if (obj instanceof SourceItem) {
SourceItem item2 = (SourceItem) obj;
if (type == item2.type) {
return (Objects.compareToNullIgnoreCase(name, item2.name, false) == 0);
}
}
return false;
}
@Override
public int hashCode() {
int result = 17;
result = 31 * result + type.hashCode();
result = 31 * result + ((name != null) ? name.hashCode() : 0);
return result;
}
}