X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2Ftools%2FInferenceManager.java;h=30db1768a243ae93dfe152bcb505a354b077b670;hb=891cca0970ffc3f1091b405164af423353a54bea;hp=fc679aa91b2385140617891c2123dd97abc2d771;hpb=b6e7f73953742c72d1df633b79a2c39404fbbad0;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/tools/InferenceManager.java b/forester/java/src/org/forester/archaeopteryx/tools/InferenceManager.java index fc679aa..30db176 100644 --- a/forester/java/src/org/forester/archaeopteryx/tools/InferenceManager.java +++ b/forester/java/src/org/forester/archaeopteryx/tools/InferenceManager.java @@ -1,10 +1,76 @@ package org.forester.archaeopteryx.tools; -public class InferenceManager { +import java.io.File; - public static InferenceManager getInstance() { - // TODO Auto-generated method stub +import org.forester.archaeopteryx.Configuration; + +public final class InferenceManager { + + private final static String DEFAULT_PATHS[] = { "C:\\Program Files\\", "C:\\Program Files (x86)\\", "/bin/", + "/usr/local/bin/", "/usr/bin/" }; + private final File _path_to_local_mafft; + private final File _path_to_local_fastme; + private final File _path_to_local_raxml; + + public static InferenceManager createInstance( final Configuration c ) { + return new InferenceManager( c.getpathToLocalMafft(), + c.getPathToLocalFastme(), + c.getPathToLocalRaxml(), + c.getPathToLocalClustalOmega() ); + } + + public boolean canDoMsa() { + return ( getPathToLocalMafft() != null ); + } + + public File getPathToLocalMafft() { + return _path_to_local_mafft; + } + + public File getPathToLocalFastme() { + return _path_to_local_fastme; + } + + public File getPathToLocalRaxml() { + return _path_to_local_raxml; + } + + private final static File createLocalPath( final File path, final String name ) { + if ( ( path != null ) && path.canExecute() && !path.isDirectory() ) { + return path; + } + final File p1 = new File( name ); + if ( p1.canExecute() && !p1.isDirectory() ) { + return p1; + } + for( final String path_str : DEFAULT_PATHS ) { + try { + final File p2 = new File( path_str + name ); + if ( p2.canExecute() && !p2.isDirectory() ) { + return p2; + } + final File p3 = new File( path_str + name + ".exe" ); + if ( p3.canExecute() && !p3.isDirectory() ) { + return p3; + } + final File p4 = new File( path_str + name + ".bat" ); + if ( p4.canExecute() && !p4.isDirectory() ) { + return p4; + } + } + catch ( final Exception e ) { + } + } return null; } + + private InferenceManager( final File path_to_local_mafft, + final File path_to_local_fastme, + final File path_to_local_raxml, + final File path_to_local_clustalo ) { + _path_to_local_mafft = createLocalPath( path_to_local_mafft, "mafft" ); + _path_to_local_fastme = createLocalPath( path_to_local_fastme, "fastme" ); + _path_to_local_raxml = createLocalPath( path_to_local_raxml, "raxml" ); + } }