From a79b203a15ba139d65d2ea5d63cc546b0fab9eec Mon Sep 17 00:00:00 2001 From: jeb228 Date: Fri, 29 Oct 2010 20:27:42 +0000 Subject: [PATCH] NIHVIVO-1277 When uploading a file, store the alias URL on the FileByteStream resource. --- .../filestorage/UploadedFileHelper.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/UploadedFileHelper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/UploadedFileHelper.java index bdd671e04..f10e5a50e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/UploadedFileHelper.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filestorage/UploadedFileHelper.java @@ -66,23 +66,24 @@ public class UploadedFileHelper { } // Create the file individuals in the model - Individual byteStream = createByteStreamIndividual(); + Individual byteStream = createByteStreamIndividual(filename); String bytestreamUri = byteStream.getURI(); + String aliasUrl = byteStream.getDataValue(VitroVocabulary.FS_ALIAS_URL); + Individual file = createFileIndividual(mimeType, filename, byteStream); String fileUri = file.getURI(); // Store the file in the FileStorage system. fileStorage.createFile(bytestreamUri, filename, inputStream); - // Figure out the alias URL - String aliasUrl = FileServingHelper.getBytestreamAliasUrl( - bytestreamUri, filename); - // And wrap it all up in a tidy little package. - return new FileInfo.Builder().setFilename(filename) - .setMimeType(mimeType).setUri(fileUri) - .setBytestreamUri(bytestreamUri) - .setBytestreamAliasUrl(aliasUrl).build(); + FileInfo.Builder builder = new FileInfo.Builder(); + builder.setFilename(filename); + builder.setMimeType(mimeType); + builder.setUri(fileUri); + builder.setBytestreamUri(bytestreamUri); + builder.setBytestreamAliasUrl(aliasUrl); + return builder.build(); } /** @@ -151,10 +152,10 @@ public class UploadedFileHelper { } /** - * Create a bytestream individual in the model. It's just a naked individual - * with no properties. + * Create a bytestream individual in the model. The only property is the + * alias URL */ - private Individual createByteStreamIndividual() { + private Individual createByteStreamIndividual(String filename) { Individual byteStream = new IndividualImpl(); byteStream.setVClassURI(VitroVocabulary.FS_BYTESTREAM_CLASS); @@ -166,6 +167,11 @@ public class UploadedFileHelper { "Failed to create the bytestream individual.", e); } + dataPropertyStatementDao + .insertNewDataPropertyStatement(new DataPropertyStatementImpl( + uri, VitroVocabulary.FS_ALIAS_URL, FileServingHelper + .getBytestreamAliasUrl(uri, filename))); + return individualDao.getIndividualByURI(uri); }