From fd5b4a4e4f76c2b8025032947d81355bc9c73db8 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Wed, 30 Mar 2011 11:34:12 +0000 Subject: [PATCH] Implement the load method on MemoryPackagePart git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1086909 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 1 + .../opc/internal/MemoryPackagePart.java | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 26e10deab3..2730545cce 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + Implement the load method on MemoryPackagePart 50967 - Support for continued ExtSSTRecords 48968 - Support for HOUR, MINUTE and SECOND date formulas 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 diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java b/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java index 0d7f8d39c1..f950e2ca3b 100644 --- a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java +++ b/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java @@ -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 -- 2.39.5