package games.strategy.engine.data;
import java.util.Objects;
import com.google.common.base.MoreObjects;
import games.strategy.debug.ClientLogger;
public class DefaultNamed extends GameDataComponent implements Named {
private static final long serialVersionUID = -5737716450699952621L;
private final String m_name;
/** Creates new DefaultNamed. */
public DefaultNamed(final String name, final GameData data) {
super(data);
if (name == null || name.length() == 0) {
throw new IllegalArgumentException("Name must not be null");
}
m_name = name;
}
@Override
public String getName() {
return m_name;
}
@Override
public boolean equals(final Object o) {
if (o == null || !(o instanceof Named)) {
return false;
}
final Named other = (Named) o;
return this.m_name.equals(other.getName());
}
@Override
public int hashCode() {
if (m_name == null) {
logSerializationWarning();
}
return Objects.hash(m_name);
}
private static void logSerializationWarning() {
ClientLogger.logQuietly("Warning: serialization de-serializatoin error, m_name in DefaultNamed.java is null.");
}
@Override
public String toString() {
if (m_name == null) {
logSerializationWarning();
}
return MoreObjects.toStringHelper(getClass()).add("name", m_name).toString();
}
}