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

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


    serverWork.setOrientationLevel(UploadConstants.SERVER_ORIENTATION_VALUE);
  }

  public void createThumbnail(FileConversionContext conversionContext) throws Exception {
    // Get file
    AttachmentDescriptor attDescription = conversionContext.getAttachmentDescription();
    String mimeType = attDescription.getContentType();
    File inFile = File.createTempFile("original_", attDescription.getMediaFileName());
    conversionContext.downloadFile(inFile);

    File outFile = File.createTempFile("thumb_", attDescription.getMediaFileName());
   
    // Perform thumbnail
    MultimediaConversionRequest request = new MultimediaConversionRequest();
    request.setInFile( inFile );
    request.setThumbnailFile(outFile);
    request.setThumbnailRequested(true);
   
    MultimediaClass mmClass = MimeUtils.getMultimediaClassFromMimeType(mimeType);
    if( MultimediaClass.IMAGE == mmClass ) {
      // For image file, convert to appropriate file type
      mmConverter.createImageThumbnail(request);
     
    } else {
      throw new Exception("Unknown multimedia class: "+mmClass);
    }

    // Compute attachment name
    SystemFile thumbSf = SystemFile.getSystemFile(outFile);
   
    String thumbExtension = "";
    {
      String name = outFile.getName();
      int index = name.lastIndexOf('.');
      if( index > 0 ){
        thumbExtension = name.substring(index+1);
      }
    }
   
    String thumbnailAttachmentName = computeThumbnailName(attDescription.getAttachmentName(),thumbExtension);
   
    // Upload thumbnail
    String thumbMimeType = thumbSf.getMimeType();
    conversionContext.uploadFile(thumbnailAttachmentName, outFile, thumbMimeType);
   
    // Report thumbnail object
    if( request.isThumbnailCreated() ) {
     
      AttachmentDescriptor thumbnailObj = conversionContext.getAttachmentDescription(thumbnailAttachmentName);

      thumbnailObj.setStatus(UploadConstants.UPLOAD_STATUS_ATTACHED);
      thumbnailObj.setFileClass("image");
      thumbnailObj.setOriginalName(attDescription.getOriginalName());
      thumbnailObj.setSource(attDescription.getAttachmentName());

      thumbnailObj.setSize(outFile.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);
    }
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

   
    logger.debug("PDF end perform work: "+work);
  }

  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();

    // Perform conversion(s)
    MultimediaConversionRequest request = new MultimediaConversionRequest();
    request.setInFile( originalFile );
    request.setThumbnailRequested(true);
    request.setSkipConversion(true);
    mmConverter.convertImage(request);
   
    // Report original size
    if( request.getInHeight() != 0 && request.getInWidth() != 0 ) {
      originalObj.setHeight( request.getInHeight() );
      originalObj.setWidth( request.getInWidth() );
    }

    // Original object is the main object
    {
      attDescription.setMediaFileName(originalObj.getMediaFileName());
      attDescription.setContentType(originalObj.getContentType());
      attDescription.setEncodingType(originalObj.getEncodingType());
      attDescription.setSize(originalObj.getSize());
      if( request.getInHeight() != 0 && request.getInWidth() != 0 ) {
        attDescription.setHeight(request.getInHeight());
        attDescription.setWidth(request.getInWidth());
      }
    }

    // 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);
    }
  }
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

    logger.debug("GeoJSON end perform work: "+work);
  }

  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

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

  public void approveFile(FileConversionContext approvedContext) throws Exception {

    AttachmentDescriptor attDescription = approvedContext.getAttachmentDescription();
   
    String fullFileName = null;
    FileInputStream fis = null;
    try {
      File file = attDescription.getMediaFile();
      fullFileName = file.getAbsolutePath();
     
      fis = new FileInputStream(file);
      InputStreamReader reader = new InputStreamReader(fis,"UTF-8");
     
      GeoJsonParser parser = new GeoJsonParser();
      List<GeoJsonFeature> features = parser.parse(reader);

      fis.close();
      fis = null;
     
      logger.debug("Number of uploaded features: "+features.size());

      int count = 0;
      try {
        for(GeoJsonFeature feature : features){
          ++count;
          logger.debug("Creating geojson feature: "+count);

          uploadFeature(feature, approvedContext);
        }
      } catch(Exception e) {
        throw new Exception("Error while uploading GeoJSON features",e);
      }

      logger.debug("Done creating geojson features");
     
      JSONObject doc = approvedContext.getDoc();

      logger.debug("Obtained document");
     
      // Create layer definition
      {
        JSONObject layerDef = new JSONObject();
       
        layerDef.put("nunaliit_type", "layerDefinition");
        layerDef.put("id", approvedContext.getId());

        String originalFileName = attDescription.getOriginalName();
       
        if( null != originalFileName ) {
          layerDef.put("name", "GeoJSON - "+originalFileName);

        } else {
          layerDef.put("name", "GeoJSON");
        }
       

        logger.debug("Computing BBOX");

        // BBOX
        {
          boolean include = false;
          BoundingBox boundingBox = new BoundingBox();
          for(GeoJsonFeature feature : features){
            Geometry geometry = feature.getGeometry();
            if( null != geometry ){
              geometry.extendBoundingBox(boundingBox);
              include = true;
            }
          }
          if( include ){
            JSONArray bbox = new JSONArray();
            bbox.put( boundingBox.getMinX() );
            bbox.put( boundingBox.getMinY() );
            bbox.put( boundingBox.getMaxX() );
            bbox.put( boundingBox.getMaxY() );

            layerDef.put("bbox", bbox);
          }
        }
       
        doc.put("nunaliit_layer_definition", layerDef);
        approvedContext.setSavingRequired(true);
      }
     
      logger.debug("Updating layer definition document: "+doc.getString("_id"));
     
      // Save changes to document
      approvedContext.saveDocument();
     
      logger.debug("Uploading file: "+approvedContext.getAttachmentName());
     
      // Upload original file
      approvedContext.uploadFile(
        approvedContext.getAttachmentName()
        ,attDescription.getMediaFile()
        ,"application/xml"
        );
     
    } catch(Exception e) {
      throw new Exception("Unable to convert using GeoJSON: "+fullFileName,e);
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

    logger.debug("GeoJSON end perform work: "+work);
  }

  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

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

  public void approveFile(FileConversionContext approvedContext) throws Exception {

    AttachmentDescriptor attDescription = approvedContext.getAttachmentDescription();
   
    String fullFileName = null;
    FileInputStream fis = null;
    try {
      File file = attDescription.getMediaFile();
      fullFileName = file.getAbsolutePath();
     
      fis = new FileInputStream(file);
      InputStreamReader reader = new InputStreamReader(fis,"UTF-8");
     
      GeoJsonParser parser = new GeoJsonParser();
      List<GeoJsonFeature> features = parser.parse(reader);

      fis.close();
      fis = null;
     
      logger.debug("Number of uploaded features: "+features.size());

      int count = 0;
      try {
        for(GeoJsonFeature feature : features){
          ++count;
          logger.debug("Creating geojson feature: "+count);

          uploadFeature(feature, approvedContext);
        }
      } catch(Exception e) {
        throw new Exception("Error while uploading GeoJSON features",e);
      }

      logger.debug("Done creating geojson features");
     
      JSONObject doc = approvedContext.getDoc();

      logger.debug("Obtained document");
     
      // Create layer definition
      {
        JSONObject layerDef = new JSONObject();
       
        layerDef.put("nunaliit_type", "layerDefinition");
        layerDef.put("id", approvedContext.getId());

        String originalFileName = attDescription.getOriginalName();
       
        if( null != originalFileName ) {
          layerDef.put("name", "GeoJSON - "+originalFileName);

        } else {
          layerDef.put("name", "GeoJSON");
        }
       

        logger.debug("Computing BBOX");

        // BBOX
        {
          boolean include = false;
          BoundingBox boundingBox = new BoundingBox();
          for(GeoJsonFeature feature : features){
            Geometry geometry = feature.getGeometry();
            if( null != geometry ){
              geometry.extendBoundingBox(boundingBox);
              include = true;
            }
          }
          if( include ){
            JSONArray bbox = new JSONArray();
            bbox.put( boundingBox.getMinX() );
            bbox.put( boundingBox.getMinY() );
            bbox.put( boundingBox.getMaxX() );
            bbox.put( boundingBox.getMaxY() );

            layerDef.put("bbox", bbox);
          }
        }
       
        doc.put("nunaliit_layer_definition", layerDef);
        approvedContext.setSavingRequired(true);
      }
     
      logger.debug("Updating layer definition document: "+doc.getString("_id"));
     
      // Save changes to document
      approvedContext.saveDocument();
     
      logger.debug("Uploading file: "+approvedContext.getAttachmentName());
     
      // Upload original file
      approvedContext.uploadFile(
        approvedContext.getAttachmentName()
        ,attDescription.getMediaFile()
        ,"application/xml"
        );
     
    } catch(Exception e) {
      throw new Exception("Unable to convert using GeoJSON: "+fullFileName,e);
View Full Code Here

    }
  }

  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

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.