/*
* 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;
/**
* <p>
* A <code>HGHandle</code> represents a reference to a hypergraph atom. {@link HyperGraph} references
* are completely managed by HyperGraphDB and should be treated by applications as abstract
* reference types.
* </p>
*
* <p>
* A handle holds the system-level identity of an atom. HyperGraphDB will return
* concrete implementations of this interface depending on configuration, context of usage
* and similar considerations. In other words, a handle is essentially a reference token. One can
* think of a handle as a memory location, or simply a unique identifier.
* </p>
*
* <p>
* Generally, handles are only valid during the run-time of a system. To obtain a permanent handle,
* one which transcends system startup and shutdown, the <code>HyperGraph.getPersistentHandle</code>
* method should be used. Persistent handles are generated by a {@link HGHandleFactory} configured
* when the database is open.
* </p>
*
* @author Borislav Iordanov
*/
public interface HGHandle
{
HGPersistentHandle getPersistent();
}