summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db/DbImage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db/DbImage.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/db/DbImage.java88
1 files changed, 44 insertions, 44 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/DbImage.java b/src/main/java/org/openslx/imagemaster/db/DbImage.java
index dc2ab34..a7a2adb 100644
--- a/src/main/java/org/openslx/imagemaster/db/DbImage.java
+++ b/src/main/java/org/openslx/imagemaster/db/DbImage.java
@@ -1,8 +1,6 @@
package org.openslx.imagemaster.db;
import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.util.Date;
import java.util.List;
import org.openslx.imagemaster.Globals;
@@ -20,22 +18,22 @@ public class DbImage
public final String uuid;
public final int imageVersion;
public final String imageName;
+ /**
+ * Relative path of image file (relative to Globals.getImageDir())
+ */
public final String imagePath;
public final Timestamp imageCreateTime;
public final Timestamp imageUpdateTime;
- public final String imageOwner;
+ public final int imageOwnerId;
public final String contentOperatingSystem;
public final boolean isValid;
public final boolean isDeleted;
public final String shortDescription;
public final String longDescription;
- public final Timestamp timestamp;
public final long fileSize;
- public final String token;
public final int[] blockStatus;
- public final String serverSessionId;
- public DbImage(String uuid)
+ public DbImage( String uuid )
{
this.uuid = uuid;
this.imageVersion = 0;
@@ -43,23 +41,20 @@ public class DbImage
this.imagePath = null;
this.imageCreateTime = null;
this.imageUpdateTime = null;
- this.imageOwner = null;
+ this.imageOwnerId = 0;
this.contentOperatingSystem = null;
this.isValid = false;
this.isDeleted = false;
this.shortDescription = null;
this.longDescription = null;
- this.timestamp = new Timestamp( 0 );
this.fileSize = 0;
- this.token = null;
this.blockStatus = null;
- this.serverSessionId = null;
}
- public DbImage(String uuid, int imageVersion, String imageName, String imagePath,
- Timestamp imageCreateTime, Timestamp imageUpdateTime, String imageOwner, String contentOperatingSystem,
+ public DbImage( String uuid, int imageVersion, String imageName, String imagePath,
+ Timestamp imageCreateTime, Timestamp imageUpdateTime, int imageOwnerId, String contentOperatingSystem,
boolean isValid, boolean isDeleted, String shortDescription, String longDescription,
- Timestamp timestamp, long fileSize, String token, String missingBlocksList, String serverSessionId)
+ long fileSize, String missingBlocksList )
{
this.uuid = uuid;
this.imageVersion = imageVersion;
@@ -67,26 +62,24 @@ public class DbImage
this.imagePath = imagePath;
this.imageCreateTime = imageCreateTime;
this.imageUpdateTime = imageUpdateTime;
- this.imageOwner = imageOwner;
+ this.imageOwnerId = imageOwnerId;
this.contentOperatingSystem = contentOperatingSystem;
this.isValid = isValid;
this.isDeleted = isDeleted;
this.shortDescription = shortDescription;
this.longDescription = longDescription;
- this.timestamp = timestamp;
this.fileSize = fileSize;
- this.token = token;
String[] parts = missingBlocksList.split( ";" );
blockStatus = new int[ Util.getNumberOfBlocks( fileSize, Globals.blockSize ) ]; // initialize array to ones
- for ( int i : blockStatus ) {
- blockStatus[i] = UploadingImage.valid;
+ for ( int i = 0; i < blockStatus.length; ++i ) {
+ blockStatus[i] = UploadingImage.VALID;
}
- for ( int i = 0; i < parts.length; i++ ) {
- blockStatus[i] = UploadingImage.missing;
+ for ( String block : parts ) { // Now mark missing blocks (if any)
+ int i = Util.tryToParseInt( block, -1 );
+ if ( i >= 0 && i < blockStatus.length )
+ blockStatus[i] = UploadingImage.MISSING;
}
-
- this.serverSessionId = serverSessionId;
}
/**
@@ -104,38 +97,30 @@ public class DbImage
* Insert a new image into database
*
* @param imageData The metadata of the image
- * @param ts The timestamp of inserting
- * @param token The token that is able to upload this image
- * @param amountBlocks The blocks that are missing for this image
- * @param serverSessionId The server that is uploading this image
+ * @param filepath Local storage path of image
* @return Affected rows
*/
- public static int insert( ImageData imageData, long ts, String token, int amountBlocks, String serverSessionId, String filepath )
+ public static int insert( ImageData imageData, String filepath )
{
- Date createTime = new Date( imageData.imageCreateTime );
- Date updateTime = new Date( imageData.imageUpdateTime );
- Date timestamp = new Date( ts );
- SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
-
+ int numBlocks = Util.getNumberOfBlocks( imageData.fileSize, Globals.blockSize );
String missingBlocksList = "";
- for ( int i = 0; i < amountBlocks; i++ ) {
+ for ( int i = 0; i < numBlocks; i++ ) {
missingBlocksList = missingBlocksList + String.valueOf( i ) + ";";
}
+ DbUser user = DbUser.forLogin( imageData.imageOwner );
+ int owner = 0;
+ if (user != null)
+ owner = user.userId;
return MySQL
.update(
- "INSERT INTO images (UUID, image_version, image_name, image_path, image_createTime, image_updateTime, image_owner, content_operatingSystem, status_isValid, status_isDeleted, image_shortDescription, image_longDescription, timestamp, fileSize, token, missingBlocks, serverSessionId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+ "INSERT INTO images (UUID, image_version, image_name, image_path, image_createTime, image_updateTime, image_owner, content_operatingSystem, status_isValid, status_isDeleted, image_shortDescription, image_longDescription, fileSize, missingBlocks) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
imageData.uuid, imageData.imageVersion, imageData.imageName, filepath,
- sdf.format( createTime ), sdf.format( updateTime ), imageData.imageOwner,
+ imageData.imageCreateTime, imageData.imageUpdateTime, owner,
imageData.contentOperatingSystem, imageData.statusIsValid,
imageData.statusIsDeleted, imageData.imageShortDescription,
- imageData.imageLongDescription, sdf.format( timestamp ), imageData.fileSize,
- token, missingBlocksList, serverSessionId );
- }
-
- public String getUuid()
- {
- return this.uuid;
+ imageData.imageLongDescription, imageData.fileSize,
+ missingBlocksList );
}
/**
@@ -218,8 +203,23 @@ public class DbImage
*/
public ImageData getImageData()
{
+ String owner = "unknown";
+ DbUser user = DbUser.forLogin( this.imageOwnerId );
+ if (user != null)
+ owner = user.getLogin();
return new ImageData( this.uuid, this.imageVersion, this.imageName, this.imageCreateTime.getTime(),
- this.imageUpdateTime.getTime(), this.imageOwner, this.contentOperatingSystem, this.isValid,
+ this.imageUpdateTime.getTime(), owner, this.contentOperatingSystem, this.isValid,
this.isDeleted, this.shortDescription, this.longDescription, this.fileSize );
}
+
+ /**
+ * Get absolute path of this image
+ *
+ * @return absolute path
+ */
+ public String getAbsolutePath()
+ {
+ return Globals.getImageDir() + "/" + this.imagePath;
+ }
+
}