BasicAttributeContext implements AttributeContext, Serializable { public void clear() { templateAttribute = null; preparer = null; attributes.clear(); cascadedAttributes.clear(); } BasicAttributeContext();  BasicAttributeContext(Map<String, Attribute> attributes);  BasicAttributeContext(AttributeContext context);  BasicAttributeContext(BasicAttributeContext context); Attribute getTemplateAttribute(); void setTemplateAttribute(Attribute templateAttribute); String getPreparer(); void setPreparer(String url); void inheritCascadedAttributes(AttributeContext context); void inherit(AttributeContext parent); void inherit(BasicAttributeContext parent); void addAll(Map<String, Attribute> newAttributes); void addMissing(Map<String, Attribute> defaultAttributes); Attribute getAttribute(String name); Attribute getLocalAttribute(String name); Attribute getCascadedAttribute(String name); Set<String> getLocalAttributeNames(); Set<String> getCascadedAttributeNames(); void putAttribute(String name, Attribute value); void putAttribute(String name, Attribute value, boolean cascade); void clear(); @Override boolean equals(Object obj); @Override int hashCode();  }
@Test public void testClear() { AttributeContext context = new BasicAttributeContext(); context.putAttribute("name1", new Attribute("value1"), false); context.putAttribute("name2", new Attribute("value2"), true); context.clear(); Set<String> names = context.getLocalAttributeNames(); assertTrue("There are local attributes", names == null || names.isEmpty()); names = context.getCascadedAttributeNames(); assertTrue("There are cascaded attributes", names == null || names.isEmpty()); }