JAL-1807 Bob's first commit -- Applet loaded; needs image
[jalview.git] / src / com / stevesoft / pat / wrap / RandomAccessFileWrap.java
index 90e7691..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 java.io.*;\r
-\r
-import com.stevesoft.pat.*;\r
-\r
-/** Provides a wrapper for a RandomAccessFile so that it\r
-    can be searched by Regex. */\r
-public class RandomAccessFileWrap\r
-    implements StringLike\r
-{\r
-\r
-  long offset = 0;\r
-  public void setOffset(long o)\r
-  {\r
-    offset = o;\r
-    i0 = iend = 0;\r
-  }\r
-\r
-  public long getOffset()\r
-  {\r
-    return offset;\r
-  }\r
-\r
-  RandomAccessFile raf;\r
-  int i0 = 0, iend = 0;\r
-  byte[] buf = new byte[1024];\r
-\r
-  public int getBufferSize()\r
-  {\r
-    return buf.length;\r
-  }\r
-\r
-  public void setBufferSize(int bs)\r
-  {\r
-    buf = new byte[bs];\r
-    i0 = iend = 0;\r
-  }\r
-\r
-  public RandomAccessFileWrap(String file)\r
-      throws IOException\r
-  {\r
-    this.raf = new RandomAccessFile(file, "r");\r
-  }\r
-\r
-  public RandomAccessFileWrap(RandomAccessFile raf)\r
-  {\r
-    this.raf = raf;\r
-  }\r
-\r
-  public char charAt(int i)\r
-  {\r
-    if (i >= i0 && i < iend)\r
-    {\r
-      return (char) buf[i - i0];\r
-    }\r
-\r
-    try\r
-    {\r
-      i0 = i - 5;\r
-      //if(i0+offset<0) i0=(int)(-offset);\r
-      if (i0 < 0)\r
-      {\r
-        i0 = 0;\r
-      }\r
-      raf.seek(i0 + offset);\r
-      iend = i0 + raf.read(buf, 0, buf.length);\r
-\r
-      if (i >= i0 && i < iend)\r
-      {\r
-        return (char) buf[i - i0];\r
-      }\r
-    }\r
-    catch (Throwable t)\r
-    {}\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()\r
-  {\r
-    throw new Error("Not implemented");\r
-  }\r
-\r
-  public int length()\r
-  {\r
-    try\r
-    {\r
-      long len = raf.length() - offset;\r
-      if (len > Integer.MAX_VALUE)\r
-      {\r
-        return Integer.MAX_VALUE;\r
-      }\r
-      return (int) len;\r
-    }\r
-    catch (IOException ioe)\r
-    {\r
-      return 0;\r
-    }\r
-  }\r
-\r
-  public String substring(int i1, int i2)\r
-  {\r
-    StringBuffer sb = new StringBuffer();\r
-    for (int i = i1; i < i2; i++)\r
-    {\r
-      sb.append(charAt(i));\r
-    }\r
-    return sb.toString();\r
-  }\r
-\r
-  public Object unwrap()\r
-  {\r
-    return raf;\r
-  }\r
-\r
-  public static void main(String[] files)\r
-      throws IOException\r
-  {\r
-    for (int i = 0; i < files.length; i++)\r
-    {\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
-      {\r
-        if (r.searchFrom(fw, j))\r
-        {\r
-          System.out.println("Matched at index: " +\r
-                             r.matchedFrom());\r
-          j = r.matchedTo();\r
-        }\r
-        else\r
-        {\r
-          System.out.println("not found");\r
-        }\r
-        System.out.println(r.stringMatched());\r
-      }\r
-      while (r.didMatch());\r
-    }\r
-  }\r
-\r
-  public BasicStringBufferLike newStringBufferLike()\r
-  {\r
-    return new StringBufferWrap();\r
-  }\r
-\r
-  public int indexOf(char c)\r
-  {\r
-    for (int i = 0; i < length(); i++)\r
-    {\r
-      if (charAt(i) == c)\r
-      {\r
-        return i;\r
-      }\r
-    }\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;
+//  }
+}