Package ca.carleton.gcrc.couch.onUpload.conversion

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


    attDescription.setMediaFileName(originalObj.getMediaFileName());
  }

  public void approveFile(FileConversionContext approvedContext) throws Exception {

    AttachmentDescriptor attDescription = approvedContext.getAttachmentDescription();
   
    GpxFactory factory = new GpxFactory();
    try {
      Gpx gpx = factory.loadFromFile(attDescription.getMediaFile());
      if( null == gpx ) {
        throw new Exception("Conversion returns null object");
      }
     
      JSONObject doc = approvedContext.getDoc();
     
      GpxConversionContext context = new GpxConversionContext();
      context.setLayerName( doc.getString("_id") );
      context.setSourceDocumentId( doc.getString("_id") );
     
      convertGpx(approvedContext, context, gpx, doc);
     
      // Save changes to document
      approvedContext.saveDocument();
     
      // Upload original file
      approvedContext.uploadFile(
        approvedContext.getAttachmentName()
        ,attDescription.getMediaFile()
        ,"application/xml"
        );
     
    } catch(Exception e) {
      String gpxFileName = null;
      if( null != attDescription.getMediaFile() ) {
        gpxFileName = attDescription.getMediaFile().getAbsolutePath();
      }
      throw new Exception("Unable to convert using GPX: "+gpxFileName,e);
    }
  }
View Full Code Here


      }
    }
   
    // Create layer definition
    {
      AttachmentDescriptor attDescription = approvedContext.getAttachmentDescription();
      JSONObject layerDef = new JSONObject();
     
      layerDef.put("nunaliit_type", "layerDefinition");
      layerDef.put("id", context.getLayerName());

      String originalFileName = attDescription.getOriginalName();
     
      if( null != gpx.getName() ) {
        layerDef.put("name", "GPX - "+gpx.getName());
       
      } else if( null != originalFileName ) {
View Full Code Here

    } else if( false == UploadConstants.UPLOAD_STATUS_ATTACHED.equals( conversionContext.getAttachmentDescription().getStatus() ) ) {
      logger.info("File not in attached state");

    } else {
      AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
      ServerWorkDescriptor serverDescription = attDescription.getServerWorkDescription();
      String thumbnailReference = attDescription.getThumbnailReference();
      int thumbnailLevel = serverDescription.getThumbnailLevel();
     
      if( thumbnailLevel >= UploadConstants.SERVER_THUMBNAIL_VALUE ) {
        logger.info("Orientation work already done");
 
      } else if( null != thumbnailReference ) {
        // This is an instance where the thumbnail was already
        // created but the server work was not noted. This happens
        // with legacy documents.
        // In this case, update server work and save document.
        serverDescription.setThumbnailLevel(UploadConstants.SERVER_THUMBNAIL_VALUE);
       
        // Update status
        conversionContext.saveDocument();
       
        logger.info("Updated server thumbnail status");

      } else {

        boolean pluginFound = false;
        String fileClass = attDescription.getFileClass();
        for(FileConversionPlugin fcp : this.fileConverters) {
          if( fcp.handlesFileClass(fileClass, FileConversionPlugin.WORK_THUMBNAIL) ) {
            fcp.performWork(FileConversionPlugin.WORK_THUMBNAIL, conversionContext);
            pluginFound = true;
           
View Full Code Here

    } else if( false == UploadConstants.UPLOAD_STATUS_ATTACHED.equals( conversionContext.getAttachmentDescription().getStatus() ) ) {
      throw new Exception("File not in attached state");

    } else {
      AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
      WorkDescriptor work = attDescription.getWorkDescription();

      boolean pluginFound = false;
      String fileClass = attDescription.getFileClass();
      for(FileConversionPlugin fcp : this.fileConverters) {
        if( fcp.handlesFileClass(fileClass, FileConversionPlugin.WORK_UPLOAD_ORIGINAL) ) {
          fcp.performWork(FileConversionPlugin.WORK_UPLOAD_ORIGINAL, conversionContext);
          pluginFound = true;
         
View Full Code Here

    } else if( false == UploadConstants.UPLOAD_STATUS_ATTACHED.equals( conversionContext.getAttachmentDescription().getStatus() ) ) {
      throw new Exception("File not in attached state");

    } else {
      AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
      WorkDescriptor work = attDescription.getWorkDescription();

      boolean pluginFound = false;
      String fileClass = attDescription.getFileClass();
      for(FileConversionPlugin fcp : this.fileConverters) {
        if( fcp.handlesFileClass(fileClass, workType) ) {
          fcp.performWork(workType, conversionContext);
          pluginFound = true;
         
View Full Code Here

            }
          }

          FileConversionContext conversionContext = new FileConversionContext(doc, dd, attachmentName, mediaDir);
         
          AttachmentDescriptor fileDescription = conversionContext.getAttachmentDescription();
         
          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)
             || "rev".equals(key)
             ) {
              // Drop already processed parameters
View Full Code Here

   
    if( false == conversionContext.isAttachmentDescriptionAvailable() ){
      throw new Exception("Invalid attachment description");
    }
   
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
   
    if( false == attDescription.isOriginalFileDescriptionAvailable()
     || 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.getAttachmentName());
    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
    attDescription.setOriginalAttachment(originalAttachmentName);
View Full Code Here

   
    if( false == conversionContext.isAttachmentDescriptionAvailable() ){
      throw new Exception("Invalid attachment description");
    }
   
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
   
    if( false == attDescription.isOriginalFileDescriptionAvailable()
     || 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 attached?
    if( false == attDescription.getStatus().equals(UploadConstants.UPLOAD_STATUS_ATTACHED) ) {
      work.setStringAttribute(workType, "Media file is not attached and conversion can not be performed.");
      return;
    }
   
    // Is it an image or video?
    String fileClass = attDescription.getFileClass();
    if( false == "image".equals(fileClass)
     && false == "video".equals(fileClass) ) {
      work.setStringAttribute(workType, "Media file must be imgage or video.");
      return;
    }
View Full Code Here

  }

  public void approveFile(FileConversionContext conversionContext) throws Exception {
    // Upload file
    String attachementName = conversionContext.getAttachmentName();
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
    File file = attDescription.getMediaFile();
    String mimeType = conversionContext.getAttachmentDescription().getContentType();
    conversionContext.uploadFile(attachementName, file, mimeType);
  }
View Full Code Here

    conversionContext.uploadFile(attachementName, file, mimeType);
  }

  public void orientImage(FileConversionContext conversionContext) throws Exception {
    // Get file
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
    String mimeType = attDescription.getContentType();
    File outputFile = File.createTempFile("original_", attDescription.getMediaFileName());
    conversionContext.downloadFile(outputFile);
   
    ImageMagickProcessor imp = ImageMagick.getInfo().getProcessor();
    ImageInfo imageInfo = imp.getImageInfo(outputFile);
   
    if( imageInfo.orientation == ImageInfo.Orientation.REQUIRES_CONVERSION ){
      File convertedFile = File.createTempFile("oriented_", attDescription.getMediaFileName());
      imp.reorientImage(outputFile, convertedFile);
      attDescription.uploadFile(convertedFile, mimeType);
    }

    ServerWorkDescriptor serverWork = attDescription.getServerWorkDescription();
    serverWork.setOrientationLevel(UploadConstants.SERVER_ORIENTATION_VALUE);
  }
View Full Code Here

TOP

Related Classes of ca.carleton.gcrc.couch.onUpload.conversion.AttachmentDescriptor

Copyright © 2018 www.massapicom. 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.