package polly.rx.core.orion.model; import java.util.Date; import de.skuzzle.polly.sdk.time.Time; import de.skuzzle.polly.tools.Check; import de.skuzzle.polly.tools.EqualsHelper; import de.skuzzle.polly.tools.Equatable; public class DefaultPortal implements Portal { private final DefaultSector sector; private final String ownerName; private final String ownerClan; private final PortalType type; private final Date date; public DefaultPortal(Sector sector, String ownerName, String ownerClan, PortalType type) { Check.objects(sector, ownerName, ownerClan, type).notNull(); this.sector = new DefaultSector(sector); this.ownerName = ownerName; this.ownerClan = ownerClan; this.type = type; this.date = Time.currentTime(); } public DefaultPortal(Portal p) { this(new DefaultSector(p.getSector()), p.getOwnerName(), p.getOwnerClan(), p.getType()); } @Override public String toString() { return OrionObjectUtil.portalString(this); } @Override public int hashCode() { return OrionObjectUtil.portalHash(this); } @Override public final boolean equals(Object obj) { return EqualsHelper.testEquality(this, obj); } @Override public Class<?> getEquivalenceClass() { return Portal.class; } @Override public boolean actualEquals(Equatable o) { return OrionObjectUtil.portalsEqual(this, (Portal) o); } @Override public Sector getSector() { return this.sector; } @Override public String getOwnerName() { return this.ownerName; } @Override public String getOwnerClan() { return this.ownerClan; } @Override public PortalType getType() { return this.type; } @Override public Date getDate() { return this.date; } }