X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2Ftools%2FProcessPool.java;h=c9426d53523fcf66d52d1e4fb19e3474006b6734;hb=693353f5ea85d3e50a77f9b1cd9d87711d23412b;hp=0c4ed99fb1d18ecc456158079bcc58da97ed207b;hpb=48d8b16f44043d4bfe721af7be48e15b31fb3f18;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/tools/ProcessPool.java b/forester/java/src/org/forester/archaeopteryx/tools/ProcessPool.java index 0c4ed99..c9426d5 100644 --- a/forester/java/src/org/forester/archaeopteryx/tools/ProcessPool.java +++ b/forester/java/src/org/forester/archaeopteryx/tools/ProcessPool.java @@ -21,7 +21,7 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA // // Contact: phylosoft @ gmail . com -// WWW: www.phylosoft.org/forester +// WWW: https://sites.google.com/site/cmzmasek/home/software/forester package org.forester.archaeopteryx.tools; @@ -30,7 +30,16 @@ import java.util.List; public class ProcessPool { - final static private ArrayList _processes = new ArrayList(); + private final static boolean DEBUG = true; + private final ArrayList _processes; + + private ProcessPool() { + _processes = new ArrayList(); + } + + public static ProcessPool createInstance() { + return new ProcessPool(); + } public synchronized ProcessRunning getProcessByIndex( final int i ) { return getProcesses().get( i ); @@ -40,7 +49,7 @@ public class ProcessPool { return getProcesses().size(); } - public synchronized ProcessRunning getProcessById( final int id ) { + public synchronized ProcessRunning getProcessById( final long id ) { for( final ProcessRunning p : getProcesses() ) { if ( p.getId() == id ) { return p; @@ -49,29 +58,37 @@ public class ProcessPool { return null; } - public synchronized int addProcess( final String name ) { + public synchronized long addProcess( final String name ) { final ProcessRunning p = ProcessRunning.createInstance( name ); - final int id = p.getId(); + final long id = p.getId(); if ( getProcessById( id ) != null ) { - throw new IllegalStateException( "process with id " + id + "already exists" ); + throw new IllegalStateException( " process with id " + id + "already exists" ); } getProcesses().add( p ); + if ( DEBUG ) { + System.out.println( " pp: added: " + p ); + } return id; } - public synchronized boolean removeProcess( final int id ) { + public synchronized boolean removeProcess( final long id ) { final int i = getProcessIndexById( id ); if ( i >= 0 ) { + if ( DEBUG ) { + final ProcessRunning p = getProcessById( id ); + System.out.println( " pp: removing: " + p ); + } getProcesses().remove( i ); return true; } return false; } - private synchronized int getProcessIndexById( final int id ) { - final ProcessRunning p = getProcessById( id ); - if ( p != null ) { - return p.getId(); + private synchronized int getProcessIndexById( final long id ) { + for( int i = 0; i < size(); ++i ) { + if ( getProcesses().get( i ).getId() == id ) { + return i; + } } return -1; }