Mercurial > hg > LGServices
diff src/main/java/cl/maps/duplex/DuplexKey.java @ 2:57d19e93f1c3
adding mapping classes
author | "jurzua <jurzua@mpiwg-berlin.mpg.de>" |
---|---|
date | Fri, 08 May 2015 16:36:25 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/cl/maps/duplex/DuplexKey.java Fri May 08 16:36:25 2015 +0200 @@ -0,0 +1,81 @@ +package cl.maps.duplex; + + +public class DuplexKey<A, B> { + + private A aKey; + private B ownKey; + + public DuplexKey(A aKey, B ownKey){ + this.aKey = aKey; + this.ownKey = ownKey; + } + + public boolean equalsAKey(A key){ + if(aKey != null && key != null){ + return aKey.equals(key); + }else if(aKey == null && key == null){ + return true; + } + return false; + } + + public boolean equalsOwnKey(B 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 getOwnKey() { + return ownKey; + } + + public void setOwnKey(B ownKey) { + this.ownKey = ownKey; + } + + @Override + public boolean equals(Object o){ + if(o instanceof DuplexKey){ + try { + DuplexKey<A, B> other = (DuplexKey<A, B>)o; + + if(this.equalsOwnKey(other.getOwnKey()) && + this.equalsAKey(other.getAKey())){ + 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 + ((ownKey == null) ? 0 : ownKey.hashCode()); + + return result; + } + + @Override + public String toString() { + if (aKey == null || ownKey == null) { + return super.toString(); + } + return "DuplexKey [" + aKey.toString() + ", " + ownKey.toString() + "]"; + } +}