X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Fworkers%2FAlignCalcManager.js;fp=site%2Fj2s%2Fjalview%2Fworkers%2FAlignCalcManager.js;h=39105f89a3e6fbe9c395a21a2c67c506cedfc034;hp=7f25a9c460d7ebc11f5bd7394ce7b21adf822ed0;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/jalview/workers/AlignCalcManager.js b/site/j2s/jalview/workers/AlignCalcManager.js index 7f25a9c..39105f8 100644 --- a/site/j2s/jalview/workers/AlignCalcManager.js +++ b/site/j2s/jalview/workers/AlignCalcManager.js @@ -1,192 +1,192 @@ -Clazz.declarePackage ("jalview.workers"); -Clazz.load (["jalview.api.AlignCalcManagerI", "java.util.ArrayList", "$.Collections", "$.HashSet", "$.Hashtable"], "jalview.workers.AlignCalcManager", null, function () { -c$ = Clazz.decorateAsClass (function () { -this.restartable = null; -this.blackList = null; -this.inProgress = null; -this.updating = null; -this.canUpdate = null; -Clazz.instantialize (this, arguments); -}, jalview.workers, "AlignCalcManager", null, jalview.api.AlignCalcManagerI); -Clazz.prepareFields (c$, function () { -this.restartable = java.util.Collections.synchronizedList ( new java.util.ArrayList ()); -this.blackList = java.util.Collections.synchronizedList ( new java.util.ArrayList ()); -this.inProgress = java.util.Collections.synchronizedMap ( new java.util.Hashtable ()); -this.updating = java.util.Collections.synchronizedMap ( new java.util.Hashtable ()); -this.canUpdate = new java.util.HashSet (); -}); -Clazz.overrideMethod (c$, "notifyStart", -function (worker) { -{ -var upd = this.updating.get (worker.getClass ()); -if (upd == null) { -this.updating.put (worker.getClass (), upd = java.util.Collections.synchronizedList ( new java.util.ArrayList ())); -}{ -upd.add (worker); -}}}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "alreadyDoing", -function (worker) { -{ -return this.inProgress.containsKey (worker.getClass ()); -}}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "isPending", -function (workingClass) { -var upd; -{ -upd = this.updating.get (workingClass.getClass ()); -if (upd == null) { -return false; -}{ -if (upd.size () > 1) { -return true; -}}return false; -}}, "jalview.api.AlignCalcWorkerI"); -Clazz.defineMethod (c$, "numberLive", -function (worker) { -{ -var upd = this.updating.get (worker.getClass ()); -if (upd == null) { -return 0; -};return upd.size (); -}}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "notifyWorking", -function (worker) { -{ -if (this.inProgress.get (worker.getClass ()) != null) { -if (false) { -System.err.println ("Warning: Multiple workers are running of type " + worker.getClass ()); -}return false; -}this.inProgress.put (worker.getClass (), worker); -}return true; -}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "workerComplete", -function (worker) { -{ -this.inProgress.remove (worker.getClass ()); -var upd = this.updating.get (worker.getClass ()); -if (upd != null) { -{ -upd.remove (worker); -}this.canUpdate.add (worker); -}}}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "workerCannotRun", -function (worker) { -{ -this.blackList.add (worker.getClass ()); -}}, "jalview.api.AlignCalcWorkerI"); -Clazz.defineMethod (c$, "isBlackListed", -function (workerType) { -{ -return this.blackList.contains (workerType); -}}, "Class"); -Clazz.overrideMethod (c$, "startWorker", -function (worker) { -var workerAsThread = worker; -if (workerAsThread.isAlive ()) { -workerAsThread.interrupt (); -worker = worker.getNewWorker (); -}worker.setName (worker.getClass ().getName ()); -worker.start (); -}, "jalview.api.AlignCalcWorkerI"); -Clazz.defineMethod (c$, "isWorking", -function (worker) { -{ -return worker != null && this.inProgress.get (worker.getClass ()) === worker; -}}, "jalview.api.AlignCalcWorkerI"); -Clazz.defineMethod (c$, "isWorking", -function () { -{ -return this.inProgress.size () > 0; -}}); -Clazz.overrideMethod (c$, "registerWorker", -function (worker) { -{ -if (!this.restartable.contains (worker)) { -this.restartable.add (worker); -}this.startWorker (worker); -}}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "restartWorkers", -function () { -{ -for (var worker, $worker = this.restartable.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { -this.startWorker (worker); -} -}}); -Clazz.overrideMethod (c$, "workingInvolvedWith", -function (alignmentAnnotation) { -{ -for (var worker, $worker = this.inProgress.values ().iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { -if (worker.involves (alignmentAnnotation)) { -return true; -}} -}{ -for (var workers, $workers = this.updating.values ().iterator (); $workers.hasNext () && ((workers = $workers.next ()) || true);) { -for (var worker, $worker = workers.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { -if (worker.involves (alignmentAnnotation)) { -return true; -}} -} -}return false; -}, "jalview.datamodel.AlignmentAnnotation"); -Clazz.overrideMethod (c$, "updateAnnotationFor", -function (workerClass) { -var workers; -{ -workers = this.canUpdate.toArray ( new Array (0)); -}for (var worker, $worker = 0, $$worker = workers; $worker < $$worker.length && ((worker = $$worker[$worker]) || true); $worker++) { -if (workerClass.equals (worker.getClass ())) { -worker.updateAnnotation (); -}} -}, "Class"); -Clazz.overrideMethod (c$, "getRegisteredWorkersOfClass", -function (workerClass) { -var workingClass = new java.util.ArrayList (); -var workers; -{ -workers = this.canUpdate.toArray ( new Array (this.canUpdate.size ())); -}for (var worker, $worker = 0, $$worker = workers; $worker < $$worker.length && ((worker = $$worker[$worker]) || true); $worker++) { -if (workerClass.equals (worker.getClass ())) { -workingClass.add (worker); -}} -return (workingClass.size () == 0) ? null : workingClass; -}, "Class"); -Clazz.overrideMethod (c$, "startRegisteredWorkersOfClass", -function (workerClass) { -var workers = this.getRegisteredWorkersOfClass (workerClass); -if (workers == null) { -return false; -}for (var worker, $worker = workers.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { -if (!this.isPending (worker)) { -this.startWorker (worker); -} else { -System.err.println ("Pending exists for " + workerClass); -}} -return true; -}, "Class"); -Clazz.overrideMethod (c$, "workerMayRun", -function (worker) { -{ -if (this.blackList.contains (worker.getClass ())) { -this.blackList.remove (worker.getClass ()); -}}}, "jalview.api.AlignCalcWorkerI"); -Clazz.overrideMethod (c$, "removeRegisteredWorkersOfClass", -function (typeToRemove) { -var workers = this.getRegisteredWorkersOfClass (typeToRemove); -var removable = new java.util.ArrayList (); -var toremovannot = new java.util.HashSet (); -{ -for (var worker, $worker = this.restartable.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { -if (typeToRemove.equals (worker.getClass ())) { -removable.add (worker); -toremovannot.add (worker); -}} -this.restartable.removeAll (removable); -}{ -for (var worker, $worker = this.canUpdate.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { -if (typeToRemove.equals (worker.getClass ())) { -removable.add (worker); -toremovannot.add (worker); -}} -this.canUpdate.removeAll (removable); -}}, "Class"); -}); +Clazz.declarePackage ("jalview.workers"); +Clazz.load (["jalview.api.AlignCalcManagerI", "java.util.ArrayList", "$.Collections", "$.HashSet", "$.Hashtable"], "jalview.workers.AlignCalcManager", null, function () { +c$ = Clazz.decorateAsClass (function () { +this.restartable = null; +this.blackList = null; +this.inProgress = null; +this.updating = null; +this.canUpdate = null; +Clazz.instantialize (this, arguments); +}, jalview.workers, "AlignCalcManager", null, jalview.api.AlignCalcManagerI); +Clazz.prepareFields (c$, function () { +this.restartable = java.util.Collections.synchronizedList ( new java.util.ArrayList ()); +this.blackList = java.util.Collections.synchronizedList ( new java.util.ArrayList ()); +this.inProgress = java.util.Collections.synchronizedMap ( new java.util.Hashtable ()); +this.updating = java.util.Collections.synchronizedMap ( new java.util.Hashtable ()); +this.canUpdate = new java.util.HashSet (); +}); +Clazz.overrideMethod (c$, "notifyStart", +function (worker) { +{ +var upd = this.updating.get (worker.getClass ()); +if (upd == null) { +this.updating.put (worker.getClass (), upd = java.util.Collections.synchronizedList ( new java.util.ArrayList ())); +}{ +upd.add (worker); +}}}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "alreadyDoing", +function (worker) { +{ +return this.inProgress.containsKey (worker.getClass ()); +}}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "isPending", +function (workingClass) { +var upd; +{ +upd = this.updating.get (workingClass.getClass ()); +if (upd == null) { +return false; +}{ +if (upd.size () > 1) { +return true; +}}return false; +}}, "jalview.api.AlignCalcWorkerI"); +Clazz.defineMethod (c$, "numberLive", +function (worker) { +{ +var upd = this.updating.get (worker.getClass ()); +if (upd == null) { +return 0; +};return upd.size (); +}}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "notifyWorking", +function (worker) { +{ +if (this.inProgress.get (worker.getClass ()) != null) { +if (false) { +System.err.println ("Warning: Multiple workers are running of type " + worker.getClass ()); +}return false; +}this.inProgress.put (worker.getClass (), worker); +}return true; +}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "workerComplete", +function (worker) { +{ +this.inProgress.remove (worker.getClass ()); +var upd = this.updating.get (worker.getClass ()); +if (upd != null) { +{ +upd.remove (worker); +}this.canUpdate.add (worker); +}}}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "workerCannotRun", +function (worker) { +{ +this.blackList.add (worker.getClass ()); +}}, "jalview.api.AlignCalcWorkerI"); +Clazz.defineMethod (c$, "isBlackListed", +function (workerType) { +{ +return this.blackList.contains (workerType); +}}, "Class"); +Clazz.overrideMethod (c$, "startWorker", +function (worker) { +var workerAsThread = worker; +if (workerAsThread.isAlive ()) { +workerAsThread.interrupt (); +worker = worker.getNewWorker (); +}worker.setName (worker.getClass ().getName ()); +worker.start (); +}, "jalview.api.AlignCalcWorkerI"); +Clazz.defineMethod (c$, "isWorking", +function (worker) { +{ +return worker != null && this.inProgress.get (worker.getClass ()) === worker; +}}, "jalview.api.AlignCalcWorkerI"); +Clazz.defineMethod (c$, "isWorking", +function () { +{ +return this.inProgress.size () > 0; +}}); +Clazz.overrideMethod (c$, "registerWorker", +function (worker) { +{ +if (!this.restartable.contains (worker)) { +this.restartable.add (worker); +}this.startWorker (worker); +}}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "restartWorkers", +function () { +{ +for (var worker, $worker = this.restartable.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { +this.startWorker (worker); +} +}}); +Clazz.overrideMethod (c$, "workingInvolvedWith", +function (alignmentAnnotation) { +{ +for (var worker, $worker = this.inProgress.values ().iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { +if (worker.involves (alignmentAnnotation)) { +return true; +}} +}{ +for (var workers, $workers = this.updating.values ().iterator (); $workers.hasNext () && ((workers = $workers.next ()) || true);) { +for (var worker, $worker = workers.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { +if (worker.involves (alignmentAnnotation)) { +return true; +}} +} +}return false; +}, "jalview.datamodel.AlignmentAnnotation"); +Clazz.overrideMethod (c$, "updateAnnotationFor", +function (workerClass) { +var workers; +{ +workers = this.canUpdate.toArray ( new Array (0)); +}for (var worker, $worker = 0, $$worker = workers; $worker < $$worker.length && ((worker = $$worker[$worker]) || true); $worker++) { +if (workerClass.equals (worker.getClass ())) { +worker.updateAnnotation (); +}} +}, "Class"); +Clazz.overrideMethod (c$, "getRegisteredWorkersOfClass", +function (workerClass) { +var workingClass = new java.util.ArrayList (); +var workers; +{ +workers = this.canUpdate.toArray ( new Array (this.canUpdate.size ())); +}for (var worker, $worker = 0, $$worker = workers; $worker < $$worker.length && ((worker = $$worker[$worker]) || true); $worker++) { +if (workerClass.equals (worker.getClass ())) { +workingClass.add (worker); +}} +return (workingClass.size () == 0) ? null : workingClass; +}, "Class"); +Clazz.overrideMethod (c$, "startRegisteredWorkersOfClass", +function (workerClass) { +var workers = this.getRegisteredWorkersOfClass (workerClass); +if (workers == null) { +return false; +}for (var worker, $worker = workers.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { +if (!this.isPending (worker)) { +this.startWorker (worker); +} else { +System.err.println ("Pending exists for " + workerClass); +}} +return true; +}, "Class"); +Clazz.overrideMethod (c$, "workerMayRun", +function (worker) { +{ +if (this.blackList.contains (worker.getClass ())) { +this.blackList.remove (worker.getClass ()); +}}}, "jalview.api.AlignCalcWorkerI"); +Clazz.overrideMethod (c$, "removeRegisteredWorkersOfClass", +function (typeToRemove) { +var workers = this.getRegisteredWorkersOfClass (typeToRemove); +var removable = new java.util.ArrayList (); +var toremovannot = new java.util.HashSet (); +{ +for (var worker, $worker = this.restartable.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { +if (typeToRemove.equals (worker.getClass ())) { +removable.add (worker); +toremovannot.add (worker); +}} +this.restartable.removeAll (removable); +}{ +for (var worker, $worker = this.canUpdate.iterator (); $worker.hasNext () && ((worker = $worker.next ()) || true);) { +if (typeToRemove.equals (worker.getClass ())) { +removable.add (worker); +toremovannot.add (worker); +}} +this.canUpdate.removeAll (removable); +}}, "Class"); +});