Examples of OriginalFileDescriptor


Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

    } else if( false == UploadConstants.UPLOAD_STATUS_SUBMITTED.equals( conversionContext.getAttachmentDescription().getStatus() ) ) {
      logger.info("File not in submit state");
     
    } else {
      AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
      OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
     
      if( null == originalObj) {
        logger.error("Submission does not contain original");
        throw new Exception("Submission does not contain original");
     

      File file = originalObj.getMediaFile();
      if( null == file ){
        logger.error("No media file reported");
        throw new Exception("No media file reported");
      }
      if( false == file.exists() || false == file.isFile() ){
        logger.error(""+file.getAbsolutePath()+" is not a file.");
        throw new Exception(""+file.getAbsolutePath()+" is not a file.");
      };

      // Set file size
      long fileSize = file.length();
      originalObj.setSize(fileSize);

      // Mime type, encoding type and file class
      boolean pluginFound = false;
      String mimeType = null;
      String mimeEncoding = null;
      String fileClass = null;
      for(FileConversionPlugin fcp : this.fileConverters) {
        FileConversionMetaData md = fcp.getFileMetaData(file);
        if( md.isFileConvertable() ) {
          mimeType = md.getMimeType();
          fileClass = md.getFileClass();
          mimeEncoding = md.getMimeEncoding();
 
          pluginFound = true;
          break;
        }
      }
      if( false == pluginFound ) {
        logger.info("No plugin found for uploaded file");
       
        SystemFile sf = SystemFile.getSystemFile(file);
        mimeType = sf.getMimeType();
        mimeEncoding = sf.getMimeEncoding();
      }
      if( null != mimeType ) {
        originalObj.setContentType(mimeType);
      }
      if( null != mimeEncoding ) {
        originalObj.setEncodingType(mimeEncoding);
      }
      if( null != fileClass ){
        attDescription.setFileClass(fileClass);
      }
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

      conversionContext.downloadFile(outputFile);
     
      // Create an original structure to point to the file in the
      // media dir. This way, when we go to "submitted" state, we will
      // be ready.
      OriginalFileDescriptor originalDescription = attDescription.getOriginalFileDescription();
      originalDescription.setMediaFileName(outputFile.getName());

      // Delete current attachment
      attDescription.removeFile();

      // Update status
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

      if( false == attDescription.isOriginalFileDescriptionAvailable() ) {
        logger.error("Analysis required but original object is not present");
        throw new Exception("Analysis required but original object is not present");
      }
      OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
     
      // Verify if a submitter is specified
      CouchUserContext submitter = attDescription.getSubmitter();

      boolean pluginFound = false;
      String fileClass = attDescription.getFileClass();
      for(FileConversionPlugin fcp : this.fileConverters) {
        if( fcp.handlesFileClass(fileClass, FileConversionPlugin.WORK_ANALYZE) ) {
          fcp.performWork(FileConversionPlugin.WORK_ANALYZE, conversionContext);
          pluginFound = true;
          break;
        }
      }
      if( false == pluginFound ) {
        logger.info("No plugin found to analyze file class: "+fileClass);
       
        // By default, original file is used
        attDescription.setMediaFileName(originalObj.getMediaFileName());
        attDescription.setContentType(originalObj.getContentType());
        attDescription.setEncodingType(originalObj.getEncodingType());
        attDescription.setSize(originalObj.getSize());
      }
     
      // Update document
      boolean shouldSendNotification = false;
      if( CouchNunaliitUtils.hasVetterRole(submitter, settings.getAtlasName()) ) {
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

    }
  }

  public void analyzeFile(FileConversionContext conversionContext) throws Exception {
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
    OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
    CouchUserContext submitter = attDescription.getSubmitter();
   
    // Figure out media file located on disk
    File originalFile = originalObj.getMediaFile();
    String mimeType = originalObj.getContentType();

    // Perform conversion(s)
    MultimediaConversionRequest request = new MultimediaConversionRequest();
    request.setInFile( originalFile );
    request.setThumbnailRequested(true);
    request.setProgress( new UploadProgressAdaptor() );
   
    MultimediaClass mmClass = MimeUtils.getMultimediaClassFromMimeType(mimeType);
    if( MultimediaClass.VIDEO == mmClass ) {
      // For video file, convert to appropriate file type
      mmConverter.convertVideo(request);

    } else if( MultimediaClass.AUDIO == mmClass ) {
      // For audio file, convert to appropriate file type
      mmConverter.convertAudio(request);
     
    } else if( MultimediaClass.IMAGE == mmClass ) {
      // For image file, convert to appropriate file type
      mmConverter.convertImage(request);
     
    } else {
      throw new Exception("Unknown multimedia class: "+mmClass);
    }
   
    // Compute a new name for the attachment, to reflect the conversion
    {
      String expectedExtension = "";
      if( MultimediaClass.VIDEO == mmClass ){
        expectedExtension = "mp4";
      } else if( MultimediaClass.AUDIO == mmClass ){
        expectedExtension = "mp3";
      } else if( MultimediaClass.IMAGE == mmClass ){
        expectedExtension = "jpeg";
      }
     
      String currentPrefix = attDescription.getAttachmentName();
      String currentExtension = "";
      {
        int index = currentPrefix.lastIndexOf('.');
        if( index > 0 ){
          currentExtension = currentPrefix.substring(index+1);
          currentPrefix = currentPrefix.substring(0, index);
        }
      }
     
      if( false == currentExtension.equals(expectedExtension) ){
        // Must rename
        String newAttachmentName = currentPrefix + "." + expectedExtension;
       
        // Check collision
        int index = 0;
        while( conversionContext.isAttachmentDescriptionAvailable(newAttachmentName) ){
          newAttachmentName = currentPrefix + "_" + index + "." + expectedExtension;
          ++index;
        }
       
        attDescription.renameAttachmentTo(newAttachmentName);
      }
    }
   
    // Report original size
    if( request.getInHeight() != 0 && request.getInWidth() != 0 ) {
      originalObj.setHeight( request.getInHeight() );
      originalObj.setWidth( request.getInWidth() );
    }

    // Report converted object
    {
      File convertedFile = request.getOutFile();
      SystemFile convertedSf = SystemFile.getSystemFile(convertedFile);

      if( CouchNunaliitUtils.hasVetterRole(submitter, atlasName) ) {
        attDescription.setStatus(UploadConstants.UPLOAD_STATUS_APPROVED);
      } else {
        attDescription.setStatus(UploadConstants.UPLOAD_STATUS_WAITING_FOR_APPROVAL);
      }
      attDescription.setConversionPerformed(request.isConversionPerformed());
      attDescription.setMediaFileName(convertedFile.getName());
      attDescription.setSize(convertedFile.length());
      attDescription.setContentType(convertedSf.getMimeType());
      attDescription.setEncodingType(convertedSf.getMimeEncoding());
      if( request.getOutHeight() != 0 && request.getOutWidth() != 0 ) {
        attDescription.setHeight(request.getOutHeight());
        attDescription.setWidth(request.getOutWidth());
      }
     
      ServerWorkDescriptor serverWork = attDescription.getServerWorkDescription();
      serverWork.setOrientationLevel(UploadConstants.SERVER_ORIENTATION_VALUE);
    }

    // Report thumbnail object
    if( request.isThumbnailCreated() ) {
      File thumbFile = request.getThumbnailFile();
      SystemFile thumbSf = SystemFile.getSystemFile(thumbFile);
     
      String thumbnailAttachmentName = computeThumbnailName(attDescription.getAttachmentName(),"jpeg");
      AttachmentDescriptor thumbnailObj = conversionContext.getAttachmentDescription(thumbnailAttachmentName);

      if( CouchNunaliitUtils.hasVetterRole(submitter, atlasName) ) {
        thumbnailObj.setStatus(UploadConstants.UPLOAD_STATUS_APPROVED);
      } else {
        thumbnailObj.setStatus(UploadConstants.UPLOAD_STATUS_WAITING_FOR_APPROVAL);
      }
      thumbnailObj.setFileClass("image");
      thumbnailObj.setOriginalName(attDescription.getOriginalName());
      thumbnailObj.setMediaFileName(thumbFile.getName());
      thumbnailObj.setSource(attDescription.getAttachmentName());

      thumbnailObj.setSize(thumbFile.length());
      thumbnailObj.setContentType(thumbSf.getMimeType());
      thumbnailObj.setEncodingType(thumbSf.getMimeEncoding());

      if( request.getThumbnailHeight() != 0 && request.getThumbnailWidth() != 0 ) {
        thumbnailObj.setHeight(request.getThumbnailHeight());
        thumbnailObj.setWidth(request.getThumbnailWidth());
      }

      attDescription.setThumbnailReference(thumbnailAttachmentName);
    }
   
    // Report original file
    if( request.isConversionPerformed() ) {
      // Original is not needed if no conversion performed
     
      String fileClass = attDescription.getFileClass();
      if( "image".equals(fileClass) && uploadOriginalImages ) {
        String originalAttachmentName = computeOriginalName(attDescription.getOriginalName());
        AttachmentDescriptor origDescription = conversionContext.getAttachmentDescription(originalAttachmentName);

        if( CouchNunaliitUtils.hasVetterRole(submitter, atlasName) ) {
          origDescription.setStatus(UploadConstants.UPLOAD_STATUS_APPROVED);
        } else {
          origDescription.setStatus(UploadConstants.UPLOAD_STATUS_WAITING_FOR_APPROVAL);
        }
        origDescription.setContentType(attDescription.getContentType());
        origDescription.setOriginalName(attDescription.getOriginalName());
        origDescription.setMediaFileName(originalFile.getName());
        origDescription.setSource(attDescription.getAttachmentName());

        origDescription.setSize(originalObj.getSize());
        origDescription.setContentType(originalObj.getContentType());
        origDescription.setEncodingType(originalObj.getEncodingType());

        origDescription.setHeight(originalObj.getHeight());
        origDescription.setWidth(originalObj.getWidth());

        ServerWorkDescriptor serverWork = origDescription.getServerWorkDescription();
        serverWork.setOrientationLevel(UploadConstants.SERVER_ORIENTATION_VALUE);

        attDescription.setOriginalAttachment(originalAttachmentName);
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

     || false == attDescription.isWorkDescriptionAvailable()
     ){
      throw new Exception("Invalid attachment description");
    }
   
    OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
    WorkDescriptor work = attDescription.getWorkDescription();
   
    // Figure out media file located on disk
    File originalFile = originalObj.getMediaFile();
    String mimeType = originalObj.getContentType();

    // Is file converted?
    boolean conversionPerformed = attDescription.isConversionPerformed();
    if( false == conversionPerformed ) {
      work.setStringAttribute(UploadConstants.UPLOAD_WORK_UPLOAD_ORIGINAL_IMAGE, "No conversion performed. No need to upload.");
      return;
    }
   
    // Are uploaded files allowed?
    if( false == uploadOriginalImages ) {
      work.setStringAttribute(UploadConstants.UPLOAD_WORK_UPLOAD_ORIGINAL_IMAGE, "Original file uploads not allowed.");
      return;
    }
   
    // Is it an image?
    String fileClass = attDescription.getFileClass();
    if( false == "image".equals(fileClass) ) {
      work.setStringAttribute(UploadConstants.UPLOAD_WORK_UPLOAD_ORIGINAL_IMAGE, "Original file uploads allowed only for images");
      return;
    }
   
    // Does the original file exist?
    if( false == originalFile.exists() || false == originalFile.isFile() ) {
      work.setStringAttribute(UploadConstants.UPLOAD_WORK_UPLOAD_ORIGINAL_IMAGE, "Can not find original file from media directory");
      return;
    }
   
    // Create attachment description for original file
    String originalAttachmentName = computeOriginalName(attDescription.getOriginalName());
    AttachmentDescriptor origDescription = conversionContext.getAttachmentDescription(originalAttachmentName);

    origDescription.setStatus(attDescription.getStatus());
    origDescription.setOriginalName(attDescription.getOriginalName());
    origDescription.setMediaFileName(originalFile.getName());
    origDescription.setSource(attDescription.getAttachmentName());

    origDescription.setSize(originalObj.getSize());
    origDescription.setContentType(originalObj.getContentType());
    origDescription.setEncodingType(originalObj.getEncodingType());

    origDescription.setHeight(originalObj.getHeight());
    origDescription.setWidth(originalObj.getWidth());

    ServerWorkDescriptor serverWork = origDescription.getServerWorkDescription();
    serverWork.setOrientationLevel(UploadConstants.SERVER_ORIENTATION_VALUE);

    // Remember original attachment
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

  }

  public void analyzeFile(FileConversionContext conversionContext) throws Exception {
    // No conversion required.
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
    OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
    attDescription.setSize(originalObj.getSize());
    attDescription.setContentType(originalObj.getContentType());
    attDescription.setEncodingType(originalObj.getEncodingType());
    attDescription.setMediaFileName(originalObj.getMediaFileName());
  }
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

    } else if( false == UploadConstants.UPLOAD_STATUS_SUBMITTED.equals( conversionContext.getAttachmentDescription().getStatus() ) ) {
      logger.info("File not in submit state");
     
    } else {
      AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
      OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
     
      if( null == originalObj) {
        logger.error("Submission does not contain original");
        throw new Exception("Submission does not contain original");
     

      // Set file size
      File file = originalObj.getMediaFile();
      long fileSize = file.length();
      originalObj.setSize(fileSize);

      // Mime type, encoding type and file class
      boolean pluginFound = false;
      String mimeType = null;
      String mimeEncoding = null;
      String fileClass = null;
      for(FileConversionPlugin fcp : this.fileConverters) {
        FileConversionMetaData md = fcp.getFileMetaData(file);
        if( md.isFileConvertable() ) {
          mimeType = md.getMimeType();
          fileClass = md.getFileClass();
          mimeEncoding = md.getMimeEncoding();
 
          pluginFound = true;
          break;
        }
      }
      if( false == pluginFound ) {
        logger.info("No plugin found for uploaded file");
       
        SystemFile sf = SystemFile.getSystemFile(file);
        mimeType = sf.getMimeType();
        mimeEncoding = sf.getMimeEncoding();
      }
      if( null != mimeType ) {
        originalObj.setContentType(mimeType);
      }
      if( null != mimeEncoding ) {
        originalObj.setEncodingType(mimeEncoding);
      }
      if( null != fileClass ){
        attDescription.setFileClass(fileClass);
      }
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

      conversionContext.downloadFile(outputFile);
     
      // Create an original structure to point to the file in the
      // media dir. This way, when we go to "submitted" state, we will
      // be ready.
      OriginalFileDescriptor originalDescription = attDescription.getOriginalFileDescription();
      originalDescription.setMediaFileName(outputFile.getName());

      // Delete current attachment
      attDescription.removeFile();

      // Update status
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

      if( false == attDescription.isOriginalFileDescriptionAvailable() ) {
        logger.error("Analysis required but original object is not present");
        throw new Exception("Analysis required but original object is not present");
      }
      OriginalFileDescriptor originalObj = attDescription.getOriginalFileDescription();
     
      // Verify if a submitter is specified
      CouchUserContext submitter = attDescription.getSubmitter();

      boolean pluginFound = false;
      String fileClass = attDescription.getFileClass();
      for(FileConversionPlugin fcp : this.fileConverters) {
        if( fcp.handlesFileClass(fileClass, FileConversionPlugin.WORK_ANALYZE) ) {
          fcp.performWork(FileConversionPlugin.WORK_ANALYZE, conversionContext);
          pluginFound = true;
          break;
        }
      }
      if( false == pluginFound ) {
        logger.info("No plugin found to analyze file class: "+fileClass);
       
        // By default, original file is used
        attDescription.setMediaFileName(originalObj.getMediaFileName());
        attDescription.setContentType(originalObj.getContentType());
        attDescription.setEncodingType(originalObj.getEncodingType());
        attDescription.setSize(originalObj.getSize());
      }
     
      // Update document
      if( CouchNunaliitUtils.hasVetterRole(submitter) ) {
        // If submitter has vetter role, then no need to wait for approval
View Full Code Here

Examples of ca.carleton.gcrc.couch.onUpload.conversion.OriginalFileDescriptor

          fileDescription.setAttachmentName(attachmentName);
          fileDescription.setStatus(UploadConstants.UPLOAD_STATUS_SUBMITTED);
          fileDescription.setOriginalName(originalName);
          fileDescription.setSubmitterName(userContext.getName());
         
          OriginalFileDescriptor originalJson = fileDescription.getOriginalFileDescription();
          originalJson.setMediaFileName(actualFile.getName());

          // Add user data
          UserDataDescriptor userData = fileDescription.getUserDataDescription();
          for(String key : parameters.keySet()) {
            if( "id".equals(key)
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.