Mercurial > jhg
comparison src/org/tmatesoft/hg/core/HgManifestCommand.java @ 423:9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 23 Mar 2012 22:51:18 +0100 |
parents | ee8264d80747 |
children | 6437d261048a |
comparison
equal
deleted
inserted
replaced
422:5d1cc7366d04 | 423:9c9c442b5f2e |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2011 TMate Software Ltd | 2 * Copyright (c) 2011-2012 TMate Software Ltd |
3 * | 3 * |
4 * This program is free software; you can redistribute it and/or modify | 4 * This program is free software; you can redistribute it and/or modify |
5 * it under the terms of the GNU General Public License as published by | 5 * it under the terms of the GNU General Public License as published by |
6 * the Free Software Foundation; version 2 of the License. | 6 * the Free Software Foundation; version 2 of the License. |
7 * | 7 * |
23 import java.util.ConcurrentModificationException; | 23 import java.util.ConcurrentModificationException; |
24 import java.util.LinkedHashMap; | 24 import java.util.LinkedHashMap; |
25 import java.util.LinkedList; | 25 import java.util.LinkedList; |
26 import java.util.List; | 26 import java.util.List; |
27 | 27 |
28 import org.tmatesoft.hg.internal.Callback; | |
28 import org.tmatesoft.hg.repo.HgManifest; | 29 import org.tmatesoft.hg.repo.HgManifest; |
29 import org.tmatesoft.hg.repo.HgRepository; | 30 import org.tmatesoft.hg.repo.HgRepository; |
30 import org.tmatesoft.hg.repo.HgManifest.Flags; | 31 import org.tmatesoft.hg.repo.HgManifest.Flags; |
31 import org.tmatesoft.hg.util.Path; | 32 import org.tmatesoft.hg.util.Path; |
32 import org.tmatesoft.hg.util.PathPool; | 33 import org.tmatesoft.hg.util.PathPool; |
119 } | 120 } |
120 | 121 |
121 /** | 122 /** |
122 * Callback to walk file/directory tree of a revision | 123 * Callback to walk file/directory tree of a revision |
123 */ | 124 */ |
124 public interface Handler { | 125 @Callback |
126 public interface Handler { // FIXME TLC | |
125 void begin(Nodeid manifestRevision); | 127 void begin(Nodeid manifestRevision); |
126 void dir(Path p); // optionally invoked (if walker was configured to spit out directories) prior to any files from this dir and subdirs | 128 void dir(Path p); // optionally invoked (if walker was configured to spit out directories) prior to any files from this dir and subdirs |
127 void file(HgFileRevision fileRevision); // XXX allow to check p is invalid (df.exists()) | 129 void file(HgFileRevision fileRevision); // XXX allow to check p is invalid (df.exists()) |
128 void end(Nodeid manifestRevision); | 130 void end(Nodeid manifestRevision); |
129 } | 131 } |
178 visitor.end(manifestNodeid); | 180 visitor.end(manifestNodeid); |
179 manifestNodeid = null; | 181 manifestNodeid = null; |
180 return true; | 182 return true; |
181 } | 183 } |
182 public boolean next(Nodeid nid, String fname, String flags) { | 184 public boolean next(Nodeid nid, String fname, String flags) { |
183 throw new HgBadStateException(HgManifest.Inspector2.class.getName()); | 185 throw new IllegalStateException(HgManifest.Inspector2.class.getName()); |
184 } | 186 } |
185 | 187 |
186 public boolean next(Nodeid nid, Path fname, Flags flags) { | 188 public boolean next(Nodeid nid, Path fname, Flags flags) { |
187 if (matcher != null && !matcher.accept(fname)) { | 189 if (matcher != null && !matcher.accept(fname)) { |
188 return true; | 190 return true; |