LibreOffice Module xmerge (master) 1
EmbeddedBinaryObject.java
Go to the documentation of this file.
1/*
2 * This file is part of the LibreOffice project.
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 *
8 * This file incorporates work covered by the following license notice:
9 *
10 * Licensed to the Apache Software Foundation (ASF) under one or more
11 * contributor license agreements. See the NOTICE file distributed
12 * with this work for additional information regarding copyright
13 * ownership. The ASF licenses this file to you under the Apache
14 * License, Version 2.0 (the "License"); you may not use this file
15 * except in compliance with the License. You may obtain a copy of
16 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
17 */
18
19package org.openoffice.xmerge.converter.xml;
20
21import org.w3c.dom.Document;
22import org.w3c.dom.DOMException;
23import org.w3c.dom.Element;
24
30
32 private byte[] objData = null;
33
40 public EmbeddedBinaryObject(String name, String type) {
41 super(name, type);
42 }
43
53 EmbeddedBinaryObject(String name, String type, OfficeZip source) {
54 super(name, type, source);
55 }
56
62 public byte[] getBinaryData() {
63
64 // See if we came from a Zip file
65 if (objData == null && zipFile != null) {
66 objData = zipFile.getNamedBytes(objName);
67 }
68
69 return objData;
70 }
71
77 public void setBinaryData(byte[] data) {
78 objData = data;
79 hasChanged = true;
80 }
81
89 @Override
90 void write(OfficeZip zip) {
91 if (hasChanged) {
92 zip.setNamedBytes(objName, objData);
93 }
94 }
95
100 @Override
101 void writeManifestData(Document manifestDoc) throws DOMException {
102 Element objNode = manifestDoc.createElement(OfficeConstants.TAG_MANIFEST_FILE);
103
104 objNode.setAttribute(OfficeConstants.ATTRIBUTE_MANIFEST_FILE_TYPE, objType);
105 objNode.setAttribute(OfficeConstants.ATTRIBUTE_MANIFEST_FILE_PATH, objName);
106
107 manifestDoc.getDocumentElement().appendChild(objNode);
108 }
109}
This class represents embedded object's in an OpenOffice.org document that have a binary representati...
void setBinaryData(byte[] data)
Sets the data for this object.
EmbeddedBinaryObject(String name, String type)
Constructor for an embedded object stored using an XML representation.
byte[] getBinaryData()
This method returns the data for this object.
boolean hasChanged
Flag indicating if this document has changed since reading or is new.
OfficeZip zipFile
Representation of the file from which this object was read.
const char * name
A Document represents any Document to be converted and the resulting Document from any conversion.
Definition: Document.java:36
ResultType type