typequalifiers.java

来自「plugin for eclipse」· Java 代码 · 共 148 行

JAVA
148
字号
/*
 * Created on Jun 3, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package isis.anp.nesc.ot;

import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;

/**
 * @author sallai
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class TypeQualifiers implements Collection {
	LinkedHashMap map = new LinkedHashMap(2);

	public boolean isConst() {
		return map.containsKey("const");
	}

	public boolean isVolatile() {
		return map.containsKey("volatile");
	}
	
	public String toString() {
		StringBuffer sb = new StringBuffer();
		Iterator i = map.values().iterator();
		while (i.hasNext()) {
			TypeQualifier tq = (TypeQualifier) i.next();
			sb.append(tq.getDefNode().getText());
			if(i.hasNext()) sb.append(" ");
		}
		return sb.toString();
	}
	
	public boolean addTypeQualifier(TypeQualifier tq) {
		if(map.containsKey(tq.getDefNode().getText())) {
			// TODO: error handling
//			ctx.addError("Duplicate type qualifier: " + tq.getDefNode().getText(), new CodeLocation(tq.getDefNode()));
			return false;
		}
		map.put(tq.getDefNode().getText(), tq);
		return true;
	}

	public int size() {
		return map.size();
	}

	public void clear() {
		map.clear();
	}

	public boolean isEmpty() {
		// TODO Auto-generated method stub
		return map.isEmpty();
	}

	public Object[] toArray() {
		// TODO Auto-generated method stub
		return map.values().toArray();
	}

	public boolean add(Object arg0) {
		return this.addTypeQualifier((TypeQualifier) arg0);
	}

	public boolean contains(Object arg0) {
		// TODO Auto-generated method stub
		return map.containsValue(arg0);
	}

	public boolean remove(Object arg0) {
		if(map.containsValue(arg0)) {
			map.remove(arg0);
			return true;
		} else {
			return false;
		}
	}

	public boolean addAll(Collection arg0) {
		boolean changed = false;
		Iterator i = arg0.iterator();
		while (i.hasNext()) {
			if(addTypeQualifier((TypeQualifier) i.next()) == true) {
				changed = true;
			}
		}
		return changed;
	}

	public boolean containsAll(Collection arg0) {
		Iterator i = arg0.iterator();
		while (i.hasNext()) {
			if(map.containsValue(i.next())) return false;			
		}
		return true;
	}

	public boolean removeAll(Collection arg0) {
		boolean changed = false;
		Iterator i = arg0.iterator();
		while (i.hasNext()) {
			Object o = i.next();
			if(map.containsValue(o)) {
				map.remove(o);
				changed = true;
			}
		}
		return changed;
	}

	public boolean retainAll(Collection arg0) {
		boolean changed = false;
		Iterator i = arg0.iterator();
		while (i.hasNext()) {
			Object o = i.next();
			if(!map.containsValue(o)) {
				map.remove(o);
				changed = true;
			}
		}
		return changed;
	}

	public Iterator iterator() {
		// TODO Auto-generated method stub
		return map.values().iterator();
	}

	public Object[] toArray(Object[] arg0) {
		return map.values().toArray();
	}

	public Object clone() {
		TypeQualifiers rval = new TypeQualifiers();
		rval.addAll(this);
		return rval;
	}
	
}

⌨️ 快捷键说明

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