Package org.syncany.database.dao
Class DatabaseVersionSqlDao
- java.lang.Object
-
- org.syncany.database.dao.AbstractSqlDao
-
- org.syncany.database.dao.DatabaseVersionSqlDao
-
public class DatabaseVersionSqlDao extends AbstractSqlDao
The database version data access object (DAO) writes and queries the SQL database for information onDatabaseVersion
s. It translates the relational data in the "databaseversion" table to Java objects; but also uses the other DAOs to persist entireDatabaseVersion
objects.
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.logging.Logger
logger
-
Fields inherited from class org.syncany.database.dao.AbstractSqlDao
connection
-
-
Constructor Summary
Constructors Constructor Description DatabaseVersionSqlDao(java.sql.Connection connection, ChunkSqlDao chunkDao, FileContentSqlDao fileContentDao, FileVersionSqlDao fileVersionDao, FileHistorySqlDao fileHistoryDao, MultiChunkSqlDao multiChunkDao)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearCaches()
protected DatabaseVersion
createDatabaseVersionFromRow(java.sql.ResultSet resultSet, boolean excludeChunkData, int fileHistoryMaxCount)
java.util.Iterator<DatabaseVersion>
getDatabaseVersionsTo(java.lang.String machineName, long maxLocalClientVersion)
java.util.Iterator<DatabaseVersion>
getDirtyDatabaseVersions()
DatabaseVersionHeader
getLastDatabaseVersionHeader()
java.util.Iterator<DatabaseVersion>
getLastDatabaseVersions(int maxDatabaseVersionCount, int startDatabaseVersionIndex, int maxFileHistoryCount)
DatabaseBranch
getLocalDatabaseBranch()
java.lang.Long
getMaxDirtyVectorClock(java.lang.String machineName)
java.util.List<DatabaseVersionHeader>
getNonEmptyDatabaseVersionHeaders()
protected VectorClock
getVectorClockByDatabaseVersionId(int databaseVersionId)
void
markDatabaseVersionDirty(VectorClock vectorClock)
Marks the database version with the given vector clock as DIRTY, i.e.void
removeDirtyDatabaseVersions(long newDatabaseVersionId)
Removes dirtyDatabaseVersion
s,FileVersion
s,PartialFileHistory
s andFileContent
s from the database, but leaves stale/unreferenced chunks/multichunks untouched (must be cleaned up at a later stage).void
removeEmptyDatabaseVersionHeaders()
long
writeDatabaseVersion(DatabaseVersion databaseVersion)
-
Methods inherited from class org.syncany.database.dao.AbstractSqlDao
getConnection, getStatement, getStatement, runScript
-
-
-
-
Field Detail
-
logger
protected static final java.util.logging.Logger logger
-
-
Constructor Detail
-
DatabaseVersionSqlDao
public DatabaseVersionSqlDao(java.sql.Connection connection, ChunkSqlDao chunkDao, FileContentSqlDao fileContentDao, FileVersionSqlDao fileVersionDao, FileHistorySqlDao fileHistoryDao, MultiChunkSqlDao multiChunkDao)
-
-
Method Detail
-
markDatabaseVersionDirty
public void markDatabaseVersionDirty(VectorClock vectorClock)
Marks the database version with the given vector clock as DIRTY, i.e. sets theDatabaseVersion.DatabaseVersionStatus
toDIRTY
. Marking a database version dirty will lead to a deletion in the next sync up cycle.- Parameters:
vectorClock
- Identifies the database version to mark dirty
-
writeDatabaseVersion
public long writeDatabaseVersion(DatabaseVersion databaseVersion)
-
removeDirtyDatabaseVersions
public void removeDirtyDatabaseVersions(long newDatabaseVersionId)
Removes dirtyDatabaseVersion
s,FileVersion
s,PartialFileHistory
s andFileContent
s from the database, but leaves stale/unreferenced chunks/multichunks untouched (must be cleaned up at a later stage).- Parameters:
newDatabaseVersionId
-
-
removeEmptyDatabaseVersionHeaders
public void removeEmptyDatabaseVersionHeaders()
-
clearCaches
public void clearCaches()
-
getMaxDirtyVectorClock
public java.lang.Long getMaxDirtyVectorClock(java.lang.String machineName)
-
getNonEmptyDatabaseVersionHeaders
public java.util.List<DatabaseVersionHeader> getNonEmptyDatabaseVersionHeaders()
-
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)
-
createDatabaseVersionFromRow
protected DatabaseVersion createDatabaseVersionFromRow(java.sql.ResultSet resultSet, boolean excludeChunkData, int fileHistoryMaxCount) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getLastDatabaseVersionHeader
public DatabaseVersionHeader getLastDatabaseVersionHeader()
-
getLocalDatabaseBranch
public DatabaseBranch getLocalDatabaseBranch()
-
getVectorClockByDatabaseVersionId
protected VectorClock getVectorClockByDatabaseVersionId(int databaseVersionId) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
-