Package org.eclipse.jgit.lib
Class ObjectDatabase
java.lang.Object
org.eclipse.jgit.lib.ObjectDatabase
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
DfsObjDatabase,FileObjectDatabase
Abstraction of arbitrary object storage.
An object database stores one or more Git objects, indexed by their unique
ObjectId.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInitialize a new database instance for access. -
Method Summary
Modifier and TypeMethodDescriptionabstract voidclose()Close any resources held by this database.voidcreate()Initialize a new object database at this location.booleanexists()Does this database exist yet?abstract longGet a quick, rough count of objects in this repository.booleanhas(AnyObjectId objectId) Does the requested object exist in this database?Create a new cached database instance over this database.abstract ObjectInserterCreate a newObjectInserterto insert new objects.abstract ObjectReaderCreate a newObjectReaderto read existing objects.open(AnyObjectId objectId) Open an object from this database.open(AnyObjectId objectId, int typeHint) Open an object from this database.
-
Constructor Details
-
ObjectDatabase
protected ObjectDatabase()Initialize a new database instance for access.
-
-
Method Details
-
exists
public boolean exists()Does this database exist yet?- Returns:
- true if this database is already created; false if the caller
should invoke
create()to create this database location.
-
create
Initialize a new object database at this location.- Throws:
IOException- the database could not be created.
-
newInserter
Create a newObjectInserterto insert new objects.The returned inserter is not itself thread-safe, but multiple concurrent inserter instances created from the same
ObjectDatabasemust be thread-safe.- Returns:
- writer the caller can use to create objects in this database.
-
newReader
Create a newObjectReaderto read existing objects.The returned reader is not itself thread-safe, but multiple concurrent reader instances created from the same
ObjectDatabasemust be thread-safe.- Returns:
- reader the caller can use to load objects from this database.
-
close
public abstract void close()Close any resources held by this database.- Specified by:
closein interfaceAutoCloseable
-
has
Does the requested object exist in this database?This is a one-shot call interface which may be faster than allocating a
newReader()to perform the lookup.- Parameters:
objectId- identity of the object to test for existence of.- Returns:
- true if the specified object is stored in this database.
- Throws:
IOException- the object store cannot be accessed.
-
open
Open an object from this database.This is a one-shot call interface which may be faster than allocating a
newReader()to perform the lookup.- Parameters:
objectId- identity of the object to open.- Returns:
- a
ObjectLoaderfor accessing the object. - Throws:
MissingObjectException- the object does not exist.IOException- the object store cannot be accessed.
-
open
public ObjectLoader open(AnyObjectId objectId, int typeHint) throws MissingObjectException, IncorrectObjectTypeException, IOException Open an object from this database.This is a one-shot call interface which may be faster than allocating a
newReader()to perform the lookup.- Parameters:
objectId- identity of the object to open.typeHint- hint about the type of object being requested, e.g.Constants.OBJ_BLOB;ObjectReader.OBJ_ANYif the object type is not known, or does not matter to the caller.- Returns:
- a
ObjectLoaderfor accessing the object. - Throws:
MissingObjectException- the object does not exist.IncorrectObjectTypeException- typeHint was not OBJ_ANY, and the object's actual type does not match typeHint.IOException- the object store cannot be accessed.
-
newCachedDatabase
Create a new cached database instance over this database. This instance might optimize queries by caching some information about database. So some modifications done after instance creation might fail to be noticed.- Returns:
- new cached database instance
-
getApproximateObjectCount
public abstract long getApproximateObjectCount()Get a quick, rough count of objects in this repository. Ignores loose objects. Returns-1if an exception occurs.- Returns:
- quick, rough count of objects in this repository,
-1if an exception occurs - Since:
- 6.1
-