1 7 package fr.jayasoft.ivy.namespace; 8 9 import java.util.ArrayList ; 10 import java.util.Iterator ; 11 import java.util.List ; 12 13 import fr.jayasoft.ivy.ModuleRevisionId; 14 15 public class Namespace { 16 public static final Namespace SYSTEM_NAMESPACE; 17 static { 18 SYSTEM_NAMESPACE = new Namespace(); 19 } 20 21 private List _rules = new ArrayList (); 22 private String _name; 23 private boolean _chainRules = false; 24 private NamespaceTransformer _fromSystemTransformer = new NamespaceTransformer() { 25 public ModuleRevisionId transform(ModuleRevisionId mrid) { 26 for (Iterator iter = _rules.iterator(); iter.hasNext();) { 27 NamespaceRule rule = (NamespaceRule)iter.next(); 28 ModuleRevisionId nmrid = rule.getFromSystem().transform(mrid); 29 if (_chainRules) { 30 mrid = nmrid; 31 } else if (!nmrid.equals(mrid)) { 32 return nmrid; 33 } 34 } 35 return mrid; 36 } 37 public boolean isIdentity() { 38 return _rules.isEmpty(); 39 } 40 }; 41 private NamespaceTransformer _toSystemTransformer = new NamespaceTransformer() { 42 public ModuleRevisionId transform(ModuleRevisionId mrid) { 43 for (Iterator iter = _rules.iterator(); iter.hasNext();) { 44 NamespaceRule rule = (NamespaceRule)iter.next(); 45 ModuleRevisionId nmrid = rule.getToSystem().transform(mrid); 46 if (_chainRules) { 47 mrid = nmrid; 48 } else if (!nmrid.equals(mrid)) { 49 return nmrid; 50 } 51 } 52 return mrid; 53 } 54 public boolean isIdentity() { 55 return _rules.isEmpty(); 56 } 57 }; 58 59 public void addRule(NamespaceRule rule) { 60 _rules.add(rule); 61 } 62 63 public String getName() { 64 return _name; 65 } 66 67 public void setName(String name) { 68 _name = name; 69 } 70 71 public NamespaceTransformer getFromSystemTransformer() { 72 return _fromSystemTransformer; 73 } 74 public NamespaceTransformer getToSystemTransformer() { 75 return _toSystemTransformer; 76 } 77 78 public boolean isChainrules() { 79 return _chainRules; 80 } 81 82 public void setChainrules(boolean chainRules) { 83 _chainRules = chainRules; 84 } 85 } 86 | Popular Tags |