UNPKG

sams

Version:
57 lines (45 loc) 1.44 kB
var cocktail = require('cocktail'); var Logger = require('../../annotations/Logger'); var VictimsStructureInterface = require('./VictimsStructureInterface'); var Queue = require('./Queue'); cocktail.use(Logger); /* ********************************************************************** * This Queue doesn't define Equals nor Clone method. Should it? * * This Queue doesn't allow to have the same element twice. * ********************************************************************** */ cocktail.mix({ //Define this file as a single class module exportable. '@exports': module, '@as': 'class', '@extends': Queue, '@traits': [VictimsStructureInterface], '@logger' : [console, "ReQQueue:"], /* * Add a page to the Queue. * If the page is already in the queue, remove it, * then enqueue it again. */ //@Override add: function(page) { //Don't use contains method here because //you would have to search again for the index. var array = this._array; var index = this._indexOf(page); if (index != -1) { array.splice(index ,1); this.log(page.toString() + " removed. Waiting to requeue."); } this.callSuper("add", page); return this; }, clone: function() { var ReQueueQueue = require('./ReQueueQueue'); var aux = new ReQueueQueue(); this._array.forEach(function(page) { aux.add(page.clone()); }); return aux; } });