123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
-
- /* ====================================================================
- 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.poifs.filesystem;
-
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
-
- import org.apache.poi.poifs.dev.POIFSViewable;
- import org.apache.poi.poifs.property.DocumentProperty;
-
- /**
- * Simple implementation of DocumentEntry for OPOIFS
- */
- public class DocumentNode
- extends EntryNode
- implements DocumentEntry, POIFSViewable
- {
-
- // underlying POIFSDocument instance
- private POIFSDocument _document;
-
- /**
- * create a DocumentNode. This method is not public by design; it
- * is intended strictly for the internal use of this package
- *
- * @param property the DocumentProperty for this DocumentEntry
- * @param parent the parent of this entry
- */
-
- DocumentNode(final DocumentProperty property, final DirectoryNode parent)
- {
- super(property, parent);
- _document = property.getDocument();
- }
-
- /**
- * get the POIFSDocument
- *
- * @return the internal POIFSDocument
- */
- POIFSDocument getDocument()
- {
- return _document;
- }
-
- /* ********** START implementation of DocumentEntry ********** */
-
- /**
- * get the zize of the document, in bytes
- *
- * @return size in bytes
- */
-
- public int getSize()
- {
- return getProperty().getSize();
- }
-
- /* ********** END implementation of DocumentEntry ********** */
- /* ********** START implementation of Entry ********** */
-
- /**
- * is this a DocumentEntry?
- *
- * @return true if the Entry is a DocumentEntry, else false
- */
-
- @Override
- public boolean isDocumentEntry()
- {
- return true;
- }
-
- /* ********** END implementation of Entry ********** */
- /* ********** START extension of Entry ********** */
-
- /**
- * extensions use this method to verify internal rules regarding
- * deletion of the underlying store.
- *
- * @return true if it's ok to delete the underlying store, else
- * false
- */
-
- @Override
- protected boolean isDeleteOK()
- {
- return true;
- }
-
- /* ********** END extension of Entry ********** */
- /* ********** START begin implementation of POIFSViewable ********** */
-
- /**
- * Get an array of objects, some of which may implement
- * POIFSViewable
- *
- * @return an array of Object; may not be null, but may be empty
- */
-
- public Object [] getViewableArray()
- {
- return new Object[ 0 ];
- }
-
- /**
- * Get an Iterator of objects, some of which may implement
- * POIFSViewable
- *
- * @return an Iterator; may not be null, but may have an empty
- * back end store
- */
-
- public Iterator<Object> getViewableIterator()
- {
- List<Object> components = new ArrayList<>();
-
- components.add(getProperty());
- if (_document != null) {
- components.add(_document);
- }
- return components.iterator();
- }
-
- /**
- * Give viewers a hint as to whether to call getViewableArray or
- * getViewableIterator
- *
- * @return true if a viewer should call getViewableArray, false if
- * a viewer should call getViewableIterator
- */
-
- public boolean preferArray()
- {
- return false;
- }
-
- /**
- * Provides a short description of the object, to be used when a
- * POIFSViewable object has not provided its contents.
- *
- * @return short description
- */
-
- public String getShortDescription()
- {
- return getName();
- }
-
- /* ********** END begin implementation of POIFSViewable ********** */
- } // end public class DocumentNode
|