KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > jayasoft > ivy > namespace > Namespace


1 /*
2  * This file is subject to the licence found in LICENCE.TXT in the root directory of the project.
3  * Copyright Jayasoft 2005 - All rights reserved
4  *
5  * #SNAPSHOT#
6  */

7 package fr.jayasoft.ivy.namespace;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.Iterator JavaDoc;
11 import java.util.List JavaDoc;
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 JavaDoc _rules = new ArrayList JavaDoc();
22     private String JavaDoc _name;
23     private boolean _chainRules = false;
24     private NamespaceTransformer _fromSystemTransformer = new NamespaceTransformer() {
25         public ModuleRevisionId transform(ModuleRevisionId mrid) {
26             for (Iterator JavaDoc 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 JavaDoc 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 JavaDoc getName() {
64         return _name;
65     }
66
67     public void setName(String JavaDoc 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