view src/main/java/cl/maps/quad/QuadKey.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.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() + "]";
	}	
}