JAL-1807 Bob's first commit -- Applet loaded; needs image
[jalview.git] / src / com / stevesoft / pat / wrap / RandomAccessFileWrap.java
index 23782ad..2ab5a95 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;
+
+
+/**
+ * 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.searchFromLike(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;
+//  }
+}