/** * */ public void close() { synchronized(lock) { scanStrategy.stop(); while (!recipes.isEmpty()) { WriteExpression<?> expression = recipes.keySet().iterator().next(); disconnectExpression(expression); } } }
/** * Removes the expression with the given name. * * @param name the name of the expression to remove * @return this expression */ public WriteMap<T> remove(String name) { synchronized(lock) { if (!expressions.containsKey(name)) { throw new IllegalArgumentException("MapExpression does not contain an expression named '" + name + "'"); } getMapOfWriteFunction().getMapUpdateCollector().writeValue(MapUpdate.<T>removeFunction(name)); WriteExpression<T> expression = expressions.remove(name); if (director != null) { director.disconnectExpression(expression); } return this; } }
/** * Removes all the expressions currently in the map. * * @return this expression */ public WriteMap<T> clear() { synchronized(lock) { getMapOfWriteFunction().getMapUpdateCollector().writeValue(MapUpdate.<T>clear()); if (director != null) { for (WriteExpression<T> desiredRateExprewritession : expressions.values()) { director.disconnectExpression(desiredRateExprewritession); } } expressions.clear(); return this; } }