/*
* This file is part of the HyperGraphDB source distribution. This is copyrighted
* software. For permitted uses, licensing options and redistribution, please see
* the LicensingInformation file at the root level of the distribution.
*
* Copyright (c) 2005-2010 Kobrix Software, Inc. All rights reserved.
*/
package org.hypergraphdb.storage;
import java.util.HashMap;
import java.util.Map;
import org.hypergraphdb.HGHandleFactory;
import org.hypergraphdb.HGPersistentHandle;
public class BAtoHandle implements ByteArrayConverter<HGPersistentHandle>
{
private static final Map<HGHandleFactory, BAtoHandle> M =
new HashMap<HGHandleFactory, BAtoHandle>();
private HGHandleFactory handleFactory = null;
public synchronized static ByteArrayConverter<HGPersistentHandle> getInstance(HGHandleFactory handleFactory)
{
BAtoHandle instance = M.get(handleFactory);
if (instance == null)
{
instance = new BAtoHandle();
instance.handleFactory = handleFactory;
M.put(handleFactory, instance);
}
return instance;
}
public byte[] toByteArray(HGPersistentHandle object)
{
return object.toByteArray();
}
public HGPersistentHandle fromByteArray(byte[] byteArray, int offset, int length)
{
return handleFactory.makeHandle(byteArray, offset);
// return UUIDPersistentHandle.makeHandle(byteArray);
}
}