From 6bbdfeb61d489a534e4844a874d7f1c9d406ea06 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Wed, 20 Jul 2016 22:13:03 +0000 Subject: [PATCH] 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 --- .../org/apache/poi/POIReadOnlyDocument.java | 59 +++++++++++++++++++ .../src/org/apache/poi/hpbf/HPBFDocument.java | 9 +-- 2 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 src/scratchpad/src/org/apache/poi/POIReadOnlyDocument.java 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/"); - } }