PrefixMap.java
上传用户:haojie1228
上传日期:2022-08-08
资源大小:347k
文件大小:1k
源码类别:

通讯/手机编程

开发平台:

Java

  1. package org.kxml;
  2. import java.util.*;
  3. /** Like Attribute, this class is immutable for similar reasons */
  4. public class PrefixMap {
  5.     public static final PrefixMap DEFAULT = new PrefixMap (null, "", "");
  6.     String prefix;
  7.     String namespace;
  8.     PrefixMap previous;
  9.     public PrefixMap (PrefixMap previous, String prefix, String namespace) {       
  10. this.previous = previous;
  11. this.prefix = prefix;
  12. this.namespace = namespace;
  13.     } 
  14.     public String getNamespace () {
  15. return namespace;
  16.     }
  17.     public String getPrefix () {
  18. return prefix;
  19.     }
  20.     public PrefixMap getPrevious () {
  21. return previous;
  22.     }
  23.     /** returns the namespace associated with the given prefix,
  24. or null, if none is assigned */
  25.     public String getNamespace (String prefix) {
  26. PrefixMap current = this;
  27. do {
  28.     if (prefix.equals (current.prefix)) return current.namespace;
  29.     current = current.previous;
  30. }
  31. while (current != null);
  32. return null;
  33.     }
  34.     public String getPrefix (String namespace) {
  35. PrefixMap current = this;
  36. do { 
  37.     //System.err.println ("found: "+current.namespace +"/"+ current.prefix + "/" +getNamespace (current.prefix));
  38.     if (namespace.equals (current.namespace)
  39. && namespace.equals (getNamespace (current.prefix))) 
  40. return current.prefix;
  41.     current = current.previous;
  42. }
  43. while (current != null); 
  44. return null;
  45.     }
  46. }