1 32 package net.sf.retrotranslator.transformer; 33 34 import java.util.*; 35 36 39 class Backport { 40 41 private String originalPrefix; 42 private String replacementPrefix; 43 private String originalName; 44 private String replacementName; 45 46 public Backport(String originalPrefix, String replacementPrefix, String originalName, String replacementName) { 47 this.originalPrefix = originalPrefix; 48 this.replacementPrefix = replacementPrefix; 49 this.originalName = originalName; 50 this.replacementName = replacementName; 51 } 52 53 public String getOriginalPrefix() { 54 return originalPrefix; 55 } 56 57 public String getReplacementPrefix() { 58 return replacementPrefix; 59 } 60 61 public String getOriginalName() { 62 return originalName; 63 } 64 65 public String getReplacementName() { 66 return replacementName; 67 } 68 69 public static List<Backport> asList(String s) { 70 ArrayList<Backport> result = new ArrayList<Backport>(); 71 if (s != null) { 72 for (String token : s.split(";")) { 73 result.add(Backport.valueOf(token)); 74 } 75 } 76 return result; 77 } 78 79 private static Backport valueOf(String s) { 80 String original; 81 String replacement; 82 int index = s.indexOf(':'); 83 if (index < 0) { 84 original = ""; 85 replacement = toInternalName(s); 86 } else { 87 original = toInternalName(s.substring(0, index)); 88 replacement = toInternalName(s.substring(index + 1)); 89 } 90 return new Backport(toPrefix(original), toPrefix(replacement), original, replacement); 91 } 92 93 private static String toInternalName(String name) { 94 String result = name.replace('.', '/').trim(); 95 if (result.startsWith("/") || result.endsWith("/")) { 96 throw new IllegalArgumentException ("Illegal name: " + name); 97 } 98 return result; 99 } 100 101 private static String toPrefix(String name) { 102 return name.length() == 0 ? "" : name + '/'; 103 } 104 105 } 106 | Popular Tags |