Named.java
package tools.jackson.core.util;
/**
* Simple tag interface used primarily to allow databind to pass entities with
* name without needing to expose more details of implementation.
*<p>
* NOTE: in Jackson 2.x, was part of `jackson-databind`: demoted here for 3.0.
*
* @since 3.0
*/
public interface Named {
public String getName();
public static Named fromString(String n) {
if (n == null) return null;
return new StringAsNamed(n);
}
public static class StringAsNamed
implements Named, java.io.Serializable
{
private static final long serialVersionUID = 1L;
protected final String _name;
public StringAsNamed(String n) { _name = n; }
@Override
public String getName() { return _name; }
@Override
public String toString() { return _name; }
@Override
public int hashCode() { return _name.hashCode(); }
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof StringAsNamed)) return false;
return _name.equals(((StringAsNamed) o)._name);
}
}
}