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 ApplicationSqlDaoapplicationDaoprotected ChunkSqlDaochunkDaoprotected java.sql.Connectionconnectionprotected DatabaseVersionSqlDaodatabaseVersionDaoprotected FileContentSqlDaofileContentDaoprotected FileHistorySqlDaofileHistoryDaoprotected FileVersionSqlDaofileVersionDaoprotected static java.util.logging.Loggerloggerprotected MultiChunkSqlDaomultiChunkDao
-
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:
finalizein 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)
-
-