class AbstractID implements IOReadableWritable, Comparable<AbstractID>, java.io.Serializable {

	@Override
	public int compareTo(AbstractID o) {
		int diff1 = (this.upperPart < o.upperPart) ? -1 : ((this.upperPart == o.upperPart) ? 0 : 1);
		int diff2 = (this.lowerPart < o.lowerPart) ? -1 : ((this.lowerPart == o.lowerPart) ? 0 : 1);
		return diff1 == 0 ? diff2 : diff1;
	}

	public  AbstractID(byte[] bytes);
	public  AbstractID(long lowerPart, long upperPart);
	public  AbstractID(AbstractID id);
	public  AbstractID();

}