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 void
close()
boolean
exists(byte[] sha1)
boolean
isEmpty()
java.util.Iterator<SHA1>
iterator()
java.io.InputStream
read(SHA1 sha1)
Read the contents of a sha 1 key.void
reindex()
SHA1
write(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:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
iterator
public java.util.Iterator<SHA1> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<SHA1>
-
isEmpty
public boolean isEmpty() throws java.io.IOException
- Throws:
java.io.IOException
-
-