aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2016-07-20 22:13:03 +0000
committerNick Burch <nick@apache.org>2016-07-20 22:13:03 +0000
commit6bbdfeb61d489a534e4844a874d7f1c9d406ea06 (patch)
tree669dea8f775e3bf25f14b315e9d6fdee1f7cf8da
parentfcee96add176675c3b109683060829c0a93d0fd7 (diff)
downloadpoi-6bbdfeb61d489a534e4844a874d7f1c9d406ea06.tar.gz
poi-6bbdfeb61d489a534e4844a874d7f1c9d406ea06.zip
Helper class for implementing extra write methods (#57919) for Scratchpad classes which are read-only
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1753617 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/scratchpad/src/org/apache/poi/POIReadOnlyDocument.java59
-rw-r--r--src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java9
2 files changed, 61 insertions, 7 deletions
diff --git a/src/scratchpad/src/org/apache/poi/POIReadOnlyDocument.java b/src/scratchpad/src/org/apache/poi/POIReadOnlyDocument.java
new file mode 100644
index 0000000000..27ba446a22
--- /dev/null
+++ b/src/scratchpad/src/org/apache/poi/POIReadOnlyDocument.java
@@ -0,0 +1,59 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import org.apache.poi.poifs.filesystem.DirectoryNode;
+import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
+import org.apache.poi.poifs.filesystem.OPOIFSFileSystem;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+
+
+/**
+ * This holds the common functionality for all read-only
+ * POI Document classes, i.e. ones which don't support writing.
+ */
+public abstract class POIReadOnlyDocument extends POIDocument {
+ public POIReadOnlyDocument(DirectoryNode dir) {
+ super(dir);
+ }
+ public POIReadOnlyDocument(NPOIFSFileSystem fs) {
+ super(fs);
+ }
+ public POIReadOnlyDocument(OPOIFSFileSystem fs) {
+ super(fs);
+ }
+ public POIReadOnlyDocument(POIFSFileSystem fs) {
+ super(fs);
+ }
+
+// @Override
+// public void write() throws IOException {
+// throw new IllegalStateException("Writing is not yet implemented for this Document Format");
+// }
+// @Override
+// public void write(File file) throws IOException {
+// throw new IllegalStateException("Writing is not yet implemented for this Document Format");
+// }
+ @Override
+ public void write(OutputStream out) throws IOException {
+ throw new IllegalStateException("Writing is not yet implemented for this Document Format");
+ }
+}
diff --git a/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java b/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java
index fb046c8034..764fa21509 100644
--- a/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java
+++ b/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java
@@ -19,9 +19,8 @@ package org.apache.poi.hpbf;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
-import org.apache.poi.POIDocument;
+import org.apache.poi.POIReadOnlyDocument;
import org.apache.poi.hpbf.model.EscherDelayStm;
import org.apache.poi.hpbf.model.EscherStm;
import org.apache.poi.hpbf.model.MainContents;
@@ -35,7 +34,7 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
* for HPBF, our implementation of the publisher
* file format.
*/
-public final class HPBFDocument extends POIDocument {
+public final class HPBFDocument extends POIReadOnlyDocument {
private MainContents mainContents;
private QuillContents quillContents;
private EscherStm escherStm;
@@ -83,8 +82,4 @@ public final class HPBFDocument extends POIDocument {
public EscherDelayStm getEscherDelayStm() {
return escherDelayStm;
}
-
- public void write(OutputStream out) throws IOException {
- throw new IllegalStateException("Writing is not yet implemented, see http://poi.apache.org/hpbf/");
- }
}