view 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 source

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() + "]";
	}
}