@Override public void emptyRecycleBin() { G recycle = getRecycleBin(); if (recycle == null) { return; } for (G g: recycle.getGroups()){ recycle.removeGroup(g); } for (E e: recycle.getEntries()){ recycle.removeEntry(e); } }
@Override public boolean deleteEntry(final UUID uuid) { E e = findEntry(uuid); if (e == null) { return false; } e.getParent().removeEntry(e); if (isRecycleBinEnabled()) { getRecycleBin().addEntry(e); } return true; }
@Test public void testAddRemoveEntry() { E e1 = database.getRootGroup().addEntry(database.newEntry()); e1.setTitle("entry1"); List<? extends E> l1 = database.findEntries("entry1"); Assert.assertTrue(l1.size() == 1); E e12 = database.getRootGroup().addEntry(database.newEntry("entry12")); List<? extends E> l2 = database.findEntries("entry1"); Assert.assertTrue(l2.size() == 2); // show that the entries are different Assert.assertFalse(l2.get(0).equals(l2.get(1))); // show that the list is a copy l2.clear(); Assert.assertTrue(database.findEntries("entry1").size() == 2); // show that we get an equivalent entry when we remove to when we inserted Entry e12b = database.getRootGroup().removeEntry(e12); Assert.assertTrue(e12b.equals(e12)); // has been unhooked from parent Assert.assertTrue(e12.getParent() == null); Assert.assertTrue(database.findEntries("entry1").size() == 1); }