examples/collection.js
'use strict';
var clint = require('../index');
var Interface = clint.Interface;
var Class = clint.Class;
var ICollectionItem = new Interface('ICollectionItem', {
getKey: {args: [], result: String}
});
var ICollection = new Interface('ICollection', {
add: [ICollectionItem],
remove: [ICollectionItem],
has: [ICollectionItem]
});
function Collection() {
this.items = {};
}
Class(Collection, null, [ICollection], {
add: function(newItem) {
this.items[newItem.getKey()] = newItem;
return this;
},
remove: function(item) {
delete this.items[item.getKey()];
return this;
},
has: function(item) {
return typeof this.items[item.getKey()] !== 'undefined';
}
});