package org.hypergraphdb.storage; import java.util.Comparator; import org.hypergraphdb.HGConfiguration; import org.hypergraphdb.HGIndex; import org.hypergraphdb.HGPersistentHandle; import org.hypergraphdb.HGRandomAccessResult; import org.hypergraphdb.HGStore; import org.hypergraphdb.transaction.HGTransactionFactory; public interface HGStoreImplementation { Object getConfiguration(); void startup(HGStore store, HGConfiguration configuration); void shutdown(); HGTransactionFactory getTransactionFactory(); HGPersistentHandle store(HGPersistentHandle handle, HGPersistentHandle [] link); HGPersistentHandle [] getLink(HGPersistentHandle handle); void removeLink(HGPersistentHandle handle); boolean containsLink(HGPersistentHandle handle); HGPersistentHandle store(HGPersistentHandle handle, byte [] data); byte [] getData(HGPersistentHandle handle); void removeData(HGPersistentHandle handle); boolean containsData(HGPersistentHandle handle); HGRandomAccessResult<HGPersistentHandle> getIncidenceResultSet(HGPersistentHandle handle); void removeIncidenceSet(HGPersistentHandle handle); long getIncidenceSetCardinality(HGPersistentHandle handle); void addIncidenceLink(HGPersistentHandle handle, HGPersistentHandle newLink); void removeIncidenceLink(HGPersistentHandle handle, HGPersistentHandle oldLink); <KeyType, ValueType> HGIndex<KeyType, ValueType> getIndex(String name, ByteArrayConverter<KeyType> keyConverter, ByteArrayConverter<ValueType> valueConverter, Comparator<?> comparator, boolean isBidirectional, boolean createIfNecessary); void removeIndex(String name); }