package org.neodatis.odb.impl.core.oid;
import org.neodatis.odb.ODBRuntimeException;
import org.neodatis.odb.OID;
import org.neodatis.odb.OIDTypes;
import org.neodatis.odb.core.NeoDatisError;
import org.neodatis.odb.core.layers.layer2.meta.ODBType;
import org.neodatis.tool.wrappers.OdbString;
public class OdbClassOID implements OID {
protected long oid;
public OdbClassOID(long oid) {
this.oid = oid;
}
public String toString() {
return String.valueOf(oid);
}
public String oidToString() {
StringBuffer buffer = new StringBuffer(OIDTypes.TYPE_NAME_CLASS_OID).append(":").append(String.valueOf(oid));
return buffer.toString();
}
public static OdbClassOID oidFromString(String oidString){
String [] tokens = OdbString.split(oidString,":");
if(tokens.length!=2 ||!(tokens[0].equals(OIDTypes.TYPE_NAME_CLASS_OID))){
throw new ODBRuntimeException(NeoDatisError.INVALID_OID_REPRESENTATION.addParameter(oidString));
}
long oid = Long.parseLong(tokens[1]);
return new OdbClassOID(oid);
}
public long getObjectId() {
return oid;
}
public int compareTo(Object object) {
if (object == null || !(object instanceof OdbClassOID)) {
return -1000;
}
OID otherOid = (OID) object;
return (int) (oid - otherOid.getObjectId());
}
public boolean equals(Object object) {
boolean b = this == object || this.compareTo(object) == 0;
return b;
}
public int hashCode() {
// Copy of the Long hashcode algorithm
return (int) (oid ^ (oid >>> 32));
}
public long getClassId() {
return 0;
}
public int getType() {
return ODBType.CLASS_OID_ID;
}
}
Ads help maintain this website.