JAL-1645 source formatting and organise imports
[jalview.git] / src / com / stevesoft / pat / wrap / RandomAccessFileWrap.java
index 23782ad..66a1014 100755 (executable)
-//\r
-// This software is now distributed according to\r
-// the Lesser Gnu Public License.  Please see\r
-// http://www.gnu.org/copyleft/lesser.txt for\r
-// the details.\r
-//    -- Happy Computing!\r
-//\r
-package com.stevesoft.pat.wrap;\r
-\r
-import com.stevesoft.pat.*;\r
-import java.io.*;\r
-\r
-/** Provides a wrapper for a RandomAccessFile so that it\r
-    can be searched by Regex. */\r
-public class RandomAccessFileWrap implements StringLike {\r
-\r
-    long offset = 0;\r
-    public void setOffset(long o) {\r
-      offset = o;\r
-      i0 = iend = 0;\r
-    }\r
-    public long getOffset() {\r
-      return offset;\r
-    }\r
-    RandomAccessFile raf;\r
-    int i0=0,iend=0;\r
-    byte[] buf = new byte[1024];\r
-\r
-    public int getBufferSize() {\r
-      return buf.length;\r
-    }\r
-\r
-    public void setBufferSize(int bs) {\r
-      buf = new byte[bs];\r
-      i0 = iend = 0;\r
-    }\r
-\r
-    public RandomAccessFileWrap(String file) throws IOException {\r
-        this.raf = new RandomAccessFile(file,"r");\r
-    }\r
-    public RandomAccessFileWrap(RandomAccessFile raf) {\r
-        this.raf = raf;\r
-    }\r
-\r
-    public char charAt(int i) {\r
-        if(i >= i0 && i < iend)\r
-            return (char)buf[i-i0];\r
-\r
-        try {\r
-            i0 = i-5;\r
-            //if(i0+offset<0) i0=(int)(-offset);\r
-            if(i0<0) i0=0;\r
-            raf.seek(i0+offset);\r
-            iend = i0+raf.read(buf,0,buf.length);\r
-\r
-            if(i >= i0 && i < iend)\r
-                return (char)buf[i-i0];\r
-        } catch(Throwable t) {}\r
-\r
-        throw new ArrayIndexOutOfBoundsException("Out of bounds for file:"+\r
-          " i="+i+\r
-          ", Final Buffer: i0="+i0+\r
-          " iend="+iend);\r
-    }\r
-\r
-    public String toString() { throw new Error("Not implemented"); }\r
-    public int length() {\r
-      try {\r
-        long len = raf.length()-offset;\r
-        if(len > Integer.MAX_VALUE)\r
-          return Integer.MAX_VALUE;\r
-        return (int)len;\r
-      } catch(IOException ioe) {\r
-        return 0;\r
-      }\r
-    }\r
-    public String substring(int i1,int i2) {\r
-        StringBuffer sb = new StringBuffer();\r
-        for(int i=i1;i<i2;i++)\r
-            sb.append(charAt(i));\r
-        return sb.toString();\r
-    }\r
-    public Object unwrap() { return raf; }\r
-\r
-    public static void main(String[] files) throws IOException {\r
-      for(int i=0;i<files.length;i++) {\r
-        RandomAccessFileWrap fw =\r
-          new RandomAccessFileWrap(new RandomAccessFile(files[i],"r"));\r
-        Regex r = new Regex("toString\\(\\) *(?@{})");\r
-        r.setGFlag(true);\r
-        r.optimize();\r
-        System.out.print(files[i]+" ");\r
-        int j=0;\r
-        do {\r
-          if(r.searchFrom(fw,j)) {\r
-            System.out.println("Matched at index: "+\r
-             r.matchedFrom());\r
-            j=r.matchedTo();\r
-          } else\r
-            System.out.println("not found");\r
-          System.out.println(r.stringMatched());\r
-        } while(r.didMatch());\r
-      }\r
-    }\r
-\r
-    public BasicStringBufferLike newStringBufferLike() {\r
-      return new StringBufferWrap();\r
-    }\r
-\r
-    public int indexOf(char c) {\r
-      for(int i=0;i<length();i++)\r
-        if(charAt(i)==c)\r
-          return i;\r
-      return -1;\r
-    }\r
-}\r
+//
+// This software is now distributed according to
+// the Lesser Gnu Public License.  Please see
+// http://www.gnu.org/copyleft/lesser.txt for
+// the details.
+//    -- Happy Computing!
+//
+package com.stevesoft.pat.wrap;
+
+import jalview.util.MessageManager;
+
+import java.io.IOException;
+import java.io.RandomAccessFile;
+
+import com.stevesoft.pat.BasicStringBufferLike;
+import com.stevesoft.pat.Regex;
+import com.stevesoft.pat.StringLike;
+
+/**
+ * Provides a wrapper for a RandomAccessFile so that it can be searched by
+ * Regex.
+ */
+public class RandomAccessFileWrap implements StringLike
+{
+
+  long offset = 0;
+
+  public void setOffset(long o)
+  {
+    offset = o;
+    i0 = iend = 0;
+  }
+
+  public long getOffset()
+  {
+    return offset;
+  }
+
+  RandomAccessFile raf;
+
+  int i0 = 0, iend = 0;
+
+  byte[] buf = new byte[1024];
+
+  public int getBufferSize()
+  {
+    return buf.length;
+  }
+
+  public void setBufferSize(int bs)
+  {
+    buf = new byte[bs];
+    i0 = iend = 0;
+  }
+
+  public RandomAccessFileWrap(String file) throws IOException
+  {
+    this.raf = new RandomAccessFile(file, "r");
+  }
+
+  public RandomAccessFileWrap(RandomAccessFile raf)
+  {
+    this.raf = raf;
+  }
+
+  public char charAt(int i)
+  {
+    if (i >= i0 && i < iend)
+    {
+      return (char) buf[i - i0];
+    }
+
+    try
+    {
+      i0 = i - 5;
+      // if(i0+offset<0) i0=(int)(-offset);
+      if (i0 < 0)
+      {
+        i0 = 0;
+      }
+      raf.seek(i0 + offset);
+      iend = i0 + raf.read(buf, 0, buf.length);
+
+      if (i >= i0 && i < iend)
+      {
+        return (char) buf[i - i0];
+      }
+    } catch (Throwable t)
+    {
+    }
+
+    throw new ArrayIndexOutOfBoundsException(MessageManager.formatMessage(
+            "exception.out_of_bounds_for_file", new String[] {
+                Integer.valueOf(i).toString(),
+                Integer.valueOf(i0).toString(),
+                Integer.valueOf(iend).toString() }));
+  }
+
+  public String toString()
+  {
+    throw new Error(MessageManager.getString("error.not_implemented"));
+  }
+
+  public int length()
+  {
+    try
+    {
+      long len = raf.length() - offset;
+      if (len > Integer.MAX_VALUE)
+      {
+        return Integer.MAX_VALUE;
+      }
+      return (int) len;
+    } catch (IOException ioe)
+    {
+      return 0;
+    }
+  }
+
+  public String substring(int i1, int i2)
+  {
+    StringBuffer sb = new StringBuffer();
+    for (int i = i1; i < i2; i++)
+    {
+      sb.append(charAt(i));
+    }
+    return sb.toString();
+  }
+
+  public Object unwrap()
+  {
+    return raf;
+  }
+
+  public static void main(String[] files) throws IOException
+  {
+    for (int i = 0; i < files.length; i++)
+    {
+      RandomAccessFileWrap fw = new RandomAccessFileWrap(
+              new RandomAccessFile(files[i], "r"));
+      Regex r = new Regex("toString\\(\\) *(?@{})");
+      r.setGFlag(true);
+      r.optimize();
+      System.out.print(files[i] + " ");
+      int j = 0;
+      do
+      {
+        if (r.searchFrom(fw, j))
+        {
+          System.out.println("Matched at index: " + r.matchedFrom());
+          j = r.matchedTo();
+        }
+        else
+        {
+          System.out.println("not found");
+        }
+        System.out.println(r.stringMatched());
+      } while (r.didMatch());
+    }
+  }
+
+  public BasicStringBufferLike newStringBufferLike()
+  {
+    return new StringBufferWrap();
+  }
+
+  public int indexOf(char c)
+  {
+    for (int i = 0; i < length(); i++)
+    {
+      if (charAt(i) == c)
+      {
+        return i;
+      }
+    }
+    return -1;
+  }
+}