package com.revolsys.geometry.cs; import java.io.Serializable; import com.revolsys.util.Equals; public class Datum implements Serializable { /** * */ private static final long serialVersionUID = 4603557237435332398L; private final Authority authority; private boolean deprecated; private final String name; private PrimeMeridian primeMeridian; private final Spheroid spheroid; private ToWgs84 toWgs84; public Datum(final String name, final Spheroid spheroid, final Authority authority) { this.name = name; this.spheroid = spheroid; this.authority = authority; } public Datum(final String name, final Spheroid spheroid, final PrimeMeridian primeMeridian, final Authority authority, final boolean deprecated) { this.name = name; this.spheroid = spheroid; this.primeMeridian = primeMeridian; this.authority = authority; this.deprecated = deprecated; } public Datum(final String name, final Spheroid spheroid, final ToWgs84 toWgs84, final Authority authority) { this.name = name; this.spheroid = spheroid; this.toWgs84 = toWgs84; this.authority = authority; } @Override public boolean equals(final Object object) { if (object instanceof Datum) { final Datum datum = (Datum)object; if (Equals.equals(this.authority, datum.authority)) { return true; } else if (this.name == null) { if (datum.name != null) { return false; } // } else if (!name.equalsIgnoreCase(datum.name)) { // return false; } else if (this.spheroid.equals(datum.spheroid)) { return false; } else { return true; } } return false; } public boolean equalsExact(final Datum datum) { if (!Equals.equals(this.authority, datum.authority)) { return false; } else if (this.deprecated != datum.deprecated) { return false; } else if (!Equals.equals(this.name, datum.name)) { return false; } else if (!this.primeMeridian.equalsExact(this.primeMeridian)) { return false; } else if (!this.spheroid.equalsExact(datum.spheroid)) { return false; } else { return true; } } public Authority getAuthority() { return this.authority; } public String getName() { return this.name; } public PrimeMeridian getPrimeMeridian() { return this.primeMeridian; } public Spheroid getSpheroid() { return this.spheroid; } public ToWgs84 getToWgs84() { return this.toWgs84; } @Override public int hashCode() { if (this.spheroid != null) { return this.spheroid.hashCode(); } else { return 1; } } public boolean isDeprecated() { return this.deprecated; } @Override public String toString() { return this.name; } }