Element implements IAttributes { @Override public Parameter getAttributeParameter(String identifier) { Parameter parameter = attributes.getAttributeParameter(identifier); Object attribute = attributes.getAttribute(identifier); if (parameter != null) { return parameter; } else if (parameter == null && attribute != null) { return null; } else if (getParent() != null) { return getParent().getAttributeParameter(identifier); } else { return null; } } Element(String id);  Element(Element parent); String getId(); Element getParent(); void setParent(Element element); @SuppressWarnings("unchecked") @Override O getAttribute(String identifier); @Override boolean isDefined(String identifier); @Override Attributes getAttributes(); Attributes getLocalAttributes(); Set<String> getLocalAttributeNames(); @Override void setAttribute(String identifier, Object object); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); @Override Parameter getAttributeParameter(String identifier); @Override Set<String> getAttributeNames(); String getType(); void setType(String type); static String TYPE; }
@Test public void testGetAttributeParameter() { Element element = new Element("id"); element.setAttribute("normal attribute", 1); Parameter parameter = new ParameterRange(1.0, 0.0, 2.0); element.setAttribute("parameter", parameter); Assert.assertEquals(parameter, element.getAttributeParameter("parameter")); Assert.assertNull(element.getAttributeParameter("normal attribute")); }