in progress
[jalview.git] / forester / java / src / org / forester / util / ForesterUtil.java
index 78b01ea..58dbf45 100644 (file)
@@ -38,6 +38,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.StringReader;
+import java.io.Writer;
 import java.math.BigDecimal;
 import java.net.URL;
 import java.text.DateFormat;
@@ -47,10 +48,12 @@ import java.text.NumberFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.SortedSet;
@@ -93,6 +96,17 @@ public final class ForesterUtil {
         }
     }
 
+    public static boolean seqIsLikelyToBeAa( final String s ) {
+        final String seq = s.toLowerCase();
+        if ( ( seq.indexOf( 'r' ) > -1 ) || ( seq.indexOf( 'd' ) > -1 ) || ( seq.indexOf( 'e' ) > -1 )
+                || ( seq.indexOf( 'q' ) > -1 ) || ( seq.indexOf( 'h' ) > -1 ) || ( seq.indexOf( 'k' ) > -1 )
+                || ( seq.indexOf( 'w' ) > -1 ) || ( seq.indexOf( 's' ) > -1 ) || ( seq.indexOf( 'm' ) > -1 )
+                || ( seq.indexOf( 'p' ) > -1 ) || ( seq.indexOf( 'v' ) > -1 ) ) {
+            return true;
+        }
+        return false;
+    }
+
     /**
      * This calculates a color. If value is equal to min the returned color is
      * minColor, if value is equal to max the returned color is maxColor,
@@ -220,6 +234,27 @@ public final class ForesterUtil {
         return s.replaceAll( "[\\s]+", " " );
     }
 
+    final public static void collection2file( final File file, final Collection<?> data, final String separator )
+            throws IOException {
+        final Writer writer = new BufferedWriter( new FileWriter( file ) );
+        collection2writer( writer, data, separator );
+        writer.close();
+    }
+
+    final public static void collection2writer( final Writer writer, final Collection<?> data, final String separator )
+            throws IOException {
+        boolean first = true;
+        for( final Object object : data ) {
+            if ( !first ) {
+                writer.write( separator );
+            }
+            else {
+                first = false;
+            }
+            writer.write( object.toString() );
+        }
+    }
+
     final public static String colorToHex( final Color color ) {
         final String rgb = Integer.toHexString( color.getRGB() );
         return rgb.substring( 2, rgb.length() );
@@ -536,6 +571,33 @@ public final class ForesterUtil {
         return map;
     }
 
+    final public static void map2file( final File file,
+                                       final Map<?, ?> data,
+                                       final String entry_separator,
+                                       final String data_separator ) throws IOException {
+        final Writer writer = new BufferedWriter( new FileWriter( file ) );
+        map2writer( writer, data, entry_separator, data_separator );
+        writer.close();
+    }
+
+    final public static void map2writer( final Writer writer,
+                                         final Map<?, ?> data,
+                                         final String entry_separator,
+                                         final String data_separator ) throws IOException {
+        boolean first = true;
+        for( final Entry<?, ?> entry : data.entrySet() ) {
+            if ( !first ) {
+                writer.write( data_separator );
+            }
+            else {
+                first = false;
+            }
+            writer.write( entry.getKey().toString() );
+            writer.write( entry_separator );
+            writer.write( entry.getValue().toString() );
+        }
+    }
+
     final public static StringBuffer mapToStringBuffer( final Map map, final String key_value_separator ) {
         final StringBuffer sb = new StringBuffer();
         for( final Iterator iter = map.keySet().iterator(); iter.hasNext(); ) {
@@ -772,6 +834,10 @@ public final class ForesterUtil {
         return str.split( regex );
     }
 
+    final public static String stringArrayToString( final String[] a ) {
+        return stringArrayToString( a, ", " );
+    }
+
     final public static String stringArrayToString( final String[] a, final String separator ) {
         final StringBuilder sb = new StringBuilder();
         if ( ( a != null ) && ( a.length > 0 ) ) {
@@ -783,6 +849,18 @@ public final class ForesterUtil {
         return sb.toString();
     }
 
+    final public static String[] stringListToArray( final List<String> list ) {
+        if ( list != null ) {
+            final String[] str = new String[ list.size() ];
+            int i = 0;
+            for( final String l : list ) {
+                str[ i++ ] = l;
+            }
+            return str;
+        }
+        return null;
+    }
+
     final public static String stringListToString( final List<String> l, final String separator ) {
         final StringBuilder sb = new StringBuilder();
         if ( ( l != null ) && ( l.size() > 0 ) ) {
@@ -794,10 +872,6 @@ public final class ForesterUtil {
         return sb.toString();
     }
 
-    final public static String stringArrayToString( final String[] a ) {
-        return stringArrayToString( a, ", " );
-    }
-
     final public static String[] stringSetToArray( final Set<String> strings ) {
         final String[] str_array = new String[ strings.size() ];
         int i = 0;
@@ -807,18 +881,6 @@ public final class ForesterUtil {
         return str_array;
     }
 
-    final public static String[] stringListToArray( final List<String> list ) {
-        if ( list != null ) {
-            final String[] str = new String[ list.size() ];
-            int i = 0;
-            for( final String l : list ) {
-                str[ i++ ] = l;
-            }
-            return str;
-        }
-        return null;
-    }
-
     final public static void unexpectedFatalError( final String prg_name, final Exception e ) {
         System.err.println();
         System.err.println( "[" + prg_name