Package aQute.libg.cafs
Class CAFS
- java.lang.Object
-
- aQute.libg.cafs.CAFS
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.lang.Iterable<SHA1>
public class CAFS extends java.lang.Object implements java.io.Closeable, java.lang.Iterable<SHA1>
CAFS implements a SHA-1 based file store. The basic idea is that every file in the universe has a unique SHA-1. Hard to believe but people smarter than me have come to that conclusion. This class maintains a compressed store of SHA-1 identified files. So if you have the SHA-1, you can get the contents. This makes it easy to store a SHA-1 instead of the whole file or maintain a naming scheme. An added advantage is that it is always easy to verify you get the right stuff. The SHA-1 Content Addressable File Store is the core underlying idea in Git.
-
-
Constructor Summary
Constructors Constructor Description CAFS(java.io.File home, boolean create)Constructor for a Content Addressable File Store
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()booleanexists(byte[] sha1)booleanisEmpty()java.util.Iterator<SHA1>iterator()java.io.InputStreamread(SHA1 sha1)Read the contents of a sha 1 key.voidreindex()SHA1write(java.io.InputStream in)Store an input stream in the CAFS while calculating and returning the SHA-1 code.
-
-
-
Method Detail
-
write
public SHA1 write(java.io.InputStream in) throws java.lang.Exception
Store an input stream in the CAFS while calculating and returning the SHA-1 code.- Parameters:
in- The input stream to store.- Returns:
- The SHA-1 code.
- Throws:
java.lang.Exception- if anything goes wrong
-
read
public java.io.InputStream read(SHA1 sha1) throws java.lang.Exception
Read the contents of a sha 1 key.- Parameters:
sha1- The key- Returns:
- An Input Stream on the content or null of key not found
- Throws:
java.lang.Exception
-
exists
public boolean exists(byte[] sha1) throws java.lang.Exception- Throws:
java.lang.Exception
-
reindex
public void reindex() throws java.lang.Exception- Throws:
java.lang.Exception
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
iterator
public java.util.Iterator<SHA1> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<SHA1>
-
isEmpty
public boolean isEmpty() throws java.io.IOException- Throws:
java.io.IOException
-
-