/* * NameValue.java * * Created on April 16, 2001, 12:22 PM */ package com.limegroup.gnutella.util; import java.util.Map; /** * Holds a name value pair. The name is an instance of String, the value can * be any object. * @author asingla */ public class NameValue implements Map.Entry { private final String _name; private Object _value; /** * Creates a new NameValue with a null value. */ public NameValue(String name) { this(name, null); } /** Creates new NameValue */ public NameValue(String name, Object value) { this._name = name; this._value = value; } public String getName() { return _name; } public Object getKey() { return _name; } public Object getValue() { return _value; } public Object setValue(Object value) { Object old = _value; this._value = value; return old; } public String toString() { return "name = " + _name + " value = " + _value; } public static class ComparableByName extends NameValue implements Comparable { public ComparableByName(String name) { super(name); } public ComparableByName(String name, Object value) { super(name, value); } public int compareTo(Object other) { ComparableByName b = (ComparableByName)other; if(other == null) return 1; String nameB = b.getName(); String name = getName(); if(name == null && nameB == null) return 0; else if(name == null) return -1; else if(nameB == null) return 1; else return name.compareTo(nameB); } } }