package mil.nga.giat.geowave.adapter.vector.plugin.transaction; import java.io.IOException; import java.util.LinkedList; import java.util.UUID; public class MemoryTransactionsAllocator implements TransactionsAllocator { private final LinkedList<String> lockPaths = new LinkedList<String>(); public MemoryTransactionsAllocator() { super(); } public void close() throws InterruptedException {} @Override public void releaseTransaction( final String txID ) throws IOException { synchronized (lockPaths) { if (!lockPaths.contains(txID)) { lockPaths.add(txID); } } } @Override public String getTransaction() throws IOException { synchronized (lockPaths) { if (lockPaths.size() > 0) { return lockPaths.removeFirst(); } } return UUID.randomUUID().toString(); } }