]> source.dussan.org Git - poi.git/commitdiff
Implement the load method on MemoryPackagePart
authorNick Burch <nick@apache.org>
Wed, 30 Mar 2011 11:34:12 +0000 (11:34 +0000)
committerNick Burch <nick@apache.org>
Wed, 30 Mar 2011 11:34:12 +0000 (11:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1086909 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java

index 26e10deab3254b1fd072584b535007aefb640b4f..2730545cceef510fde4a86a1995fe9f1a46bfbfb 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta2" date="2011-??-??">
+           <action dev="poi-developers" type="add">Implement the load method on MemoryPackagePart</action>
            <action dev="poi-developers" type="add">50967 - Support for continued ExtSSTRecords</action>
            <action dev="poi-developers" type="add">48968 - Support for HOUR, MINUTE and SECOND date formulas</action>
            <action dev="poi-developers" type="add">Added NPOIFS constructors to most POIDocument classes and their extractors, and more widely deprecated the Document(DirectoryNode, POIFSFileSystem) constructor in favour of the more general Document(DirectoryNode) one</action>
index 0d7f8d39c119161e101ba5ba83f7fd8690f11c3c..f950e2ca3b890784dda8d3b2d71e4387ca18af70 100644 (file)
@@ -18,6 +18,8 @@
 package org.apache.poi.openxml4j.opc.internal;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
@@ -27,6 +29,7 @@ import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackagePartName;
 import org.apache.poi.openxml4j.opc.internal.marshallers.ZipPartMarshaller;
+import org.apache.poi.util.IOUtils;
 
 /**
  * Memory version of a package part. Use to
@@ -111,7 +114,20 @@ public final class MemoryPackagePart extends PackagePart {
 
        @Override
        public boolean load(InputStream ios) throws InvalidFormatException {
-               throw new InvalidFormatException("Method not implemented");
+          // Grab the data
+          ByteArrayOutputStream baos = new ByteArrayOutputStream();
+          try {
+             IOUtils.copy(ios, baos);
+          } catch(IOException e) {
+             throw new InvalidFormatException(e.getMessage());
+          }
+          
+          // Save it
+          data = baos.toByteArray();
+          length = data.length;
+          
+          // All done
+          return true;
        }
 
        @Override