Package org.syncany.database
Class SqlDatabase
- java.lang.Object
-
- org.syncany.database.SqlDatabase
-
public class SqlDatabase extends java.lang.Object
Represents the single entry point for all SQL database queries.This class combines all specific SQL database data access objects (DAOs) into a single class, and forwards all method calls to the responsible DAO.
-
-
Field Summary
Fields Modifier and Type Field Description protected ApplicationSqlDao
applicationDao
protected ChunkSqlDao
chunkDao
protected java.sql.Connection
connection
protected DatabaseVersionSqlDao
databaseVersionDao
protected FileContentSqlDao
fileContentDao
protected FileHistorySqlDao
fileHistoryDao
protected FileVersionSqlDao
fileVersionDao
protected static java.util.logging.Logger
logger
protected MultiChunkSqlDao
multiChunkDao
-
Constructor Summary
Constructors Constructor Description SqlDatabase(Config config)
SqlDatabase(Config config, boolean readOnly)
-
Method Summary
-
-
-
Field Detail
-
logger
protected static final java.util.logging.Logger logger
-
connection
protected java.sql.Connection connection
-
applicationDao
protected ApplicationSqlDao applicationDao
-
chunkDao
protected ChunkSqlDao chunkDao
-
fileContentDao
protected FileContentSqlDao fileContentDao
-
fileVersionDao
protected FileVersionSqlDao fileVersionDao
-
fileHistoryDao
protected FileHistorySqlDao fileHistoryDao
-
multiChunkDao
protected MultiChunkSqlDao multiChunkDao
-
databaseVersionDao
protected DatabaseVersionSqlDao databaseVersionDao
-
-
Constructor Detail
-
SqlDatabase
public SqlDatabase(Config config)
-
SqlDatabase
public SqlDatabase(Config config, boolean readOnly)
-
-
Method Detail
-
commit
public void commit() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
finalize
public void finalize()
- Overrides:
finalize
in classjava.lang.Object
-
rollback
public void rollback() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
removeUnreferencedDatabaseEntities
public void removeUnreferencedDatabaseEntities()
-
writeKnownRemoteDatabases
public void writeKnownRemoteDatabases(java.util.List<DatabaseRemoteFile> remoteDatabases) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getKnownDatabases
public java.util.List<DatabaseRemoteFile> getKnownDatabases()
-
getHighestKnownDatabaseFilenameNumbers
public VectorClock getHighestKnownDatabaseFilenameNumbers()
-
removeKnownDatabases
public void removeKnownDatabases()
-
getCleanupNumber
public java.lang.Long getCleanupNumber()
-
getCleanupTime
public java.lang.Long getCleanupTime()
-
writeCleanupNumber
public void writeCleanupNumber(long cleanupNumber)
-
writeCleanupTime
public void writeCleanupTime(long cleanupTime)
-
deleteAll
public void deleteAll()
-
shutdown
public void shutdown()
-
getDirtyDatabaseVersions
public java.util.Iterator<DatabaseVersion> getDirtyDatabaseVersions()
-
getDatabaseVersionsTo
public java.util.Iterator<DatabaseVersion> getDatabaseVersionsTo(java.lang.String machineName, long maxLocalClientVersion)
-
getLastDatabaseVersions
public java.util.Iterator<DatabaseVersion> getLastDatabaseVersions(int maxDatabaseVersionCount, int startDatabaseVersionIndex, int maxFileHistoryCount)
-
getLastDatabaseVersionHeader
public DatabaseVersionHeader getLastDatabaseVersionHeader()
-
getLocalDatabaseBranch
public DatabaseBranch getLocalDatabaseBranch()
-
getNonEmptyDatabaseVersionHeaders
public java.util.List<DatabaseVersionHeader> getNonEmptyDatabaseVersionHeaders()
-
writeDatabaseVersion
public long writeDatabaseVersion(DatabaseVersion databaseVersion)
-
markDatabaseVersionDirty
public void markDatabaseVersionDirty(VectorClock vectorClock)
-
removeDirtyDatabaseVersions
public void removeDirtyDatabaseVersions(long newDatabaseVersionId)
-
removeEmptyDatabaseVersionHeaders
public void removeEmptyDatabaseVersionHeaders()
-
getMaxDirtyVectorClock
public java.lang.Long getMaxDirtyVectorClock(java.lang.String machineName)
-
getFileHistoriesWithFileVersions
@Deprecated public java.util.Map<PartialFileHistory.FileHistoryId,PartialFileHistory> getFileHistoriesWithFileVersions()
Deprecated.
-
getFileHistories
public java.util.Map<PartialFileHistory.FileHistoryId,PartialFileHistory> getFileHistories(java.util.List<PartialFileHistory.FileHistoryId> fileHistoryIds)
-
getFileHistoriesWithLastVersion
public java.util.List<PartialFileHistory> getFileHistoriesWithLastVersion()
-
getFileHistoriesWithLastVersionByChecksumSizeAndModifiedDate
public java.util.Collection<PartialFileHistory> getFileHistoriesWithLastVersionByChecksumSizeAndModifiedDate(java.lang.String checksum, long size, java.util.Date modifiedDate)
-
getFileHistoriesWithLastVersionByPath
public PartialFileHistory getFileHistoriesWithLastVersionByPath(java.lang.String path)
-
expandFileHistoryId
public PartialFileHistory.FileHistoryId expandFileHistoryId(PartialFileHistory.FileHistoryId fileHistoryId)
-
getCurrentFileTree
public java.util.Map<java.lang.String,FileVersion> getCurrentFileTree()
-
removeSmallerOrEqualFileVersions
public void removeSmallerOrEqualFileVersions(java.util.Map<PartialFileHistory.FileHistoryId,FileVersion> purgeFileVersions) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
removeFileVersions
public void removeFileVersions(java.util.Map<PartialFileHistory.FileHistoryId,java.util.List<FileVersion>> purgeFileVersions) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getFileList
public java.util.List<FileVersion> getFileList(java.lang.String pathExpression, java.util.Date date, boolean fileHistoryId, boolean recursive, boolean deleted, java.util.Set<FileVersion.FileType> fileTypes)
-
getFileHistory
public java.util.List<FileVersion> getFileHistory(PartialFileHistory.FileHistoryId fileHistoryId)
-
getFileHistoriesToPurgeInInterval
public java.util.Map<PartialFileHistory.FileHistoryId,java.util.List<FileVersion>> getFileHistoriesToPurgeInInterval(long beginTimestamp, long endTimestamp, CleanupOperationOptions.TimeUnit timeUnit)
-
getFileHistoriesToPurgeBefore
public java.util.Map<PartialFileHistory.FileHistoryId,java.util.List<FileVersion>> getFileHistoriesToPurgeBefore(long timestamp)
-
getDeletedFileVersionsBefore
public java.util.Map<PartialFileHistory.FileHistoryId,FileVersion> getDeletedFileVersionsBefore(long timestamp)
-
getFileVersion
public FileVersion getFileVersion(PartialFileHistory.FileHistoryId fileHistoryId, long version)
-
getMultiChunkIds
public java.util.List<MultiChunkEntry.MultiChunkId> getMultiChunkIds(FileContent.FileChecksum fileChecksum)
-
getMultiChunkId
public MultiChunkEntry.MultiChunkId getMultiChunkId(ChunkEntry.ChunkChecksum chunkChecksum)
-
getMultiChunkIdsByChecksums
public java.util.Map<ChunkEntry.ChunkChecksum,MultiChunkEntry.MultiChunkId> getMultiChunkIdsByChecksums(java.util.List<ChunkEntry.ChunkChecksum> chunkChecksums)
-
getDirtyMultiChunkIds
public java.util.List<MultiChunkEntry.MultiChunkId> getDirtyMultiChunkIds()
-
getUnusedMultiChunks
public java.util.Map<MultiChunkEntry.MultiChunkId,MultiChunkEntry> getUnusedMultiChunks()
-
writeMuddyMultiChunks
public void writeMuddyMultiChunks(java.util.Map<DatabaseVersionHeader,java.util.Collection<MultiChunkEntry>> muddyMultiChunks) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
removeNonMuddyMultiChunks
public void removeNonMuddyMultiChunks() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getChunks
protected java.util.Map<ChunkEntry.ChunkChecksum,ChunkEntry> getChunks(VectorClock vectorClock)
-
getChunk
public ChunkEntry getChunk(ChunkEntry.ChunkChecksum chunkChecksum)
-
getFileContent
public FileContent getFileContent(FileContent.FileChecksum fileChecksum, boolean includeChunkChecksums)
-
-