@Override public void dispose() { if (state != null) { state.dispose(); if (state instanceof PersistentState) { final PersistentState persistableState = (PersistentState) state; if (persistableState.shouldPersist() && preferenceStore != null && preferenceKey != null) { persistableState.save(preferenceStore, preferenceKey); } } } }