indexbuilder.java

来自「Online Map for Mobile」· Java 代码 · 共 53 行

JAVA
53 行
字号
import java.util.Vector;

public class IndexBuilder extends XMLBuilder {
    public XMLBuilder addElement(String name) {
        if (name.equals("index")) { 
            Index index = new Index();
            objects.addElement(index);
            return new IndexBuilder(index);
        } else if (name.equals("location")) { 
            Location loc = new Location();
            objects.addElement(loc);
            return new LocationBuilder(loc);
        } else { 
            throw new XMLException("<index> or <location> elements expected");
        }
    }

    public void addAttribute(String name, String value) {
        if (name.equals("type")) {
            if (value.equals("subindex")) { 
                index.type = Index.SUBINDEX;
            } else if (value.equals("point")) { 
                index.type = Index.POINT;
            } else if (value.equals("line")) { 
                index.type = Index.LINE;
            } else if (value.equals("rectangle")) { 
                index.type = Index.RECTANGLE;
            } else {
                throw new XMLException("invalid index type: " + value);
            }
        } else if (name.equals("name")) { 
            index.name = value;
        } else {
            throw new XMLException("\"name\" or \"type\" attributes expected");
        }
    }

    public void closeElement() {
        Vector src = objects;
        Object[] dst = index.objects = new Location[objects.size()];
        for (int i = 0, n = dst.length; i < n; i++) { 
            dst[i] = src.elementAt(i);
        }
    }

    IndexBuilder(Index index) { 
        this.index = index;
        objects = new Vector();
    }

    Index  index;
    Vector objects;
}

⌨️ 快捷键说明

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