Author: sergey
Date: Mon Aug 22 08:50:48 2011
New Revision: 1160146

URL: http://svn.apache.org/viewvc?rev=1160146&view=rev
Log:
move POI FS entries copy methods to new POIUtils class

Added:
    poi/trunk/src/java/org/apache/poi/util/POIUtils.java
Modified:
    poi/trunk/src/java/org/apache/poi/POIDocument.java

Modified: poi/trunk/src/java/org/apache/poi/POIDocument.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/POIDocument.java?rev=1160146&r1=1160145&r2=1160146&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/POIDocument.java (original)
+++ poi/trunk/src/java/org/apache/poi/POIDocument.java Mon Aug 22 08:50:48 2011
@@ -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 );
+    }
 }

Added: poi/trunk/src/java/org/apache/poi/util/POIUtils.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/POIUtils.java?rev=1160146&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/POIUtils.java (added)
+++ poi/trunk/src/java/org/apache/poi/util/POIUtils.java Mon Aug 22 08:50:48 
2011
@@ -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 );
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to