package org.neodatis.odb.core.oid;

import org.neodatis.odb.ODBRuntimeException;
import org.neodatis.odb.OID;
import org.neodatis.odb.OIDTypes;
import org.neodatis.odb.OdbConfiguration;
import org.neodatis.odb.core.NeoDatisError;
import org.neodatis.odb.impl.core.oid.ExternalClassOID;
import org.neodatis.odb.impl.core.oid.ExternalObjectOID;
import org.neodatis.odb.impl.core.oid.OdbClassOID;
import org.neodatis.odb.impl.core.oid.OdbObjectOID;
import org.neodatis.tool.wrappers.OdbString;

public class OIDFactory {
	
	public static OID buildObjectOID(long oid){
		return OdbConfiguration.getCoreProvider().getObjectOID(oid, 0); 
	}

	public static OID buildClassOID(long oid) {
		return OdbConfiguration.getCoreProvider().getClassOID(oid); 
	}
	
	public static OID oidFromString(String oidString){
		String [] tokens = OdbString.split(oidString,":");
		
		if(tokens[0].equals(OIDTypes.TYPE_NAME_OBJECT_OID)){
			return OdbObjectOID.oidFromString(oidString);
		}
		if(tokens[0].equals(OIDTypes.TYPE_NAME_CLASS_OID)){
			return OdbClassOID.oidFromString(oidString);
		}
		if(tokens[0].equals(OIDTypes.TYPE_NAME_EXTERNAL_OBJECT_OID)){
			return ExternalObjectOID.oidFromString(oidString);
		}
		if(tokens[0].equals(OIDTypes.TYPE_NAME_EXTERNAL_CLASS_OID)){
			return ExternalClassOID.oidFromString(oidString);
		}
		throw new ODBRuntimeException(NeoDatisError.INVALID_OID_REPRESENTATION.addParameter(oidString));
	}
}

 

Ads help maintain this website.