2 // FORESTER -- software libraries and applications
\r
3 // for evolutionary biology research and applications.
\r
5 // Copyright (C) 2008-2012 Christian M. Zmasek
\r
6 // Copyright (C) 2008-2012 Sanford Burnham Medical Research Institute
\r
7 // All rights reserved
\r
9 // This library is free software; you can redistribute it and/or
\r
10 // modify it under the terms of the GNU Lesser General Public
\r
11 // License as published by the Free Software Foundation; either
\r
12 // version 2.1 of the License, or (at your option) any later version.
\r
14 // This library is distributed in the hope that it will be useful,
\r
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
\r
17 // Lesser General Public License for more details.
\r
19 // You should have received a copy of the GNU Lesser General Public
\r
20 // License along with this library; if not, write to the Free Software
\r
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
\r
23 // Contact: phylosoft @ gmail . com
\r
24 // WWW: www.phylosoft.org/forester
\r
26 package org.forester.archaeopteryx.tools;
\r
28 import java.util.ArrayList;
\r
29 import java.util.List;
\r
31 public class ProcessPool {
\r
33 final static private ArrayList<ProcessRunning> _processes = new ArrayList<ProcessRunning>();
\r
35 public synchronized ProcessRunning getProcessByIndex( final int i ) {
\r
36 return getProcesses().get( i );
\r
39 public synchronized int size() {
\r
40 return getProcesses().size();
\r
43 public synchronized ProcessRunning getProcessById( final int id ) {
\r
44 for( final ProcessRunning p : getProcesses() ) {
\r
45 if ( p.getId() == id ) {
\r
52 public synchronized int addProcess( final String name ) {
\r
53 final ProcessRunning p = ProcessRunning.createInstance( name );
\r
54 final int id = p.getId();
\r
55 if ( getProcessById( id ) != null ) {
\r
56 throw new IllegalStateException( "process with id " + id + "already exists" );
\r
58 getProcesses().add( p );
\r
62 public synchronized boolean removeProcess( final int id ) {
\r
63 final int i = getProcessIndexById( id );
\r
65 getProcesses().remove( i );
\r
71 private synchronized int getProcessIndexById( final int id ) {
\r
72 final ProcessRunning p = getProcessById( id );
\r
79 private synchronized List<ProcessRunning> getProcesses() {
\r