Browse Source

Enable reuse of FileTreeIterator and FileEntry for non subclasses

For EGit change I2c41d86b8b74c2a334433de1bbfed5b36af872bf,
ContainerTreeIterator also needs to create entries for File objects in
case of filtered resources. Instead of reimplementing FileEntry there,
make the constructor public so that it can be reused.

Also allow to pass a WorkingTreeIterator instead of a FileTreeIterator
in FileTreeIterator's constructor, which is enough and allows to pass
other subclasses.

Bug: 358901
Change-Id: Ie0f9c9434ef7d73a8d73d4fe46db4147ded1d267
Signed-off-by: Chris Aniszczyk <zx@twitter.com>
tags/v2.2.0.201212191850-r
Robin Stocker 11 years ago
parent
commit
4213a91c97
1 changed files with 11 additions and 2 deletions
  1. 11
    2
      org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java

+ 11
- 2
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java View File

@@ -120,7 +120,8 @@ public class FileTreeIterator extends WorkingTreeIterator {
* the subdirectory. This should be a directory contained within
* the parent directory.
*/
protected FileTreeIterator(final FileTreeIterator p, final File root, FS fs) {
protected FileTreeIterator(final WorkingTreeIterator p, final File root,
FS fs) {
super(p);
directory = root;
this.fs = fs;
@@ -155,7 +156,15 @@ public class FileTreeIterator extends WorkingTreeIterator {

private long lastModified;

FileEntry(final File f, FS fs) {
/**
* Create a new file entry.
*
* @param f
* file
* @param fs
* file system
*/
public FileEntry(final File f, FS fs) {
file = f;

if (f.isDirectory()) {

Loading…
Cancel
Save