\r
public class ProcessPool {\r
\r
- private final static boolean DEBUG = true;\r
- final static private ArrayList<ProcessRunning> _processes = new ArrayList<ProcessRunning>();\r
+ private final static boolean DEBUG = true;\r
+ private final ArrayList<ProcessRunning> _processes;\r
+\r
+ private ProcessPool() {\r
+ _processes = new ArrayList<ProcessRunning>();\r
+ }\r
+\r
+ public static ProcessPool createInstance() {\r
+ return new ProcessPool();\r
+ }\r
\r
public synchronized ProcessRunning getProcessByIndex( final int i ) {\r
return getProcesses().get( i );\r
return getProcesses().size();\r
}\r
\r
- public synchronized ProcessRunning getProcessById( final int id ) {\r
+ public synchronized ProcessRunning getProcessById( final long id ) {\r
for( final ProcessRunning p : getProcesses() ) {\r
if ( p.getId() == id ) {\r
return p;\r
return null;\r
}\r
\r
- public synchronized int addProcess( final String name ) {\r
+ public synchronized long addProcess( final String name ) {\r
final ProcessRunning p = ProcessRunning.createInstance( name );\r
- final int id = p.getId();\r
+ final long id = p.getId();\r
if ( getProcessById( id ) != null ) {\r
throw new IllegalStateException( " process with id " + id + "already exists" );\r
}\r
getProcesses().add( p );\r
if ( DEBUG ) {\r
- System.out.println( "added: " + p );\r
+ System.out.println( " pp: added: " + p );\r
}\r
return id;\r
}\r
\r
- public synchronized boolean removeProcess( final int id ) {\r
+ public synchronized boolean removeProcess( final long id ) {\r
final int i = getProcessIndexById( id );\r
if ( i >= 0 ) {\r
if ( DEBUG ) {\r
final ProcessRunning p = getProcessById( id );\r
- System.out.println( " removing: " + p );\r
+ System.out.println( " pp: removing: " + p );\r
}\r
getProcesses().remove( i );\r
return true;\r
return false;\r
}\r
\r
- private synchronized int getProcessIndexById( final int id ) {\r
- final ProcessRunning p = getProcessById( id );\r
- if ( p != null ) {\r
- return p.getId();\r
+ private synchronized int getProcessIndexById( final long id ) {\r
+ for( int i = 0; i < size(); ++i ) {\r
+ if ( getProcesses().get( i ).getId() == id ) {\r
+ return i;\r
+ }\r
}\r
return -1;\r
}\r