]> source.dussan.org Git - jackcess.git/commitdiff
add RuntimeException wrapper for IOException
authorJames Ahlborn <jtahlborn@yahoo.com>
Fri, 15 Mar 2013 23:44:44 +0000 (23:44 +0000)
committerJames Ahlborn <jtahlborn@yahoo.com>
Fri, 15 Mar 2013 23:44:44 +0000 (23:44 +0000)
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/branches/jackcess-2@690 f203690c-595d-4dc9-a70b-905162fa7fd2

TODO.txt
src/java/com/healthmarketscience/jackcess/Cursor.java
src/java/com/healthmarketscience/jackcess/Database.java
src/java/com/healthmarketscience/jackcess/IndexCursor.java
src/java/com/healthmarketscience/jackcess/RuntimeIOException.java [new file with mode: 0644]
src/java/com/healthmarketscience/jackcess/impl/CursorImpl.java
src/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java
src/java/com/healthmarketscience/jackcess/impl/IndexCursorImpl.java
src/java/com/healthmarketscience/jackcess/impl/TableImpl.java
src/java/com/healthmarketscience/jackcess/util/CaseInsensitiveColumnMatcher.java
src/java/com/healthmarketscience/jackcess/util/Joiner.java

index a757bdac6babe7f0b8bb2c867b39e80d1d7d7867..9ded7f1c31f87a524abaaffd216c10b42ad738ca 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -43,3 +43,4 @@ Refactor goals:
   - enhance public api classes
   - add @usage tags to util classes
 - add unit tests for Row update/delete methods, add/update *FromMap methods
+- add reason to unsupop throws for indexes
index 55efb065cb473a6fc18ff429e7030430aab4b3bd..4cdce1de564ea51c4a010938db569317cd050b8a 100644 (file)
@@ -130,7 +130,7 @@ public interface Cursor extends Iterable<Row>
    * this cursor and returns a modifiable Iterator which will iterate through
    * all the rows of this table in reverse order.  Use of the Iterator follows
    * the same restrictions as a call to {@link #getPreviousRow}.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> reverseIterable();
@@ -141,7 +141,7 @@ public interface Cursor extends Iterable<Row>
    * all the rows of this table in reverse order, returning only the given
    * columns.  Use of the Iterator follows the same restrictions as a call to
    * {@link #getPreviousRow}.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> reverseIterable(
@@ -152,7 +152,7 @@ public interface Cursor extends Iterable<Row>
    * Iterator which will iterate through all the rows of this table.  Use of
    * the Iterator follows the same restrictions as a call to
    * {@link #getNextRow}.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> iterator();
@@ -162,7 +162,7 @@ public interface Cursor extends Iterable<Row>
    * this table and returns a modifiable Iterator which will iterate through
    * all the rows of this table, returning only the given columns.  Use of the
    * Iterator follows the same restrictions as a call to {@link #getNextRow}.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> iterable(
@@ -175,7 +175,7 @@ public interface Cursor extends Iterable<Row>
    * the Iterator follows the same restrictions as a call to {@link
    * #getNextRow}.  See {@link #findFirstRow(Column,Object)} for details on
    * #the columnPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> columnMatchIterable(
@@ -188,7 +188,7 @@ public interface Cursor extends Iterable<Row>
    * returning only the given columns.  Use of the Iterator follows the same
    * restrictions as a call to {@link #getNextRow}.  See {@link
    * #findFirstRow(Column,Object)} for details on the columnPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> columnMatchIterable(
@@ -201,7 +201,7 @@ public interface Cursor extends Iterable<Row>
    * all the rows of this table which match the given row pattern.  Use of the
    * Iterator follows the same restrictions as a call to {@link #getNextRow}.
    * See {@link #findFirstRow(Map)} for details on the rowPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> rowMatchIterable(
@@ -214,7 +214,7 @@ public interface Cursor extends Iterable<Row>
    * only the given columns.  Use of the Iterator follows the same
    * restrictions as a call to {@link #getNextRow}.  See {@link
    * #findFirstRow(Map)} for details on the rowPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> rowMatchIterable(
index 88701fcd6ab0435215ff4fb06e89abfc2cfdf047..0d3fe3603f4db5eb8a1dd42106d4df1d7cd06d26 100644 (file)
@@ -165,7 +165,7 @@ public interface Database extends Iterable<Table>, Closeable, Flushable
 
   /**
    * @return an unmodifiable Iterator of the user Tables in this Database.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    * @throws ConcurrentModificationException if a table is added to the
    *         database while an Iterator is in use.
index ebf136264979c882960f85239b253ea1ecda6f5e..6e1d0c97d3943f9bd3d46b587d494b191dc32a20 100644 (file)
@@ -70,7 +70,7 @@ public interface IndexCursor extends Cursor
   /**
    * Returns a modifiable Iterator which will iterate through all the rows of
    * this table which match the given index entries.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> entryIterator(Object... entryValues);
@@ -79,7 +79,7 @@ public interface IndexCursor extends Cursor
    * Returns a modifiable Iterator which will iterate through all the rows of
    * this table which match the given index entries, returning only the given
    * columns.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> entryIterator(
@@ -88,7 +88,7 @@ public interface IndexCursor extends Cursor
   /**
    * Returns an Iterable whose iterator() method returns the result of a call
    * to {@link #entryIterator(Object...)}
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> entryIterable(Object... entryValues);
@@ -96,7 +96,7 @@ public interface IndexCursor extends Cursor
   /**
    * Returns an Iterable whose iterator() method returns the result of a call
    * to {@link #entryIterator(Collection,Object...)}
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> entryIterable(
diff --git a/src/java/com/healthmarketscience/jackcess/RuntimeIOException.java b/src/java/com/healthmarketscience/jackcess/RuntimeIOException.java
new file mode 100644 (file)
index 0000000..3ffc9e6
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+Copyright (c) 2013 James Ahlborn
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+USA
+*/
+
+package com.healthmarketscience.jackcess;
+
+import java.io.IOException;
+
+/**
+ * RuntimeException wrapper around an IOException
+ *
+ * @author James Ahlborn
+ */
+public class RuntimeIOException extends IllegalStateException 
+{
+  private static final long serialVersionUID = 20130315L;  
+
+  public RuntimeIOException(IOException e) 
+  {
+    this(((e != null) ? e.getMessage() : null), e);
+  }
+
+  public RuntimeIOException(String msg, IOException e) 
+  {
+    super(msg, e);
+  }
+}
index 77e47980139097fe48eb5cfdf5fc16f9b819cb0c..9b09513df579c071cb8e3ae56ec19937aede2ec7 100644 (file)
@@ -43,6 +43,7 @@ import com.healthmarketscience.jackcess.util.ErrorHandler;
 import com.healthmarketscience.jackcess.util.ColumnMatcher;
 import com.healthmarketscience.jackcess.Column;
 import com.healthmarketscience.jackcess.Row;
+import com.healthmarketscience.jackcess.RuntimeIOException;
 import com.healthmarketscience.jackcess.Index;
 import com.healthmarketscience.jackcess.util.SimpleColumnMatcher;
 
@@ -448,7 +449,7 @@ public abstract class CursorImpl implements Cursor
    * Iterator which will iterate through all the rows of this table, returning
    * only the given columns.  Use of the Iterator follows the same
    * restrictions as a call to <code>getNextRow</code>.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> iterator(Collection<String> columnNames)
@@ -474,7 +475,7 @@ public abstract class CursorImpl implements Cursor
    * match the given column pattern.  Use of the Iterator follows the same
    * restrictions as a call to <code>getNextRow</code>.  See
    * {@link #findFirstRow(Column,Object)} for details on the columnPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> columnMatchIterator(
@@ -516,7 +517,7 @@ public abstract class CursorImpl implements Cursor
    * the Iterator follows the same restrictions as a call to
    * <code>getNextRow</code>.  See {@link #findFirstRow(Column,Object)} for
    * details on the columnPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> columnMatchIterator(
@@ -546,7 +547,7 @@ public abstract class CursorImpl implements Cursor
    * match the given row pattern.  Use of the Iterator follows the same
    * restrictions as a call to <code>getNextRow</code>.  See
    * {@link #findFirstRow(Map)} for details on the rowPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> rowMatchIterator(
@@ -574,7 +575,7 @@ public abstract class CursorImpl implements Cursor
    * the Iterator follows the same restrictions as a call to
    * <code>getNextRow</code>.  See {@link #findFirstRow(Map)} for details on
    * the rowPattern.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterator<Row> rowMatchIterator(
@@ -1017,7 +1018,7 @@ public abstract class CursorImpl implements Cursor
           _hasNext = findNext();
           _validRow = _hasNext;
         } catch(IOException e) {
-          throw new IllegalStateException(e);
+          throw new RuntimeIOException(e);
         }
       }
       return _hasNext; 
@@ -1032,7 +1033,7 @@ public abstract class CursorImpl implements Cursor
         _hasNext = null;
         return rtn;
       } catch(IOException e) {
-        throw new IllegalStateException(e);
+        throw new RuntimeIOException(e);
       }
     }
 
@@ -1042,7 +1043,7 @@ public abstract class CursorImpl implements Cursor
           deleteCurrentRow();
           _validRow = false;
         } catch(IOException e) {
-          throw new IllegalStateException(e);
+          throw new RuntimeIOException(e);
         }
       } else {
         throw new IllegalStateException("Not at valid row");
index 2083c4745845348837af20d5a170acfb32afb32e..5c193b3304522f9cfd125d5d0a3da2c4c0408253 100644 (file)
@@ -67,6 +67,7 @@ import com.healthmarketscience.jackcess.IndexCursor;
 import com.healthmarketscience.jackcess.PropertyMap;
 import com.healthmarketscience.jackcess.Relationship;
 import com.healthmarketscience.jackcess.Row;
+import com.healthmarketscience.jackcess.RuntimeIOException;
 import com.healthmarketscience.jackcess.Table;
 import com.healthmarketscience.jackcess.query.Query;
 import com.healthmarketscience.jackcess.util.CaseInsensitiveColumnMatcher;
@@ -1753,7 +1754,7 @@ public class DatabaseImpl implements Database
       try {
         _tableNameIter = getTableNames().iterator();
       } catch(IOException e) {
-        throw new IllegalStateException(e);
+        throw new RuntimeIOException(e);
       }
     }
 
@@ -1772,7 +1773,7 @@ public class DatabaseImpl implements Database
       try {
         return getTable(_tableNameIter.next());
       } catch(IOException e) {
-        throw new IllegalStateException(e);
+        throw new RuntimeIOException(e);
       }
     }
   }
index f6c49e3dc186faebf34d02c242c2203e45ac77d7..e4773274225288b93c012bcabd858b5c160155b7 100644 (file)
@@ -30,6 +30,7 @@ import java.util.Set;
 import com.healthmarketscience.jackcess.IndexCursor;
 import com.healthmarketscience.jackcess.Row;
 import com.healthmarketscience.jackcess.RowId;
+import com.healthmarketscience.jackcess.RuntimeIOException;
 import com.healthmarketscience.jackcess.impl.TableImpl.RowState;
 import com.healthmarketscience.jackcess.util.CaseInsensitiveColumnMatcher;
 import com.healthmarketscience.jackcess.util.ColumnMatcher;
@@ -537,7 +538,7 @@ public class IndexCursorImpl extends CursorImpl implements IndexCursor
         _hasNext = findFirstRowByEntryImpl(rowValues, true);
         _validRow = _hasNext;
       } catch(IOException e) {
-          throw new IllegalStateException(e);
+          throw new RuntimeIOException(e);
       }
     }
 
index 140f5d4f25d89fd7ff8b63de4879072cae8f1579..fb9900c12887946114bb0a90919b4512d2550e66 100644 (file)
@@ -880,7 +880,7 @@ public class TableImpl implements Table
    * Iterator which will iterate through all the rows of this table.  Use of
    * the Iterator follows the same restrictions as a call to
    * <code>getNextRow</code>.
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    * @usage _general_method_
    */
index 2779cbbb148d03add1568d0a4960112885348ad1..3b5170ba059d7073de02425e61b7a53f4ced319e 100644 (file)
@@ -22,6 +22,7 @@ package com.healthmarketscience.jackcess.util;
 
 import java.io.IOException;
 
+import com.healthmarketscience.jackcess.RuntimeIOException;
 import com.healthmarketscience.jackcess.Table;
 import com.healthmarketscience.jackcess.impl.ColumnImpl;
 
@@ -59,8 +60,8 @@ public class CaseInsensitiveColumnMatcher implements ColumnMatcher {
              ((cs1 != null) && (cs2 != null) &&
               cs1.toString().equalsIgnoreCase(cs2.toString())));
     } catch(IOException e) {
-      throw new IllegalStateException("Could not read column " + columnName 
-                                      + " value", e);
+      throw new RuntimeIOException("Could not read column " + columnName 
+                                   + " value", e);
     }
   }
 
index df11fd3f798b756c59c100572a3684e42760532d..d43ff1b7237954ead19cf543be55b0e0fc25b9a4 100644 (file)
@@ -219,7 +219,7 @@ public class Joiner
    * 
    * @param fromRow row from the "from" table (which must include the relevant
    *                columns for this join relationship)
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> findRowsIterable(Map<String,?> fromRow)
@@ -234,7 +234,7 @@ public class Joiner
    * @param fromRow row from the "from" table (which must include the relevant
    *                columns for this join relationship)
    * @param columnNames desired columns in the from table row
-   * @throws IllegalStateException if an IOException is thrown by one of the
+   * @throws RuntimeIOException if an IOException is thrown by one of the
    *         operations, the actual exception will be contained within
    */
   public Iterable<Row> findRowsIterable(