From: Sergey Vladimirov Date: Tue, 23 Aug 2011 16:44:06 +0000 (+0000) Subject: move poi.util.POIUtils to poi.poifs.filesystem.EntryUtils X-Git-Tag: REL_3_8_BETA5~211 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=dae2c57a0974c25b42da5fc82ecafdbab8fea549;p=poi.git move poi.util.POIUtils to poi.poifs.filesystem.EntryUtils git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1160788 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/java/org/apache/poi/POIDocument.java b/src/java/org/apache/poi/POIDocument.java index f0503a1a05..e7ec12a581 100644 --- a/src/java/org/apache/poi/POIDocument.java +++ b/src/java/org/apache/poi/POIDocument.java @@ -21,11 +21,8 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.util.Iterator; import java.util.List; -import org.apache.poi.util.POIUtils; - import org.apache.poi.hpsf.DocumentSummaryInformation; import org.apache.poi.hpsf.MutablePropertySet; import org.apache.poi.hpsf.PropertySet; @@ -33,9 +30,9 @@ import org.apache.poi.hpsf.PropertySetFactory; import org.apache.poi.hpsf.SummaryInformation; import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DirectoryNode; -import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.DocumentInputStream; import org.apache.poi.poifs.filesystem.Entry; +import org.apache.poi.poifs.filesystem.EntryUtils; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.Internal; @@ -243,7 +240,7 @@ public abstract class POIDocument { protected void copyNodes( POIFSFileSystem source, POIFSFileSystem target, List excepts ) throws IOException { - POIUtils.copyNodes( source, target, excepts ); + EntryUtils.copyNodes( source, target, excepts ); } /** @@ -256,7 +253,7 @@ public abstract class POIDocument { protected void copyNodes( DirectoryNode sourceRoot, DirectoryNode targetRoot, List excepts ) throws IOException { - POIUtils.copyNodes( sourceRoot, targetRoot, excepts ); + EntryUtils.copyNodes( sourceRoot, targetRoot, excepts ); } /** @@ -267,6 +264,6 @@ public abstract class POIDocument { protected void copyNodeRecursively( Entry entry, DirectoryEntry target ) throws IOException { - POIUtils.copyNodeRecursively( entry, target ); + EntryUtils.copyNodeRecursively( entry, target ); } } diff --git a/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java b/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java new file mode 100644 index 0000000000..deb30dae34 --- /dev/null +++ b/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java @@ -0,0 +1,99 @@ +/* ==================================================================== + 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.io.IOException; +import java.util.Iterator; +import java.util.List; + +import org.apache.poi.util.Internal; + +@Internal +public class EntryUtils +{ + + /** + * Copies an Entry into a target POIFS directory, recursively + */ + @Internal + public static void copyNodeRecursively( Entry entry, DirectoryEntry target ) + throws IOException + { + // System.err.println("copyNodeRecursively called with "+entry.getName()+ + // ","+target.getName()); + DirectoryEntry newTarget = null; + if ( entry.isDirectoryEntry() ) + { + newTarget = target.createDirectory( entry.getName() ); + Iterator entries = ( (DirectoryEntry) entry ).getEntries(); + + while ( entries.hasNext() ) + { + copyNodeRecursively( entries.next(), newTarget ); + } + } + else + { + DocumentEntry dentry = (DocumentEntry) entry; + DocumentInputStream dstream = new DocumentInputStream( dentry ); + target.createDocument( dentry.getName(), dstream ); + dstream.close(); + } + } + + /** + * Copies nodes from one POIFS to the other minus the excepts + * + * @param source + * is the source POIFS to copy from + * @param target + * is the target POIFS to copy to + * @param excepts + * is a list of Strings specifying what nodes NOT to copy + */ + public static void copyNodes( DirectoryEntry sourceRoot, + DirectoryEntry targetRoot, List excepts ) + throws IOException + { + Iterator entries = sourceRoot.getEntries(); + while ( entries.hasNext() ) + { + Entry entry = entries.next(); + if ( !excepts.contains( entry.getName() ) ) + { + copyNodeRecursively( entry, targetRoot ); + } + } + } + + /** + * Copies nodes from one POIFS to the other minus the excepts + * + * @param source + * is the source POIFS to copy from + * @param target + * is the target POIFS to copy to + * @param excepts + * is a list of Strings specifying what nodes NOT to copy + */ + public static void copyNodes( POIFSFileSystem source, + POIFSFileSystem target, List excepts ) throws IOException + { + // System.err.println("CopyNodes called"); + copyNodes( source.getRoot(), target.getRoot(), excepts ); + } +} diff --git a/src/java/org/apache/poi/util/POIUtils.java b/src/java/org/apache/poi/util/POIUtils.java deleted file mode 100644 index 3686644475..0000000000 --- a/src/java/org/apache/poi/util/POIUtils.java +++ /dev/null @@ -1,103 +0,0 @@ -/* ==================================================================== - 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.util; - -import java.io.IOException; -import java.util.Iterator; -import java.util.List; - -import org.apache.poi.poifs.filesystem.DirectoryEntry; -import org.apache.poi.poifs.filesystem.DocumentEntry; -import org.apache.poi.poifs.filesystem.DocumentInputStream; -import org.apache.poi.poifs.filesystem.Entry; -import org.apache.poi.poifs.filesystem.POIFSFileSystem; - -@Internal -public class POIUtils -{ - - /** - * Copies an Entry into a target POIFS directory, recursively - */ - @Internal - public static void copyNodeRecursively( Entry entry, DirectoryEntry target ) - throws IOException - { - // System.err.println("copyNodeRecursively called with "+entry.getName()+ - // ","+target.getName()); - DirectoryEntry newTarget = null; - if ( entry.isDirectoryEntry() ) - { - newTarget = target.createDirectory( entry.getName() ); - Iterator entries = ( (DirectoryEntry) entry ).getEntries(); - - while ( entries.hasNext() ) - { - copyNodeRecursively( entries.next(), newTarget ); - } - } - else - { - DocumentEntry dentry = (DocumentEntry) entry; - DocumentInputStream dstream = new DocumentInputStream( dentry ); - target.createDocument( dentry.getName(), dstream ); - dstream.close(); - } - } - - /** - * Copies nodes from one POIFS to the other minus the excepts - * - * @param source - * is the source POIFS to copy from - * @param target - * is the target POIFS to copy to - * @param excepts - * is a list of Strings specifying what nodes NOT to copy - */ - public static void copyNodes( DirectoryEntry sourceRoot, - DirectoryEntry targetRoot, List excepts ) - throws IOException - { - Iterator entries = sourceRoot.getEntries(); - while ( entries.hasNext() ) - { - Entry entry = entries.next(); - if ( !excepts.contains( entry.getName() ) ) - { - copyNodeRecursively( entry, targetRoot ); - } - } - } - - /** - * Copies nodes from one POIFS to the other minus the excepts - * - * @param source - * is the source POIFS to copy from - * @param target - * is the target POIFS to copy to - * @param excepts - * is a list of Strings specifying what nodes NOT to copy - */ - public static void copyNodes( POIFSFileSystem source, - POIFSFileSystem target, List excepts ) throws IOException - { - // System.err.println("CopyNodes called"); - copyNodes( source.getRoot(), target.getRoot(), excepts ); - } -} diff --git a/src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java b/src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java index 99ab39c9ac..8bffbb50e4 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java @@ -67,9 +67,9 @@ import org.apache.poi.poifs.common.POIFSConstants; import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.Entry; +import org.apache.poi.poifs.filesystem.EntryUtils; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.Internal; -import org.apache.poi.util.POIUtils; /** @@ -1003,7 +1003,7 @@ public final class HWPFDocument extends HWPFDocumentCore } else { - POIUtils.copyNodeRecursively( entry, pfs.getRoot() ); + EntryUtils.copyNodeRecursively( entry, pfs.getRoot() ); } } diff --git a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ObjectPoolImpl.java b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ObjectPoolImpl.java index aa33fd504c..c672134ec4 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ObjectPoolImpl.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ObjectPoolImpl.java @@ -21,8 +21,8 @@ import java.io.IOException; import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.Entry; +import org.apache.poi.poifs.filesystem.EntryUtils; import org.apache.poi.util.Internal; -import org.apache.poi.util.POIUtils; @Internal public class ObjectPoolImpl implements ObjectsPool @@ -54,6 +54,6 @@ public class ObjectPoolImpl implements ObjectsPool public void writeTo( DirectoryEntry directoryEntry ) throws IOException { if ( _objectPool != null ) - POIUtils.copyNodeRecursively( _objectPool, directoryEntry ); + EntryUtils.copyNodeRecursively( _objectPool, directoryEntry ); } }