Mercurial > hg > openmind
diff src/main/java/cl/maps/quad/QuadKey.java @ 59:6e08ff123ae6
check in complete source of cl.maps.
| author | casties |
|---|---|
| date | Wed, 14 Dec 2016 15:49:40 +0100 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/cl/maps/quad/QuadKey.java Wed Dec 14 15:49:40 2016 +0100 @@ -0,0 +1,135 @@ +package cl.maps.quad; + +public class QuadKey<A, B, C, D> { + private A aKey; + private B bKey; + private C cKey; + private D ownKey; + + public QuadKey(A aKey, B bKey, C cKey, D ownKey){ + this.aKey = aKey; + this.bKey = bKey; + this.cKey = cKey; + this.ownKey = ownKey; + } + + /* + public boolean containsKey(Object key){ + if(key != null){ + if(key.equals(aKey) || key.equals(bKey) || key.equals(ownKey)){ + return true; + } + } + return false; + }*/ + + + public boolean equalsAKey(Object key){ + if(aKey != null && key != null){ + return aKey.equals(key); + }else if(aKey == null && key == null){ + return true; + } + return false; + } + + public boolean equalsBKey(Object key){ + if(bKey != null && key != null){ + return bKey.equals(key); + }else if(bKey == null && key == null){ + return true; + } + return false; + } + + public boolean equalsCKey(Object key){ + if(cKey != null && key != null){ + return cKey.equals(key); + }else if(cKey == null && key == null){ + return true; + } + return false; + } + + public boolean equalsOwnKey(Object key){ + if(ownKey != null && key != null){ + return ownKey.equals(key); + }else if(ownKey == null && key == null){ + return true; + } + return false; + } + + public A getAKey() { + return aKey; + } + + public void setAKey(A aKey) { + this.aKey = aKey; + } + + public B getBKey() { + return bKey; + } + + public void setBKey(B bKey) { + this.bKey = bKey; + } + + public D getOwnKey() { + return ownKey; + } + + public void setOwnKey(D ownKey) { + this.ownKey = ownKey; + } + + public C getCKey() { + return cKey; + } + + public void setCKey(C cKey) { + this.cKey = cKey; + } + + @Override + public boolean equals(Object o){ + if(o instanceof QuadKey){ + try { + QuadKey<A, B, C, D> other = (QuadKey<A, B, C, D>)o; + + if(this.equalsOwnKey(other.getOwnKey()) && + this.equalsAKey(other.getAKey()) && + this.equalsBKey(other.getBKey()) && + this.equalsCKey(other.getCKey())){ + return true; + } + } catch (Exception e) {} + } + return false; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((aKey == null) ? 0 : aKey.hashCode()); + result = prime * result + ((bKey == null) ? 0 : bKey.hashCode()); + result = prime * result + ((cKey == null) ? 0 : cKey.hashCode()); + result = prime * result + ((ownKey == null) ? 0 : ownKey.hashCode()); + + return result; + } + + @Override + public String toString() { + if (aKey == null || bKey == null || cKey == null || ownKey == null) { + return super.toString(); + } + return "QuadKey [" + + aKey.toString() + ", " + + bKey.toString() + ", " + + cKey.toString() + ", " + + ownKey.toString() + "]"; + } +}
