⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elementstate.java

📁 xbrlapi的源码
💻 JAVA
字号:
package org.xbrlapi.SAXHandlers;import java.util.Vector;/** * @author Geoff Shuetrim (geoff@galexy.net) * Assists in the tracking of document state information * during SAX parsing, retaining the necessary information * to construct all element scheme XPointer expressions * that can be used to identify each element in a document. *  * The state is started again when a new document is started. * As each new element is parsed in, a new element state is created, * wrapping the parent element's state as a property. *  * The state keeps track of ancestor element states, the id of the current * element, if any, and the order which is set equal to the number of children  * so far for the found parent element state. */public class ElementState {	/**	 * The parent element state (if a parent exists)	 */	private ElementState parent = null;	private long order = 1;		private long childrenSoFar = 0;		private String id = null;			/**	 * Initialise the own order using information about children of parent element.	 */	public ElementState(ElementState parent) {		super();		this.parent = parent;		if (hasParent()) {			parent.addChild();			order = parent.getChildrenSoFar();		}	}	public ElementState() {		super();	}		private boolean hasParent() {		if (parent == null) return false;		return true;	}		private String getOrderAsString() {		return (new Long(order)).toString();	}			public ElementState getParent() {		return parent;	}		public void addChild() {		childrenSoFar++;	}		public long getChildrenSoFar() {		return childrenSoFar;	}		public String getId() {		return id;	}		public void setId(String id) {		this.id = id;	}		public boolean hasId() {		if (id == null) return false;		return true;	}		public Vector<String> getElementSchemePointers() {				Vector<String> pointers;				if (hasParent()) {			pointers = getParent().getElementSchemePointers();			for (int i=0; i<pointers.size(); i++) {				String pointer = pointers.get(i);				pointer = pointer + "/" + getOrderAsString();				pointers.remove(i);				pointers.add(i,pointer);			}		} else {			pointers = new Vector<String>();			pointers.add("/" + getOrderAsString());		}		if (hasId()) {			pointers.add(getId());		}		return pointers;	}	}

⌨️ 快捷键说明

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