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
This commit is contained in:
Nick Burch 2016-07-20 22:13:03 +00:00
parent 8e50c77100
commit 9830fd3dca
2 changed files with 61 additions and 7 deletions

View File

@ -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");
}
}

View File

@ -19,9 +19,8 @@ package org.apache.poi.hpbf;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; 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.EscherDelayStm;
import org.apache.poi.hpbf.model.EscherStm; import org.apache.poi.hpbf.model.EscherStm;
import org.apache.poi.hpbf.model.MainContents; 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 * for HPBF, our implementation of the publisher
* file format. * file format.
*/ */
public final class HPBFDocument extends POIDocument { public final class HPBFDocument extends POIReadOnlyDocument {
private MainContents mainContents; private MainContents mainContents;
private QuillContents quillContents; private QuillContents quillContents;
private EscherStm escherStm; private EscherStm escherStm;
@ -83,8 +82,4 @@ public final class HPBFDocument extends POIDocument {
public EscherDelayStm getEscherDelayStm() { public EscherDelayStm getEscherDelayStm() {
return escherDelayStm; return escherDelayStm;
} }
public void write(OutputStream out) throws IOException {
throw new IllegalStateException("Writing is not yet implemented, see http://poi.apache.org/hpbf/");
}
} }