@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		
		if (obj == null) {
			return false;
		}
		
		if (getClass() != obj.getClass()) {
			return false;
		}
		
		CogaenId other = (CogaenId) obj;
		if (code != other.code) {
			return false;
		}
		
		if (generated != other.generated) {
			return false;
		}
		
		assert(equalId(other));
		
		return true;
	}