diff src/main/java/cl/maps/penta/PentaKey.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/penta/PentaKey.java	Wed Dec 14 15:49:40 2016 +0100
@@ -0,0 +1,146 @@
+package cl.maps.penta;
+
+
+public class PentaKey <A, B, C, D, E> {
+	private A aKey;
+	private B bKey;
+	private C cKey;
+	private D dKey;
+	private E ownKey;
+	
+	public PentaKey(A aKey, B bKey, C cKey, D dKey, E ownKey){
+		this.aKey = aKey;
+		this.bKey = bKey;
+		this.cKey = cKey;
+		this.dKey = dKey;
+		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 equalsBKey(B key){
+		if(bKey != null && key != null){
+			return bKey.equals(key);
+		}else if(bKey == null && key == null){
+			return true;
+		}
+		return false;
+	}
+	
+	public boolean equalsCKey(C key){
+		if(cKey != null && key != null){
+			return cKey.equals(key);
+		}else if(cKey == null && key == null){
+			return true;
+		}
+		return false;
+	}
+	
+	public boolean equalsDKey(D key){
+		if(dKey != null && key != null){
+			return dKey.equals(key);
+		}else if(dKey == null && key == null){
+			return true;
+		}
+		return false;
+	}
+	
+	public boolean equalsOwnKey(E 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 getDKey() {
+		return dKey;
+	}
+
+	public void setDKey(D dKey) {
+		this.dKey = dKey;
+	}
+	
+	public C getCKey() {
+		return cKey;
+	}
+
+	public void setCKey(C cKey) {
+		this.cKey = cKey;
+	}
+
+	public E getOwnKey() {
+		return ownKey;
+	}
+
+	public void setOwnKey(E ownKey) {
+		this.ownKey = ownKey;
+	}
+
+	@Override
+	public boolean equals(Object o){
+		if(o instanceof PentaKey){
+			try {
+				PentaKey<A, B, C, D, E> other = (PentaKey<A, B, C, D, E>)o;
+				
+				if(this.equalsDKey(other.getDKey()) &&
+						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 + ((dKey == null) ? 0 : dKey.hashCode());
+		result = prime * result + ((ownKey == null) ? 0 : ownKey.hashCode());
+		
+		return result;
+	}
+
+	@Override
+	public String toString() {
+		if (aKey == null || bKey == null || cKey == null || dKey == null || ownKey == null) {
+			return super.toString();
+		}
+		return "PentaKey [" + 
+			aKey.toString() + ", " + 
+			bKey.toString() + ", " +
+			cKey.toString() + ", " +
+			dKey.toString() + ", " +
+			ownKey.toString() + "]";
+	}	
+}