/** * Creates a CompositeDisposables with the given Iterable sequence of initial elements. * @param resources the Iterable sequence of Disposables to start with */ public CompositeDisposable(@NonNull Iterable<? extends Disposable> resources) { ObjectHelper.requireNonNull(resources, "resources is null"); this.resources = new OpenHashSet<Disposable>(); for (Disposable d : resources) { ObjectHelper.requireNonNull(d, "Disposable item is null"); this.resources.add(d); } }
/** * Creates a CompositeDisposables with the given Iterable sequence of initial elements. * @param resources the Iterable sequence of Disposables to start with */ public CompositeDisposable(@NonNull Iterable<? extends Disposable> resources) { ObjectHelper.requireNonNull(resources, "resources is null"); this.resources = new OpenHashSet<Disposable>(); for (Disposable d : resources) { ObjectHelper.requireNonNull(d, "Disposable item is null"); this.resources.add(d); } }
/** * Creates a CompositeDisposables with the given array of initial elements. * @param resources the array of Disposables to start with */ public CompositeDisposable(@NonNull Disposable... resources) { ObjectHelper.requireNonNull(resources, "resources is null"); this.resources = new OpenHashSet<Disposable>(resources.length + 1); for (Disposable d : resources) { ObjectHelper.requireNonNull(d, "Disposable item is null"); this.resources.add(d); } }
/** * Creates a CompositeDisposables with the given array of initial elements. * @param resources the array of Disposables to start with */ public CompositeDisposable(@NonNull Disposable... resources) { ObjectHelper.requireNonNull(resources, "resources is null"); this.resources = new OpenHashSet<Disposable>(resources.length + 1); for (Disposable d : resources) { ObjectHelper.requireNonNull(d, "Disposable item is null"); this.resources.add(d); } }
/** * Creates a CompositeDisposables with the given array of initial elements. * @param resources the array of Disposables to start with */ public CompositeDisposable(@NonNull Disposable... resources) { ObjectHelper.requireNonNull(resources, "resources is null"); this.resources = new OpenHashSet<Disposable>(resources.length + 1); for (Disposable d : resources) { ObjectHelper.requireNonNull(d, "Disposable item is null"); this.resources.add(d); } }
/** * Creates a CompositeDisposables with the given Iterable sequence of initial elements. * @param resources the Iterable sequence of Disposables to start with */ public CompositeDisposable(@NonNull Iterable<? extends Disposable> resources) { ObjectHelper.requireNonNull(resources, "resources is null"); this.resources = new OpenHashSet<Disposable>(); for (Disposable d : resources) { ObjectHelper.requireNonNull(d, "Disposable item is null"); this.resources.add(d); } }
@Override public boolean add(@NonNull Disposable d) { ObjectHelper.requireNonNull(d, "d is null"); if (!disposed) { synchronized (this) { if (!disposed) { OpenHashSet<Disposable> set = resources; if (set == null) { set = new OpenHashSet<Disposable>(); resources = set; } set.add(d); return true; } } } d.dispose(); return false; }
@Override public boolean add(@NonNull Disposable d) { ObjectHelper.requireNonNull(d, "d is null"); if (!disposed) { synchronized (this) { if (!disposed) { OpenHashSet<Disposable> set = resources; if (set == null) { set = new OpenHashSet<Disposable>(); resources = set; } set.add(d); return true; } } } d.dispose(); return false; }
@Override public boolean add(@NonNull Disposable d) { ObjectHelper.requireNonNull(d, "d is null"); if (!disposed) { synchronized (this) { if (!disposed) { OpenHashSet<Disposable> set = resources; if (set == null) { set = new OpenHashSet<Disposable>(); resources = set; } set.add(d); return true; } } } d.dispose(); return false; }
/** * Atomically adds the given array of Disposables to the container or * disposes them all if the container has been disposed. * @param ds the array of Disposables * @return true if the operation was successful, false if the container has been disposed */ public boolean addAll(@NonNull Disposable... ds) { ObjectHelper.requireNonNull(ds, "ds is null"); if (!disposed) { synchronized (this) { if (!disposed) { OpenHashSet<Disposable> set = resources; if (set == null) { set = new OpenHashSet<Disposable>(ds.length + 1); resources = set; } for (Disposable d : ds) { ObjectHelper.requireNonNull(d, "d is null"); set.add(d); } return true; } } } for (Disposable d : ds) { d.dispose(); } return false; }
/** * Atomically adds the given array of Disposables to the container or * disposes them all if the container has been disposed. * @param ds the array of Disposables * @return true if the operation was successful, false if the container has been disposed */ public boolean addAll(@NonNull Disposable... ds) { ObjectHelper.requireNonNull(ds, "ds is null"); if (!disposed) { synchronized (this) { if (!disposed) { OpenHashSet<Disposable> set = resources; if (set == null) { set = new OpenHashSet<Disposable>(ds.length + 1); resources = set; } for (Disposable d : ds) { ObjectHelper.requireNonNull(d, "d is null"); set.add(d); } return true; } } } for (Disposable d : ds) { d.dispose(); } return false; }
/** * Atomically adds the given array of Disposables to the container or * disposes them all if the container has been disposed. * @param ds the array of Disposables * @return true if the operation was successful, false if the container has been disposed */ public boolean addAll(@NonNull Disposable... ds) { ObjectHelper.requireNonNull(ds, "ds is null"); if (!disposed) { synchronized (this) { if (!disposed) { OpenHashSet<Disposable> set = resources; if (set == null) { set = new OpenHashSet<Disposable>(ds.length + 1); resources = set; } for (Disposable d : ds) { ObjectHelper.requireNonNull(d, "d is null"); set.add(d); } return true; } } } for (Disposable d : ds) { d.dispose(); } return false; }
@Test public void addRemoveCollision() { Value v1 = new Value(); Value v2 = new Value(); OpenHashSet<Value> set = new OpenHashSet<Value>(); assertTrue(set.add(v1)); assertFalse(set.add(v1)); assertFalse(set.remove(v2)); assertTrue(set.add(v2)); assertFalse(set.add(v2)); assertTrue(set.remove(v2)); assertFalse(set.remove(v2)); } }