From af435daae8e16c39e64bdb9216f3471326ddbb56 Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Thu, 15 May 2008 15:23:38 +0000 Subject: [PATCH] added a set accessor for embedded ole data git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@656699 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hslf/record/ExOleObjStg.java | 14 ++++++++++++-- .../org/apache/poi/hslf/usermodel/ObjectData.java | 10 ++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java b/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java index f729c2da1a..c7408b0fe4 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java +++ b/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java @@ -90,8 +90,18 @@ public class ExOleObjStg extends RecordAtom implements PersistRecord { return new InflaterInputStream(compressedStream); } - public void setData(byte[] data) throws IOException { - ByteArrayOutputStream out = new ByteArrayOutputStream(data.length); + /** + * Sets the embedded data. + * + * @param data the embedded data. + */ + public void setData(byte[] data) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + //first four bytes is the length of the raw data + byte[] b = new byte[4]; + LittleEndian.putInt(b, data.length); + out.write(b); + DeflaterOutputStream def = new DeflaterOutputStream(out); def.write(data, 0, data.length); def.finish(); diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java index 957e78868e..bbef87a96c 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java @@ -17,6 +17,7 @@ package org.apache.poi.hslf.usermodel; import java.io.InputStream; +import java.io.IOException; import org.apache.poi.hslf.record.ExOleObjStg; @@ -49,6 +50,15 @@ public class ObjectData { return storage.getData(); } + /** + * Sets the embedded data. + * + * @param data the embedded data. + */ + public void setData(byte[] data) throws IOException { + storage.setData(data); + } + /** * Return the record that contains the object data. * -- 2.39.5