/** * @return {@code true} if this element has attributes. */ public boolean hasAttributes() { return getAttributesCount() > 0; }
private boolean localEquals(Element element) { if (!Operators.equals(name, element.name) || getAttributesCount() != element.getAttributesCount()) { return false; } // Same name // Same number of attributes: need to do a deep compare of attributes if (getAttributesCount() != 0) { final List<Attribute> atts0 = new ArrayList<>(attributes); final List<Attribute> atts1 = new ArrayList<>(element.attributes); atts0.sort(Attribute.NAME_COMPARATOR); atts1.sort(Attribute.NAME_COMPARATOR); return atts0.equals(atts1); } else { return true; } }
private void count(Node node) { counts[node.getType().ordinal()]++; if (node instanceof Element) { atts += ((Element) node).getAttributesCount(); } if (node instanceof Parent) { for (final Node child : ((Parent) node).getChildren()) { count(child); } } } }
/** * Creates an element by cloning another one. * <p> * Cloning is shallow.<br> * For deep cloning, use {@link #clone(boolean)}. * * @param other The element to clone. */ public Element(Element other) { this(null, other.getName()); for (int index = 0; index < other.getAttributesCount(); index++) { addAttribute(new Attribute(other.getAttributeAt(index))); } }
final Element element = (Element) parent; if (predicate.test(element) && element.getAttributesCount() > 1 && !element.getAttributeAt(0).getName().equals(name)) { final Attribute attribute = element.removeAttribute(name);
@Test public void testAttributes() { final Element e = new Element(NAME); assertEquals(0, e.getAttributesCount()); assertFalse(e.hasAttribute(NAME1)); assertEquals(-1, e.getAttributeIndex(NAME1)); assertTrue(e.getAttributes().isEmpty()); assertEquals(null, e.getAttributeValue(NAME1)); e.addAttribute(NAME1, null); assertTrue(e.hasAttribute(NAME1)); assertEquals(null, e.getAttributeValue(NAME1)); assertEquals(0, e.getAttributeIndex(NAME1)); assertEquals(-1, e.getAttributeIndex(NAME2)); assertFalse(e.hasAttribute(NAME2)); assertEquals(1, e.getAttributes().size()); assertEquals(Boolean.TRUE, e.getAttributeAsOptionalBoolean(NAME1, Boolean.TRUE)); assertEquals(Long.valueOf(0L), e.getAttributeAsOptionalLong(NAME1, 0L)); assertEquals(Integer.valueOf(0), e.getAttributeAsOptionalInt(NAME1, 0)); assertEquals(Short.valueOf((short) 0), e.getAttributeAsOptionalShort(NAME1, (short) 0)); assertEquals(Byte.valueOf((byte) 0), e.getAttributeAsOptionalByte(NAME1, (byte) 0)); assertEquals(Double.valueOf(0.0), e.getAttributeAsOptionalDouble(NAME1, 0.0)); assertEquals(Float.valueOf(0.0F), e.getAttributeAsOptionalFloat(NAME1, 0.0F)); assertEquals(FailureReaction.DEFAULT, e.getAttributeAsOptionalEnum(NAME1, FailureReaction.class, FailureReaction.DEFAULT)); }