prefixmap.java

来自「这个应用程序的总体思路其实很简单」· Java 代码 · 共 65 行

JAVA
65
字号
package org.kxml;

import java.util.*;

/** Like Attribute, this class is immutable for similar reasons */

public class PrefixMap {

    public static final PrefixMap DEFAULT = new PrefixMap (null, "", "");

    String prefix;
    String namespace;
    PrefixMap previous;


    public PrefixMap (PrefixMap previous, String prefix, String namespace) {       
	this.previous = previous;
	this.prefix = prefix;
	this.namespace = namespace;
    } 


    public String getNamespace () {
	return namespace;
    }

    public String getPrefix () {
	return prefix;
    }

    public PrefixMap getPrevious () {
	return previous;
    }

    /** returns the namespace associated with the given prefix,
	or null, if none is assigned */

    public String getNamespace (String prefix) {
	PrefixMap current = this;
	do {
	    if (prefix.equals (current.prefix)) return current.namespace;
	    current = current.previous;
	}
	while (current != null);
	return null;
    }


    public String getPrefix (String namespace) {
	PrefixMap current = this;
	
	do { 
	    //System.err.println ("found: "+current.namespace +"/"+ current.prefix + "/" +getNamespace (current.prefix));
	    if (namespace.equals (current.namespace)
		&& namespace.equals (getNamespace (current.prefix))) 
		return current.prefix;

	    current = current.previous;
	}
	while (current != null); 
	return null;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?