public EdgeEntry cloneFull() { EdgeEntry de = clone(); EdgeEntry tmpPrev = parent; EdgeEntry cl = de; while (tmpPrev != null) { cl.parent = tmpPrev.clone(); cl = cl.parent; tmpPrev = tmpPrev.parent; } return de; }
@Test public void testCloneFull() { EdgeEntry de = new EdgeEntry(EdgeIterator.NO_EDGE, 1, 10); EdgeEntry de2 = de.parent = new EdgeEntry(EdgeIterator.NO_EDGE, -2, 20); EdgeEntry de3 = de2.parent = new EdgeEntry(EdgeIterator.NO_EDGE, 3, 30); EdgeEntry cloning = de.cloneFull(); EdgeEntry tmp1 = de; EdgeEntry tmp2 = cloning; assertNotNull(tmp1); while (tmp1 != null) { assertFalse(tmp1 == tmp2); assertEquals(tmp1.edge, tmp2.edge); tmp1 = tmp1.parent; tmp2 = tmp2.parent; } assertNull(tmp2); }