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);