Mercurial > jhg
comparison src/org/tmatesoft/hg/util/PathRewrite.java @ 142:37a34044e6bd
More reasonable use of path normalizer and path.source
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 17 Feb 2011 05:06:07 +0100 |
parents | 8248aae33f7d |
children | a415fe296a50 |
comparison
equal
deleted
inserted
replaced
141:8248aae33f7d | 142:37a34044e6bd |
---|---|
18 | 18 |
19 import java.util.LinkedList; | 19 import java.util.LinkedList; |
20 import java.util.List; | 20 import java.util.List; |
21 | 21 |
22 /** | 22 /** |
23 * | 23 * File names often need transformations, like Windows-style path to Unix or human-readable data file name to storage location. |
24 * | |
24 * @author Artem Tikhomirov | 25 * @author Artem Tikhomirov |
25 * @author TMate Software Ltd. | 26 * @author TMate Software Ltd. |
26 */ | 27 */ |
27 public interface PathRewrite { | 28 public interface PathRewrite { |
28 | 29 |
38 public class Composite implements PathRewrite { | 39 public class Composite implements PathRewrite { |
39 private List<PathRewrite> chain; | 40 private List<PathRewrite> chain; |
40 | 41 |
41 public Composite(PathRewrite... e) { | 42 public Composite(PathRewrite... e) { |
42 LinkedList<PathRewrite> r = new LinkedList<PathRewrite>(); | 43 LinkedList<PathRewrite> r = new LinkedList<PathRewrite>(); |
43 for (int i = (e == null ? -1 : e.length); i >=0; i--) { | 44 for (int i = 0; e != null && i < e.length; i++) { |
44 r.addFirst(e[i]); | 45 r.addLast(e[i]); |
45 } | 46 } |
46 chain = r; | 47 chain = r; |
47 } | 48 } |
48 public Composite chain(PathRewrite e) { | 49 public Composite chain(PathRewrite e) { |
49 chain.add(e); | 50 chain.add(e); |