public ConsListPropertyMap getOwningMap(Property value) { ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(value)) { return current; } current = current.getParentMap(); } return null; }
public ConsListPropertyMap getOwningMap(Property value) { ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(value)) { return current; } current = current.getParentMap(); } return null; }
@Override public ConsListPropertyMap removeCopy(Property value) { Deque<Property> shelve = new ArrayDeque<>(); ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(value)) { ConsListPropertyMap newMap = current.getParentMap(); for (Property property : shelve) { newMap = newMap.putCopy(property); } return newMap; } else { shelve.push(current.getLastProperty()); current = current.getParentMap(); } } return this; }
@Override public ConsListPropertyMap removeCopy(Property value) { Deque<Property> shelve = new ArrayDeque<>(); ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(value)) { ConsListPropertyMap newMap = current.getParentMap(); for (Property property : shelve) { newMap = newMap.putCopy(property); } return newMap; } else { shelve.push(current.getLastProperty()); current = current.getParentMap(); } } return this; }
private Property getEquals(Object key) { for (ConsListPropertyMap current = this; !current.isEmpty(); current = current.getParentMap()) { Property p = current.getLastProperty(); Object pKey = p.getKey(); if (pKey == key || pKey.equals(key)) { return p; } } return null; }
private Property getStringKey(String key) { for (ConsListPropertyMap current = this; !current.isEmpty(); current = current.getParentMap()) { Property p = current.getLastProperty(); Object pKey = p.getKey(); if (pKey == key || (pKey instanceof String && ((String) pKey).equals(key))) { return p; } } return null; }
public ImmutableMap<Object, Property> copyAndRemove(Object key) { Deque<Property> shelve = new ArrayDeque<>(); ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().getKey().equals(key)) { ConsListPropertyMap newMap = current.getParentMap(); for (Property property : shelve) { newMap = newMap.putCopy(property); } return newMap; } else { shelve.push(current.getLastProperty()); current = current.getParentMap(); } } return this; }
private Property getEquals(Object key) { for (ConsListPropertyMap current = this; !current.isEmpty(); current = current.getParentMap()) { Property p = current.getLastProperty(); Object pKey = p.getKey(); if (pKey == key || pKey.equals(key)) { return p; } } return null; }
private Property getStringKey(String key) { for (ConsListPropertyMap current = this; !current.isEmpty(); current = current.getParentMap()) { Property p = current.getLastProperty(); Object pKey = p.getKey(); if (pKey == key || (pKey instanceof String && ((String) pKey).equals(key))) { return p; } } return null; }
public ImmutableMap<Object, Property> copyAndRemove(Object key) { Deque<Property> shelve = new ArrayDeque<>(); ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().getKey().equals(key)) { ConsListPropertyMap newMap = current.getParentMap(); for (Property property : shelve) { newMap = newMap.putCopy(property); } return newMap; } else { shelve.push(current.getLastProperty()); current = current.getParentMap(); } } return this; }
@Override public ConsListPropertyMap replaceCopy(Property oldValue, Property newValue) { Deque<Property> shelve = new ArrayDeque<>(); ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(oldValue)) { ConsListPropertyMap newMap = current.getParentMap(); newMap = newMap.putCopy(newValue); for (Property property : shelve) { newMap = newMap.putCopy(property); } return newMap; } else { shelve.push(current.getLastProperty()); current = current.getParentMap(); } } return this; }
@Override public ConsListPropertyMap replaceCopy(Property oldValue, Property newValue) { Deque<Property> shelve = new ArrayDeque<>(); ConsListPropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(oldValue)) { ConsListPropertyMap newMap = current.getParentMap(); newMap = newMap.putCopy(newValue); for (Property property : shelve) { newMap = newMap.putCopy(property); } return newMap; } else { shelve.push(current.getLastProperty()); current = current.getParentMap(); } } return this; }