package com.fasterxml.jackson.databind.jsontype;

Simple container class for types with optional logical name, used as external identifier
/** * 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
/** * 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+"'"))+"]"; } }