@Override protected INConstraint newINConstraint ( IVariable<?> var, IConstant<?> vals [] ) { return new INHashMap ( var, vals ) ; } }
private void init() { var = getVariable(); // populate the cache. final IConstant<T>[] a = getSet(); set = new ConcurrentHashMap<T, T>(a.length); for (IConstant<T> t : a) { final T val = t.get(); set.put(val, val); } }
public Boolean get(final IBindingSet bindingSet) { if (var == null) { synchronized (this) { if (var == null) { // init() is guarded by double-checked locking pattern. init(); } } } // get binding for "x". @SuppressWarnings("unchecked") final IConstant<T> x = bindingSet.get(var); if (x == null) { // not yet bound : FIXME Modify to return false - variables must be bound return true; } final T v = x.get(); final boolean found = set.containsKey(v); return found; }
private void init() { var = getVariable(); // populate the cache. final IConstant<T>[] a = getSet(); set = new ConcurrentHashMap<T, T>(a.length); for (IConstant<T> t : a) { final T val = t.get(); set.put(val, val); } }
public Boolean get(final IBindingSet bindingSet) { if (var == null) { synchronized (this) { if (var == null) { // init() is guarded by double-checked locking pattern. init(); } } } // get binding for "x". @SuppressWarnings("unchecked") final IConstant<T> x = bindingSet.get(var); if (x == null) { // not yet bound : FIXME Modify to return false - variables must be bound return true; } final T v = x.get(); final boolean found = set.containsKey(v); return found; }
@Override protected INConstraint newINConstraint ( IVariable<?> var, IConstant<?> vals [] ) { return new INHashMap ( var, vals ) ; } }