class Element implements IAttributes {

	@SuppressWarnings("unchecked")
	@Override
	public <O> O getAttribute(String identifier) {
		if (attributes.getAttributes().containsKey(identifier)) {
			return (O) attributes.getAttribute(identifier);
		} else if (parent != null) {
			return (O) parent.getAttribute(identifier);
		} else {
			return null;
		}
	}

}

class ElementTest {

	@Test
	public void testGetAttribute() {

		Element element = new Element("id");
		String id = "attribute name";
		element.setAttribute(id, 0);

		Assert.assertEquals(0, (int) element.<Integer> getAttribute(id));
		Assert.assertNull(element.getAttribute("other"));
	}

}