public class TransactionalFileManager extends java.lang.Object implements Transactional
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BACKUP_FILE_SUFFIX |
static int |
CREATE_OR_UPDATE |
static java.lang.String |
CREATED_DIR_SUFFIX |
static int |
DELETE |
static java.lang.String |
DELETED_DIR_SUFFIX |
static java.lang.String |
DELETED_FILE_SUFFIX |
static java.io.FileFilter |
SPECIAL_FILE_FILTER |
static java.lang.String |
SPECIAL_SUFFIX |
static java.lang.String |
TR_CLEAN |
static java.lang.String |
TR_COMMITTING |
static java.lang.String |
TR_ROLLINGBACK |
static java.lang.String |
TR_STARTED |
static java.io.FileFilter |
TRANSACTION_CONTROL_FILE_FILTER |
static java.lang.String |
UPDATED_FILE_SUFFIX |
Constructor and Description |
---|
TransactionalFileManager(TransactionManager transactionManager, java.io.File root, java.util.logging.Logger logger, java.util.logging.Logger debugLogger)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
commit()
Commits the current transaction
|
void |
deleteFile(java.io.File f)
Delete a file
|
boolean |
exists(java.io.File f)
Returns true if the file is considered to be existing.
|
byte[] |
getBytes(java.io.File f)
Returns the contents of the given file.
|
java.lang.String |
getName()
Returns the name of this transactional file manager
|
java.io.File |
getRoot()
Returns the root of the directory structure which this transactional file manager manages
|
TransactionManager |
getTransactionManager()
Returns the transaction manager
|
void |
init() |
boolean |
isDeletedInCurrentTransaction(java.io.File f)
Return true if the file was deleted in the current transaction.
|
long |
length(java.io.File f)
Returns the size of the file
|
static java.io.File |
makeSpecialFile(java.io.File f, java.lang.String transactionId, java.lang.String operationSuffix) |
void |
mkdir(java.io.File dir)
Transactionally creates a directory
|
void |
mkdirs(java.io.File dir)
Transactionally creates a directory and all of its ancestors if they are missing
|
void |
prepareForCommit()
Last call before the commit.
|
void |
rmdir(java.io.File dir)
Removes the given directory
|
void |
rollback()
rollsback the current transaction
|
void |
writeFile(java.io.File f, byte[] bytes, boolean flushImmediately)
Write bytes to a file
|
public static final java.lang.String TR_STARTED
public static final java.lang.String TR_COMMITTING
public static final java.lang.String TR_ROLLINGBACK
public static final java.lang.String TR_CLEAN
public static final java.lang.String SPECIAL_SUFFIX
public static final java.lang.String UPDATED_FILE_SUFFIX
public static final java.lang.String DELETED_FILE_SUFFIX
public static final java.lang.String BACKUP_FILE_SUFFIX
public static final java.lang.String DELETED_DIR_SUFFIX
public static final java.lang.String CREATED_DIR_SUFFIX
public static final int CREATE_OR_UPDATE
public static final int DELETE
public static final java.io.FileFilter SPECIAL_FILE_FILTER
public static final java.io.FileFilter TRANSACTION_CONTROL_FILE_FILTER
public TransactionalFileManager(TransactionManager transactionManager, java.io.File root, java.util.logging.Logger logger, java.util.logging.Logger debugLogger)
transactionManager
- the transaction manager used by this file managerroot
- the root of the file system which this file manager is responsible fordebugLogger
- where the debug logs are sentpublic java.lang.String getName()
getName
in interface Transactional
public TransactionManager getTransactionManager()
public java.io.File getRoot()
public void init() throws java.lang.Exception
java.lang.Exception
public void prepareForCommit() throws java.lang.Exception
prepareForCommit
in interface Transactional
java.lang.Exception
public void commit()
commit
in interface Transactional
public void rollback()
rollback
in interface Transactional
public boolean isDeletedInCurrentTransaction(java.io.File f)
public boolean exists(java.io.File f)
File.exists()
may not return the desired status of the file as "seen" in the current transaction.public long length(java.io.File f) throws java.lang.Exception
java.lang.Exception
public byte[] getBytes(java.io.File f) throws java.lang.Exception
java.lang.Exception
public void writeFile(java.io.File f, byte[] bytes, boolean flushImmediately) throws java.lang.Exception
java.lang.Exception
public void deleteFile(java.io.File f) throws java.lang.Exception
java.lang.Exception
public void rmdir(java.io.File dir) throws java.lang.Exception
java.lang.Exception
public void mkdirs(java.io.File dir) throws java.lang.Exception
java.lang.Exception
public void mkdir(java.io.File dir) throws java.lang.Exception
java.lang.Exception
public static java.io.File makeSpecialFile(java.io.File f, java.lang.String transactionId, java.lang.String operationSuffix)