Convert POIFS EntryUtils.copyNodes(POFS,POIFS) to use FilteringDirectoryNode, so can exclude from copying nodes not just directly under the root
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1207445 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9874de32e3
commit
c3072e1efc
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.8-beta5" date="2011-??-??">
|
<release version="3.8-beta5" date="2011-??-??">
|
||||||
|
<action dev="poi-developers" type="add">POIFS EntryUtils.copyNodes(POFS,POIFS) now uses FilteringDirectoryNode, so can exclude from copying nodes not just directly under the root</action>
|
||||||
<action dev="poi-developers" type="add">POIFS Helper FilteringDirectoryNode, which wraps a DirectoryEntry and allows certain parts to be ignored</action>
|
<action dev="poi-developers" type="add">POIFS Helper FilteringDirectoryNode, which wraps a DirectoryEntry and allows certain parts to be ignored</action>
|
||||||
<action dev="poi-developers" type="fix">52209 - fixed inserting multiple pictures in XSLF </action>
|
<action dev="poi-developers" type="fix">52209 - fixed inserting multiple pictures in XSLF </action>
|
||||||
<action dev="poi-developers" type="fix">51803 - fixed HSLF TextExtractor to extract content from master slide </action>
|
<action dev="poi-developers" type="fix">51803 - fixed HSLF TextExtractor to extract content from master slide </action>
|
||||||
|
@ -59,15 +59,48 @@ public class EntryUtils
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copies nodes from one POIFS to the other minus the excepts
|
* Copies all the nodes from one POIFS Directory to another
|
||||||
*
|
*
|
||||||
* @param source
|
* @param source
|
||||||
* is the source POIFS to copy from
|
* is the source Directory to copy from
|
||||||
* @param target
|
* @param target
|
||||||
* is the target POIFS to copy to
|
* is the target Directory to copy to
|
||||||
* @param excepts
|
* @param excepts
|
||||||
* is a list of Strings specifying what nodes NOT to copy
|
* is a list of Strings specifying what nodes NOT to copy
|
||||||
*/
|
*/
|
||||||
|
public static void copyNodes(DirectoryEntry sourceRoot,
|
||||||
|
DirectoryEntry targetRoot) throws IOException
|
||||||
|
{
|
||||||
|
for (Entry entry : sourceRoot) {
|
||||||
|
copyNodeRecursively( entry, targetRoot );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copies nodes from one Directory to the other minus the excepts
|
||||||
|
*
|
||||||
|
* @param source The filtering source Directory to copy from
|
||||||
|
* @param target The filtering target Directory to copy to
|
||||||
|
*/
|
||||||
|
public static void copyNodes( FilteringDirectoryNode filteredSource,
|
||||||
|
FilteringDirectoryNode filteredTarget ) throws IOException
|
||||||
|
{
|
||||||
|
// Nothing special here, just overloaded types to make the
|
||||||
|
// recommended new way to handle this clearer
|
||||||
|
copyNodes( (DirectoryEntry)filteredSource, (DirectoryEntry)filteredTarget );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copies nodes from one Directory to the other minus the excepts
|
||||||
|
*
|
||||||
|
* @param source
|
||||||
|
* is the source Directory to copy from
|
||||||
|
* @param target
|
||||||
|
* is the target Directory to copy to
|
||||||
|
* @param excepts
|
||||||
|
* is a list of Strings specifying what nodes NOT to copy
|
||||||
|
* @deprecated use {@link FilteringDirectoryNode} instead
|
||||||
|
*/
|
||||||
public static void copyNodes( DirectoryEntry sourceRoot,
|
public static void copyNodes( DirectoryEntry sourceRoot,
|
||||||
DirectoryEntry targetRoot, List<String> excepts )
|
DirectoryEntry targetRoot, List<String> excepts )
|
||||||
throws IOException
|
throws IOException
|
||||||
@ -84,20 +117,36 @@ public class EntryUtils
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copies nodes from one POIFS to the other minus the excepts
|
* Copies all nodes from one POIFS to the other
|
||||||
*
|
*
|
||||||
* @param source
|
* @param source
|
||||||
* is the source POIFS to copy from
|
* is the source POIFS to copy from
|
||||||
* @param target
|
* @param target
|
||||||
* is the target POIFS to copy to
|
* 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 ) throws IOException
|
||||||
|
{
|
||||||
|
copyNodes( source.getRoot(), target.getRoot() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copies nodes from one POIFS to the other, minus the excepts.
|
||||||
|
* This delegates the filtering work to {@link FilteringDirectoryNode},
|
||||||
|
* so excepts can be of the form "NodeToExclude" or
|
||||||
|
* "FilteringDirectory/ExcludedChildNode"
|
||||||
|
*
|
||||||
|
* @param source is the source POIFS to copy from
|
||||||
|
* @param target is the target POIFS to copy to
|
||||||
|
* @param excepts is a list of Entry Names to be excluded from the copy
|
||||||
*/
|
*/
|
||||||
public static void copyNodes( POIFSFileSystem source,
|
public static void copyNodes( POIFSFileSystem source,
|
||||||
POIFSFileSystem target, List<String> excepts ) throws IOException
|
POIFSFileSystem target, List<String> excepts ) throws IOException
|
||||||
{
|
{
|
||||||
// System.err.println("CopyNodes called");
|
copyNodes(
|
||||||
copyNodes( source.getRoot(), target.getRoot(), excepts );
|
new FilteringDirectoryNode(source.getRoot(), excepts),
|
||||||
|
new FilteringDirectoryNode(target.getRoot(), excepts)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user