I would go with only those methods (applying the KISS principle)
Object getAttribute(Object key);
Object setAttribute(Object key, Object value);
Object removeAttribute(Object key);
boolean containsAttribute(Object key);
Set<Object> getAttributeKeys();
Everything else is just overkilling, IMHO.
-- -- cordialement, regards, Emmanuel Lécharny www.iktek.com directory.apache.org
