aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/labs/observe/observableset.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/labs/observe/observableset.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/labs/observe/observableset.js180
1 files changed, 0 insertions, 180 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/labs/observe/observableset.js b/contexts/data/lib/closure-library/closure/goog/labs/observe/observableset.js
deleted file mode 100644
index 8ce844e..0000000
--- a/contexts/data/lib/closure-library/closure/goog/labs/observe/observableset.js
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright 2012 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview A set of {@code goog.labs.observe.Observable}s that
- * allow registering and removing observers to all of the observables
- * in the set.
- */
-
-goog.provide('goog.labs.observe.ObservableSet');
-
-goog.require('goog.array');
-goog.require('goog.labs.observe.Observer');
-
-
-
-/**
- * Creates a set of observables.
- *
- * An ObservableSet is a collection of observables. Observers may be
- * reigstered and will receive notifications when any of the
- * observables notify. This class is meant to simplify management of
- * observations on multiple observables of the same nature.
- *
- * @constructor
- */
-goog.labs.observe.ObservableSet = function() {
- /**
- * The observers registered with this set.
- * @type {!Array.<!goog.labs.observe.Observer>}
- * @private
- */
- this.observers_ = [];
-
- /**
- * The observables in this set.
- * @type {!Array.<!goog.labs.observe.Observable>}
- * @private
- */
- this.observables_ = [];
-};
-
-
-/**
- * Adds an observer that observes all observables in the set. If new
- * observables are added to or removed from the set, the observer will
- * be registered or unregistered accordingly.
- *
- * The observer will not be added if there is already an equivalent
- * observer.
- *
- * @param {!goog.labs.observe.Observer} observer The observer to invoke.
- * @return {boolean} Whether the observer is actually added.
- */
-goog.labs.observe.ObservableSet.prototype.addObserver = function(observer) {
- // Check whether the observer already exists.
- if (goog.array.find(this.observers_, goog.partial(
- goog.labs.observe.Observer.equals, observer))) {
- return false;
- }
-
- this.observers_.push(observer);
- goog.array.forEach(this.observables_, function(o) {
- o.observe(observer);
- });
- return true;
-};
-
-
-/**
- * Removes an observer from the set. The observer will be removed from
- * all observables in the set. Does nothing if the observer is not in
- * the set.
- * @param {!goog.labs.observe.Observer} observer The observer to remove.
- * @return {boolean} Whether the observer is actually removed.
- */
-goog.labs.observe.ObservableSet.prototype.removeObserver = function(observer) {
- // Check that the observer exists before removing.
- var removed = goog.array.removeIf(this.observers_, goog.partial(
- goog.labs.observe.Observer.equals, observer));
-
- if (removed) {
- goog.array.forEach(this.observables_, function(o) {
- o.unobserve(observer);
- });
- }
- return removed;
-};
-
-
-/**
- * Removes all registered observers.
- */
-goog.labs.observe.ObservableSet.prototype.removeAllObservers = function() {
- this.unregisterAll_();
- this.observers_.length = 0;
-};
-
-
-/**
- * Adds an observable to the set. All previously added and future
- * observers will be added to the new observable as well.
- *
- * The observable will not be added if it is already registered in the
- * set.
- *
- * @param {!goog.labs.observe.Observable} observable The observable to add.
- * @return {boolean} Whether the observable is actually added.
- */
-goog.labs.observe.ObservableSet.prototype.addObservable = function(observable) {
- if (goog.array.contains(this.observables_, observable)) {
- return false;
- }
-
- this.observables_.push(observable);
- goog.array.forEach(this.observers_, function(observer) {
- observable.observe(observer);
- });
- return true;
-};
-
-
-/**
- * Removes an observable from the set. All observers registered on the
- * set will be removed from the observable as well.
- * @param {!goog.labs.observe.Observable} observable The observable to remove.
- * @return {boolean} Whether the observable is actually removed.
- */
-goog.labs.observe.ObservableSet.prototype.removeObservable = function(
- observable) {
- var removed = goog.array.remove(this.observables_, observable);
- if (removed) {
- goog.array.forEach(this.observers_, function(observer) {
- observable.unobserve(observer);
- });
- }
- return removed;
-};
-
-
-/**
- * Removes all registered observables.
- */
-goog.labs.observe.ObservableSet.prototype.removeAllObservables = function() {
- this.unregisterAll_();
- this.observables_.length = 0;
-};
-
-
-/**
- * Removes all registered observations and observables.
- */
-goog.labs.observe.ObservableSet.prototype.removeAll = function() {
- this.removeAllObservers();
- this.observables_.length = 0;
-};
-
-
-/**
- * Unregisters all registered observers from all registered observables.
- * @private
- */
-goog.labs.observe.ObservableSet.prototype.unregisterAll_ = function() {
- goog.array.forEach(this.observers_, function(observer) {
- goog.array.forEach(this.observables_, function(o) {
- o.unobserve(observer);
- });
- }, this);
-};