X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2Ftools%2FProcessPool.java;h=60c531fcfa82a46cff31a9114c04319211ac8800;hb=e2785e20355846acd9e81d50cf9a8a56b04ec095;hp=0e58ca2093bee6e323d5e2c05ef8c3d77b483125;hpb=eb07e696db878b45a4738f95e58eaef347d719c3;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 0e58ca2..60c531f 100644 --- a/forester/java/src/org/forester/archaeopteryx/tools/ProcessPool.java +++ b/forester/java/src/org/forester/archaeopteryx/tools/ProcessPool.java @@ -30,8 +30,16 @@ import java.util.List; public class ProcessPool { - private final static boolean DEBUG = true; - 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 ); @@ -41,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; @@ -50,25 +58,25 @@ 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" ); } getProcesses().add( p ); if ( DEBUG ) { - System.out.println( "added: " + p ); + 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( " removing: " + p ); + System.out.println( " pp: removing: " + p ); } getProcesses().remove( i ); return true; @@ -76,10 +84,11 @@ public class ProcessPool { 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; }