/** * Returns {@code true} when a first node is under or equal to a second node. * * @param node1 The first node. * @param node2 The second node. * @return {@code true} when {@code node1} is under or equal to {@code node2}. */ public final boolean isUnderOrEqual(N node1, N node2) { return isOverOrEqual(node2, node1); }
/** * Returns {@code true} when a node can be attached as a parent of another node. * * @param node The possible child. * @param candidateParent The possible parent. * @return {@code true} when {@code candidateParent} can be set as parent of {@code node}. */ public boolean canSetParent(N node, N candidateParent) { return node != null && !isOverOrEqual(node, candidateParent); }
/** * Returns {@code true} when a first node is loosely or strictly over a second node. * * @param node1 The first node. * @param node2 The second node. * @param strictness The strictness. * @return {@code true} when a {@code node1} is loosely or strictly over {@code node2}. */ public final boolean isOver(N node1, N node2, Strictness strictness) { Checks.isNotNull(strictness, STRICTNESS); if (strictness == Strictness.STRICT) { return isStrictlyOver(node1, node2); } else { return isOverOrEqual(node1, node2); } }
@Test public void testIsOverOrEqual() { assertTrue(tbq.isOverOrEqual(null, null)); assertFalse(tbq.isOverOrEqual(null, c0)); assertFalse(tbq.isOverOrEqual(c0, null)); assertTrue(tbq.isOverOrEqual(c0, c0)); assertTrue(tbq.isOverOrEqual(c0, c1)); assertTrue(tbq.isOverOrEqual(c0, c11)); assertTrue(tbq.isOverOrEqual(c0, c12)); assertTrue(tbq.isOverOrEqual(c0, c13)); assertTrue(tbq.isOverOrEqual(c0, c131)); assertTrue(tbq.isOverOrEqual(c0, c2)); assertTrue(tbq.isOverOrEqual(c0, c21)); assertTrue(tbq.isOverOrEqual(c0, c22)); assertFalse(tbq.isOverOrEqual(c1, c0)); assertTrue(tbq.isOverOrEqual(c1, c1)); assertTrue(tbq.isOverOrEqual(c1, c11)); assertTrue(tbq.isOverOrEqual(c1, c12)); assertTrue(tbq.isOverOrEqual(c1, c13)); assertTrue(tbq.isOverOrEqual(c1, c131)); assertFalse(tbq.isOverOrEqual(c1, c2)); assertFalse(tbq.isOverOrEqual(c1, c21)); assertFalse(tbq.isOverOrEqual(c1, c22)); }