package com.fasterxml.jackson.databind.jsontype;
import java.util.Objects;
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() + ((name == null) ? 0 : name.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; }
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (o == null) return false;
if (o.getClass() != getClass()) return false;
NamedType other = (NamedType)o;
return (_class == other._class)
&& Objects.equals(_name, other._name);
}
@Override
public int hashCode() { return _hashCode; }
@Override
public String toString() {
return "[NamedType, class "+_class.getName()+", name: "
+(_name == null ? "null" :("'"+_name+"'"))+"]";
}
}