eventid.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2013 The Closure Library Authors. All Rights Reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS-IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. goog.provide('goog.events.EventId');
  15. /**
  16. * A templated class that is used when registering for events. Typical usage:
  17. *
  18. * /** @type {goog.events.EventId<MyEventObj>} *\
  19. * var myEventId = new goog.events.EventId(
  20. * goog.events.getUniqueId(('someEvent'));
  21. *
  22. * // No need to cast or declare here since the compiler knows the
  23. * // correct type of 'evt' (MyEventObj).
  24. * something.listen(myEventId, function(evt) {});
  25. *
  26. * @param {string} eventId
  27. * @template T
  28. * @constructor
  29. * @struct
  30. * @final
  31. */
  32. goog.events.EventId = function(eventId) {
  33. /** @const */ this.id = eventId;
  34. };
  35. /**
  36. * @override
  37. */
  38. goog.events.EventId.prototype.toString = function() {
  39. return this.id;
  40. };