| 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+"'"))+"]"; |
| } |
| } |