1 package org.sapia.util.xml.idefix; 2 3 4 import org.sapia.util.xml.Namespace; 6 7 import java.lang.reflect.Method ; 8 9 import java.util.HashMap ; 10 import java.util.Map ; 11 12 13 61 public class PatternNamespaceFactory implements NamespaceFactoryIF { 62 63 64 66 67 68 private Map _theNamespaces; 69 70 73 public PatternNamespaceFactory() { 74 _theNamespaces = new HashMap (); 75 } 76 77 83 public void addNamespace(Class aClass, Namespace aNamespace) { 84 _theNamespaces.put(aClass.getName(), aNamespace); 85 } 86 87 93 public void addNamespace(Package aPackage, Namespace aNamespace) { 94 _theNamespaces.put(aPackage.getName() + ".*", aNamespace); 95 } 96 97 103 public void addNamespace(Method aMethod, Namespace aNamespace) { 104 String aName = aMethod.getDeclaringClass().getName() + "#" + 105 aMethod.getName(); 106 _theNamespaces.put(aName, aNamespace); 107 } 108 109 116 public void addNamespace(String aName, Namespace aNamespace) { 117 _theNamespaces.put(aName, aNamespace); 118 } 119 120 129 public Namespace getNamespaceFor(Class aClass) { 130 Namespace aNamespace = null; 131 132 137 aNamespace = (Namespace) _theNamespaces.get(aClass.getName()); 138 139 if (aNamespace == null) { 140 String aPackageName = aClass.getPackage().getName() + ".*"; 142 143 146 aNamespace = (Namespace) _theNamespaces.get(aPackageName); 147 } 148 149 return aNamespace; 150 } 151 152 161 public Namespace getNamespaceFor(Method aMethod) { 162 Namespace aNamespace = null; 163 164 String aName = aMethod.getDeclaringClass().getName() + "#" + 166 aMethod.getName(); 167 168 172 aNamespace = (Namespace) _theNamespaces.get(aName); 173 174 if (aNamespace == null) { 175 177 180 aNamespace = (Namespace) _theNamespaces.get(aMethod.getDeclaringClass() 181 .getName()); 182 183 if (aNamespace == null) { 184 String aPackageName = aMethod.getDeclaringClass().getPackage().getName() + 186 ".*"; 187 188 191 aNamespace = (Namespace) _theNamespaces.get(aPackageName); 192 } 193 } 194 195 return aNamespace; 196 } 197 } 198 | Popular Tags |