if (collectionOrMap instanceof InternalMap) if (_createDeltas()) returnValue = _removeValueOrKeyFromMap(_deltas, key, valueOrKey, true); _removeValueOrKeyFromMap(_fullState, key, valueOrKey, false); returnValue = _removeValueOrKeyFromMap(_fullState, key, valueOrKey, false); if (_createDeltas()) returnValue = _removeValueOrKeyFromCollectionDelta(_deltas, key, valueOrKey); _removeValueOrKeyFromCollection(_fullState, key, valueOrKey); returnValue = _removeValueOrKeyFromCollection(_fullState, key, valueOrKey);
/** * Used to create delta map on demand * * @return */ private boolean _createDeltas() { if (isInitialStateMarked()) { if (_deltas == null) { _deltas = new HashMap<Serializable, Object>(2); } return true; } return false; }
public Object remove(Serializable key) { Object returnValue = null; if (_createDeltas()) { if (_deltas.containsKey(key)) { // Keep track of the removed values using key/null pair on the delta map returnValue = _deltas.put(key, null); _fullState.remove(key); } else { // Keep track of the removed values using key/null pair on the delta map _deltas.put(key, null); returnValue = _fullState.remove(key); } } else { returnValue = _fullState.remove(key); } return returnValue; }
public Object put(Serializable key, Object value) { Object returnValue = null; if (_createDeltas()) { if (_deltas.containsKey(key)) { returnValue = _deltas.put(key, value); _fullState.put(key, value); } else { _deltas.put(key, value); returnValue = _fullState.put(key, value); } } else { /* if (value instanceof StateHolder) { _stateHolderKeys.add(key); } */ returnValue = _fullState.put(key, value); } return returnValue; }
public void add(Serializable key, Object value) { if (_createDeltas()) { //Track delta case Map<Object, Boolean> deltaListMapValues = (Map<Object, Boolean>) _deltas .get(key); if (deltaListMapValues == null) { deltaListMapValues = new InternalDeltaListMap<Object, Boolean>( 3); _deltas.put(key, deltaListMapValues); } deltaListMapValues.put(value, Boolean.TRUE); } //Handle change on full map List<Object> fullListValues = (List<Object>) _fullState.get(key); if (fullListValues == null) { fullListValues = new InternalList<Object>(3); _fullState.put(key, fullListValues); } fullListValues.add(value); }
Map serializableMap = (isInitialStateMarked()) ? _deltas : _fullState;