Always use a single WindowCache for the entire JVM
[egit/imyousuf.git] / org.spearce.jgit / src / org / spearce / jgit / lib / TreeVisitor.java
blobefb8473156dd597c494d8e4a43ad1f43243dace7
1 /*
2 * Copyright (C) 2006 Shawn Pearce <spearce@spearce.org>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public
6 * License, version 2, as published by the Free Software Foundation.
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
17 package org.spearce.jgit.lib;
19 import java.io.IOException;
21 /**
22 * A TreeVisitor is invoked depth first for every node in a tree and is expected
23 * to perform different actions.
25 public interface TreeVisitor {
26 /**
27 * Visit to a tree node before child nodes are visited.
29 * @param t
30 * Tree
31 * @throws IOException
33 public void startVisitTree(final Tree t) throws IOException;
35 /**
36 * Visit to a tree node. after child nodes have been visited.
38 * @param t Tree
39 * @throws IOException
41 public void endVisitTree(final Tree t) throws IOException;
43 /**
44 * Visit to a blob.
46 * @param f Blob
47 * @throws IOException
49 public void visitFile(final FileTreeEntry f) throws IOException;
51 /**
52 * Visit to a symlink.
54 * @param s Symlink entry
55 * @throws IOException
57 public void visitSymlink(final SymlinkTreeEntry s) throws IOException;