]> source.dussan.org Git - poi.git/commitdiff
move POI FS entries copy methods to new POIUtils class
authorSergey Vladimirov <sergey@apache.org>
Mon, 22 Aug 2011 08:50:48 +0000 (08:50 +0000)
committerSergey Vladimirov <sergey@apache.org>
Mon, 22 Aug 2011 08:50:48 +0000 (08:50 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1160146 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/POIDocument.java
src/java/org/apache/poi/util/POIUtils.java [new file with mode: 0644]

index fad5b47bc0453260f2f3f070d03f5d16c8faaea0..f0503a1a05fe45cfdcf0cb096e879adfad60a776 100644 (file)
@@ -24,6 +24,8 @@ 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;
@@ -237,50 +239,34 @@ public abstract class POIDocument {
         * @param target is the target POIFS to copy to
         * @param excepts is a list of Strings specifying what nodes NOT to copy
         */
-       protected void copyNodes(POIFSFileSystem source, POIFSFileSystem target,
-                                 List<String> excepts) throws IOException {
-               //System.err.println("CopyNodes called");
-          copyNodes(source.getRoot(), target.getRoot(), excepts);
-       }
-               
+       @Deprecated
+    protected void copyNodes( POIFSFileSystem source, POIFSFileSystem target,
+            List<String> excepts ) throws IOException
+    {
+        POIUtils.copyNodes( source, target, excepts );
+    }
+
    /**
     * 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
     */
-   protected void copyNodes(DirectoryNode sourceRoot, DirectoryNode targetRoot,
-                             List<String> excepts) throws IOException {
-      Iterator<Entry> entries = sourceRoot.getEntries();
-      while (entries.hasNext()) {
-         Entry entry = entries.next();
-         if (!excepts.contains(entry.getName())) {
-            copyNodeRecursively(entry,targetRoot);
-         }
-      }
-   }
-      
+    @Deprecated
+    protected void copyNodes( DirectoryNode sourceRoot,
+            DirectoryNode targetRoot, List<String> excepts ) throws IOException
+    {
+        POIUtils.copyNodes( sourceRoot, targetRoot, excepts );
+    }
+
        /**
         * Copies an Entry into a target POIFS directory, recursively
         */
     @Internal
-       protected 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<Entry> 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();
-               }
-       }
+    @Deprecated
+    protected void copyNodeRecursively( Entry entry, DirectoryEntry target )
+            throws IOException
+    {
+        POIUtils.copyNodeRecursively( entry, target );
+    }
 }
diff --git a/src/java/org/apache/poi/util/POIUtils.java b/src/java/org/apache/poi/util/POIUtils.java
new file mode 100644 (file)
index 0000000..fa057bc
--- /dev/null
@@ -0,0 +1,103 @@
+/* ====================================================================
+   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.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.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<Entry> 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( DirectoryNode sourceRoot,
+            DirectoryNode targetRoot, List<String> excepts ) throws IOException
+    {
+        Iterator<Entry> 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<String> excepts ) throws IOException
+    {
+        // System.err.println("CopyNodes called");
+        copyNodes( source.getRoot(), target.getRoot(), excepts );
+    }
+}