예제 #1
0
 @Override
 public ContentStream getContent(StoredObject so, long offset, long length) {
   if (so instanceof Content) {
     Content content = (Content) so;
     ContentStream contentStream = content.getContent();
     if (null == contentStream) {
       return null;
     } else if (offset <= 0 && length < 0) {
       return contentStream;
     } else {
       return ((ContentStreamDataImpl) contentStream).getCloneWithLimits(offset, length);
     }
   } else {
     throw new CmisInvalidArgumentException(
         "Cannot set content, object does not implement interface Content.");
   }
 }
예제 #2
0
  @Override
  public void appendContent(StoredObject so, ContentStream contentStream) {
    if (so instanceof Content) {
      Content content = (Content) so;
      ContentStreamDataImpl newContent = (ContentStreamDataImpl) content.getContent();

      if (null == newContent) {
        content.setContent(null);
      } else {
        try {
          newContent.appendContent(contentStream.getStream());
        } catch (IOException e) {
          throw new CmisStorageException("Failed to append content: IO Exception", e);
        }
      }
    } else {
      throw new CmisInvalidArgumentException(
          "Cannot set content, object does not implement interface Content.");
    }
  }
예제 #3
0
  @Override
  public ContentStream setContent(StoredObject so, ContentStream contentStream) {
    if (so instanceof Content) {
      ContentStreamDataImpl newContent;
      Content content = (Content) so;

      if (null == contentStream) {
        newContent = null;
      } else {
        boolean useFakeContentStore =
            so.getTypeId().equals(DefaultTypeSystemCreator.BIG_CONTENT_FAKE_TYPE);
        newContent =
            new ContentStreamDataImpl(
                MAX_CONTENT_SIZE_KB == null ? 0 : MAX_CONTENT_SIZE_KB, useFakeContentStore);
        String fileName = contentStream.getFileName();
        if (null == fileName || fileName.length() <= 0) {
          fileName = so.getName(); // use name of document as fallback
        }
        newContent.setFileName(fileName);
        String mimeType = contentStream.getMimeType();
        if (null == mimeType || mimeType.length() <= 0) {
          mimeType = "application/octet-stream"; // use as fallback
        }
        newContent.setMimeType(mimeType);
        newContent.setLastModified(new GregorianCalendar());
        try {
          newContent.setContent(contentStream.getStream());
        } catch (IOException e) {
          throw new CmisRuntimeException("Failed to get content from InputStream", e);
        }
      }
      content.setContent(newContent);
      return newContent;

    } else {
      throw new CmisInvalidArgumentException(
          "Cannot set content, object does not implement interface Content.");
    }
  }