view src/main/java/cl/maps/triple/TripleKey.java @ 127:3e772f7f43e0 default tip

ismi-date with long month names in xml dump.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Thu, 11 May 2023 18:15:45 +0200
parents 6e08ff123ae6
children
line wrap: on
line source

package cl.maps.triple;

/**
 * Unique ownKey. SrcKey and bKey not unique.
 * 
 * @author jurzua
 * 
 */
public class TripleKey<A, B, C> {

	private A aKey;
	private B bKey;
	private C ownKey;

	public TripleKey(A aKey, B label, C ownKey) {
		this.aKey = aKey;
		this.bKey = label;
		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 equalsOwnKey(C 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 C getOwnKey() {
		return ownKey;
	}

	public void setOwnKey(C ownKey) {
		this.ownKey = ownKey;
	}

	@Override
	public boolean equals(Object o) {
		if (o instanceof TripleKey) {
			try {
				TripleKey<A, B, C> other = (TripleKey<A, B, C>) o;

				if (this.equalsOwnKey(other.getOwnKey())
						&& this.equalsAKey(other.getAKey())
						&& this.equalsBKey(other.getBKey())) {
					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 + ((ownKey == null) ? 0 : ownKey.hashCode());
		
		return result;
	}

	@Override
	public String toString() {
		if (aKey == null || bKey == null || ownKey == null) {
			return super.toString();
		}
		return "TripleKey [" + aKey.toString() + ", " + bKey.toString() + ", "
				+ ownKey.toString() + "]";
	}

}