com.fasterxml.jackson.databind.jsontype.NamedType Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jackson-databind Show documentation
Show all versions of jackson-databind Show documentation
General data-binding functionality for Jackson: works on core streaming API
package com.fasterxml.jackson.databind.jsontype;
/**
* Simple container class for types with optional logical name, used
* as external identifier
*/
public final class NamedType implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
protected final Class _class;
protected final int _hashCode;
protected String _name;
public NamedType(Class c) { this(c, null); }
public NamedType(Class c, String name) {
_class = c;
_hashCode = c.getName().hashCode();
setName(name);
}
public Class getType() { return _class; }
public String getName() { return _name; }
public void setName(String name) { _name = (name == null || name.length() == 0) ? null : name; }
public boolean hasName() { return _name != null; }
/**
* Equality is defined based on class only, not on name
*/
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (o == null) return false;
if (o.getClass() != getClass()) return false;
return _class == ((NamedType) o)._class;
}
@Override
public int hashCode() { return _hashCode; }
@Override
public String toString() {
return "[NamedType, class "+_class.getName()+", name: "+(_name == null ? "null" :("'"+_name+"'"))+"]";
}
}