@Override public void clear() { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; List<Synset> copy = new ArrayList<>(this); super.clear(); for (Synset synset : copy) { removeWordsFromSynset(synset, lemma); } checkIfWeReEmptyAndRemoveIndexWord(d); } else { super.clear(); } }
@Override public void clear() { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; List<Synset> copy = new ArrayList<>(this); super.clear(); for (Synset synset : copy) { removeWordsFromSynset(synset, lemma); } checkIfWeReEmptyAndRemoveIndexWord(d); } else { super.clear(); } }
@Override public boolean removeAll(Collection<?> c) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; List<Synset> copy = new ArrayList<>(this); boolean result = super.removeAll(c); if (result) { for (Object object : c) { if (object instanceof Synset) { Synset synset = (Synset) object; if (copy.contains(synset)) { removeWordsFromSynset(synset, lemma); } } } checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.removeAll(c); } }
@Override public boolean removeAll(Collection<?> c) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; List<Synset> copy = new ArrayList<>(this); boolean result = super.removeAll(c); if (result) { for (Object object : c) { if (object instanceof Synset) { Synset synset = (Synset) object; if (copy.contains(synset)) { removeWordsFromSynset(synset, lemma); } } } checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.removeAll(c); } }
@Override public boolean retainAll(Collection<?> c) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; List<Synset> copy = new ArrayList<>(this); boolean result = super.retainAll(c); if (result) { for (Synset synset : copy) { if (!c.contains(synset)) { removeWordsFromSynset(synset, lemma); } } checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.retainAll(c); } }
@Override public boolean retainAll(Collection<?> c) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; List<Synset> copy = new ArrayList<>(this); boolean result = super.retainAll(c); if (result) { for (Synset synset : copy) { if (!c.contains(synset)) { removeWordsFromSynset(synset, lemma); } } checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.retainAll(c); } }
@Override public Synset set(int index, Synset synset) { checkSynsetIsNotNull(synset); checkDictionaryIsOurs(synset); loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Synset result = super.set(index, synset); if (null != result) { removeWordsFromSynset(result, lemma); } addWord(synset, lemma); return result; } else { return super.set(index, synset); } }
@Override public Synset remove(int index) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; Synset result = super.remove(index); if (null != result) { removeWordsFromSynset(result, lemma); checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.remove(index); } }
@Override public boolean remove(Object o) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; boolean result = super.remove(o); if (result && o instanceof Synset) { removeWordsFromSynset((Synset) o, lemma); checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.remove(o); } }
@Override public Synset remove(int index) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; Synset result = super.remove(index); if (null != result) { removeWordsFromSynset(result, lemma); checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.remove(index); } }
@Override public Synset set(int index, Synset synset) { checkSynsetIsNotNull(synset); checkDictionaryIsOurs(synset); loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Synset result = super.set(index, synset); if (null != result) { removeWordsFromSynset(result, lemma); } addWord(synset, lemma); return result; } else { return super.set(index, synset); } }
@Override protected void removeRange(int fromIndex, int toIndex) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { List<Synset> copy = new ArrayList<>(subList(fromIndex, toIndex)); super.removeRange(fromIndex, toIndex); for (Synset synset : copy) { removeWordsFromSynset(synset, lemma); } } else { super.removeRange(fromIndex, toIndex); } }
@Override public boolean remove(Object o) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { Dictionary d = dictionary; boolean result = super.remove(o); if (result && o instanceof Synset) { removeWordsFromSynset((Synset) o, lemma); checkIfWeReEmptyAndRemoveIndexWord(d); } return result; } else { return super.remove(o); } }
@Override protected void removeRange(int fromIndex, int toIndex) { loadAllSynsets(); if (null != dictionary && dictionary.isEditable()) { List<Synset> copy = new ArrayList<>(subList(fromIndex, toIndex)); super.removeRange(fromIndex, toIndex); for (Synset synset : copy) { removeWordsFromSynset(synset, lemma); } } else { super.removeRange(fromIndex, toIndex); } }