/* * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javax.swing.text.rtf; import java.util.Dictionary; import java.util.Enumeration; import javax.swing.text.AttributeSet; import javax.swing.text.MutableAttributeSet; /* This AttributeSet is made entirely out of tofu and Ritz Crackers and yet has a remarkably attribute-set-like interface! */ class MockAttributeSet implements AttributeSet, MutableAttributeSet { public Dictionary<Object, Object> backing; public boolean isEmpty() { return backing.isEmpty(); } public int getAttributeCount() { return backing.size(); } public boolean isDefined(Object name) { return ( backing.get(name) ) != null; } public boolean isEqual(AttributeSet attr) { throw new InternalError("MockAttributeSet: charade revealed!"); } public AttributeSet copyAttributes() { throw new InternalError("MockAttributeSet: charade revealed!"); } public Object getAttribute(Object name) { return backing.get(name); } public void addAttribute(Object name, Object value) { backing.put(name, value); } public void addAttributes(AttributeSet attr) { Enumeration as = attr.getAttributeNames(); while(as.hasMoreElements()) { Object el = as.nextElement(); backing.put(el, attr.getAttribute(el)); } } public void removeAttribute(Object name) { backing.remove(name); } public void removeAttributes(AttributeSet attr) { throw new InternalError("MockAttributeSet: charade revealed!"); } public void removeAttributes(Enumeration<?> en) { throw new InternalError("MockAttributeSet: charade revealed!"); } public void setResolveParent(AttributeSet pp) { throw new InternalError("MockAttributeSet: charade revealed!"); } public Enumeration getAttributeNames() { return backing.keys(); } public boolean containsAttribute(Object name, Object value) { throw new InternalError("MockAttributeSet: charade revealed!"); } public boolean containsAttributes(AttributeSet attr) { throw new InternalError("MockAttributeSet: charade revealed!"); } public AttributeSet getResolveParent() { throw new InternalError("MockAttributeSet: charade revealed!"); } }