]> source.dussan.org Git - jackcess.git/commitdiff
fix some pmd/findbugs issues
authorJames Ahlborn <jtahlborn@yahoo.com>
Sat, 3 Nov 2007 04:21:10 +0000 (04:21 +0000)
committerJames Ahlborn <jtahlborn@yahoo.com>
Sat, 3 Nov 2007 04:21:10 +0000 (04:21 +0000)
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@172 f203690c-595d-4dc9-a70b-905162fa7fd2

src/java/com/healthmarketscience/jackcess/Column.java
src/java/com/healthmarketscience/jackcess/Database.java
src/java/com/healthmarketscience/jackcess/Index.java
src/java/com/healthmarketscience/jackcess/PageChannel.java
src/java/com/healthmarketscience/jackcess/Table.java
src/java/com/healthmarketscience/jackcess/UsageMap.java

index 899ba2de8f6d7a0971c337f44192fb279414ac06..cef17ccf3281490fb011e15664b890efb6d58c36 100644 (file)
@@ -36,7 +36,6 @@ import java.nio.CharBuffer;
 import java.sql.SQLException;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.Iterator;
 import java.util.List;
 import java.util.TimeZone;
 import java.util.regex.Matcher;
@@ -120,6 +119,9 @@ public class Column implements Comparable<Column> {
    * Only used by unit tests
    */
   Column(boolean testing) {
+    if(!testing) {
+      throw new IllegalArgumentException();
+    }
     _format = JetFormat.VERSION_4;
     _pageChannel = new PageChannel(testing);
   }
@@ -337,15 +339,15 @@ public class Column implements Comparable<Column> {
     if (_type == DataType.BOOLEAN) {
       throw new IOException("Tried to read a boolean from data instead of null mask.");
     } else if (_type == DataType.BYTE) {
-      return new Byte(buffer.get());
+      return Byte.valueOf(buffer.get());
     } else if (_type == DataType.INT) {
-      return new Short(buffer.getShort());
+      return Short.valueOf(buffer.getShort());
     } else if (_type == DataType.LONG) {
-      return new Integer(buffer.getInt());
+      return Integer.valueOf(buffer.getInt());
     } else if (_type == DataType.DOUBLE) {
-      return new Double(buffer.getDouble());
+      return Double.valueOf(buffer.getDouble());
     } else if (_type == DataType.FLOAT) {
-      return new Float(buffer.getFloat());
+      return Float.valueOf(buffer.getFloat());
     } else if (_type == DataType.SHORT_DATE_TIME) {
       return readDateValue(buffer);
     } else if (_type == DataType.BINARY) {
index 450d51ae72d1920b9511f09a19d09d0c873825b5..58dc6fe4cbeb2864dafa34daf95babde00bdf3de 100644 (file)
@@ -427,7 +427,7 @@ public class Database
                                                     _format);
     
     //Add this table to our internal list.
-    addTable(name, new Integer(tdefPageNumber));
+    addTable(name, Integer.valueOf(tdefPageNumber));
     
     //Add this table to system tables
     addToSystemCatalog(name, tdefPageNumber);
@@ -446,7 +446,7 @@ public class Database
     for (iter = _systemCatalog.getColumns().iterator(); iter.hasNext(); idx++) {
       Column col = (Column) iter.next();
       if (COL_ID.equals(col.getName())) {
-        catalogRow[idx] = new Integer(pageNumber);
+        catalogRow[idx] = Integer.valueOf(pageNumber);
       } else if (COL_NAME.equals(col.getName())) {
         catalogRow[idx] = name;
       } else if (COL_TYPE.equals(col.getName())) {
@@ -458,7 +458,7 @@ public class Database
       } else if (COL_PARENT_ID.equals(col.getName())) {
         catalogRow[idx] = _tableParentId;
       } else if (COL_FLAGS.equals(col.getName())) {
-        catalogRow[idx] = new Integer(0);
+        catalogRow[idx] = Integer.valueOf(0);
       } else if (COL_OWNER.equals(col.getName())) {
         byte[] owner = new byte[2];
         catalogRow[idx] = owner;
@@ -484,7 +484,7 @@ public class Database
       } else if (col.getName().equals(COL_F_INHERITABLE)) {
         aceRow[idx] = Boolean.FALSE;
       } else if (col.getName().equals(COL_OBJECT_ID)) {
-        aceRow[idx] = new Integer(pageNumber);
+        aceRow[idx] = Integer.valueOf(pageNumber);
       } else if (col.getName().equals(COL_SID)) {
         aceRow[idx] = SID;
       }
index 9512a4e086b7f27ebdae7f32e96b94df4c5083b1..0cd6689840a3b9f2199fc0da28691d30e9b0cd9a 100644 (file)
@@ -57,10 +57,6 @@ public class Index implements Comparable<Index> {
   
   private static final short COLUMN_UNUSED = -1;
 
-  private static final int NEW_ENTRY_COLUMN_INDEX = -1;
-
-  private static final byte REVERSE_ORDER_FLAG = (byte)0x01;
-
   private static final byte INDEX_NODE_PAGE_TYPE = (byte)0x03;
   private static final byte INDEX_LEAF_PAGE_TYPE = (byte)0x04;
   
@@ -222,6 +218,10 @@ public class Index implements Comparable<Index> {
     _rowCount = rowCount;
   }
 
+  public int getRowCount() {
+    return _rowCount;
+  }
+
   /**
    * Note, there may still be some issues around the name of an index, this
    * information may not be correct.  I've done a variety of testing comparing
@@ -349,7 +349,7 @@ public class Index implements Comparable<Index> {
   {
     for (int i = 0; i < MAX_COLUMNS; i++) {
       short columnNumber = tableBuffer.getShort();
-      Byte flags = new Byte(tableBuffer.get());
+      Byte flags = Byte.valueOf(tableBuffer.get());
       if (columnNumber != COLUMN_UNUSED) {
         _columns.put(availableColumns.get(columnNumber), flags);
       }
@@ -472,9 +472,9 @@ public class Index implements Comparable<Index> {
           int length = i * 8 + j - lastStart;
           indexPage.position(entryPos + lastStart);
           if(isLeaf) {
-            entries.add(new Entry(indexPage, length, valuePrefix));
+            entries.add(new Entry(indexPage, valuePrefix));
           } else {
-            nodeEntries.add(new NodeEntry(indexPage, length, valuePrefix));
+            nodeEntries.add(new NodeEntry(indexPage, valuePrefix));
           }
 
           // read any shared "compressed" bytes
@@ -553,10 +553,11 @@ public class Index implements Comparable<Index> {
            (col.getType() == DataType.MEMO));
   }
 
-  private static boolean isFloatingPointColumn(Column col) {
-    return((col.getType() == DataType.FLOAT) ||
-           (col.getType() == DataType.DOUBLE));
-  }
+  // FIXME
+//   private static boolean isFloatingPointColumn(Column col) {
+//     return((col.getType() == DataType.FLOAT) ||
+//            (col.getType() == DataType.DOUBLE));
+//   }
 
   /**
    * Converts an index value for a fixed column into the index bytes
@@ -576,10 +577,10 @@ public class Index implements Comparable<Index> {
 //     Column column = entryCol._column;
     
 // //     if (value instanceof Integer) {
-// //       value = new Integer((int) (((Integer) value).longValue() -
+// //       value = Integer.valueOf((int) (((Integer) value).longValue() -
 // //                                  ((long) Integer.MAX_VALUE + 1L)));
 // //     } else if (value instanceof Short) {
-// //       value = new Short((short) (((Short) value).longValue() -
+// //       value = Short.valueOf((short) (((Short) value).longValue() -
 // //                                  ((long) Integer.MAX_VALUE + 1L)));
 // //     }
 
@@ -694,7 +695,7 @@ public class Index implements Comparable<Index> {
     /**
      * Read an existing entry in from a buffer
      */
-    public Entry(ByteBuffer buffer, int length, byte[] valuePrefix)
+    public Entry(ByteBuffer buffer, byte[] valuePrefix)
       throws IOException
     {
       for(Map.Entry<Column, Byte> entry : _columns.entrySet()) {
@@ -886,8 +887,6 @@ public class Index implements Comparable<Index> {
         // FIXME, reverse is 0x80, reverse null is 0xFF
         if (flag != (byte) 0) {
           byte[] data = new byte[_column.getType().getFixedSize()];
-          int numPrefixBytes = ((valuePrefix == null) ? 0 :
-                                (valuePrefix.length - 1));
           int dataOffset = 0;
           if((valuePrefix != null) && (valuePrefix.length > 1)) {
             System.arraycopy(valuePrefix, 1, data, 0,
@@ -899,10 +898,10 @@ public class Index implements Comparable<Index> {
           
           //ints and shorts are stored in index as value + 2147483648
           if (_value instanceof Integer) {
-            _value = new Integer((int) (((Integer) _value).longValue() +
+            _value = Integer.valueOf((int) (((Integer) _value).longValue() +
                                         (long) Integer.MAX_VALUE + 1L)); 
           } else if (_value instanceof Short) {
-            _value = new Short((short) (((Short) _value).longValue() +
+            _value = Short.valueOf((short) (((Short) _value).longValue() +
                                         (long) Integer.MAX_VALUE + 1L));
           }
         }
@@ -923,10 +922,10 @@ public class Index implements Comparable<Index> {
         buffer.put((byte) 0x7F);
         Comparable value = _value;
         if (value instanceof Integer) {
-          value = new Integer((int) (((Integer) value).longValue() -
+          value = Integer.valueOf((int) (((Integer) value).longValue() -
                                      ((long) Integer.MAX_VALUE + 1L)));
         } else if (value instanceof Short) {
-          value = new Short((short) (((Short) value).longValue() -
+          value = Short.valueOf((short) (((Short) value).longValue() -
                                      ((long) Integer.MAX_VALUE + 1L)));
         }
         buffer.put(_column.write(value, 0, ByteOrder.BIG_ENDIAN));
@@ -1114,10 +1113,10 @@ public class Index implements Comparable<Index> {
     /**
      * Read an existing node entry in from a buffer
      */
-    public NodeEntry(ByteBuffer buffer, int length, byte[] valuePrefix)
+    public NodeEntry(ByteBuffer buffer, byte[] valuePrefix)
       throws IOException
     {
-      super(buffer, length, valuePrefix);
+      super(buffer, valuePrefix);
 
       _subPageNumber = ByteUtil.getInt(buffer, ByteOrder.BIG_ENDIAN);
     }
index dcd31a6b63b8214ebddaa4d2fb8e57196be41de0..0c823c8620b57714aca14774871a0cfd66a590a5 100644 (file)
@@ -85,6 +85,9 @@ public class PageChannel implements Channel, Flushable {
    * Only used by unit tests
    */
   PageChannel(boolean testing) {
+    if(!testing) {
+      throw new IllegalArgumentException();
+    }
     _channel = null;
     _format = JetFormat.VERSION_4;
     _autoSync = false;
index 968ad95ff44e674f53605c728d47a3b20b955d8a..bb392b07f86f7e9b773fe6a1cdf941a3b2033bd1 100644 (file)
@@ -29,7 +29,6 @@ package com.healthmarketscience.jackcess;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -120,6 +119,9 @@ public class Table
    * Only used by unit tests
    */
   Table(boolean testing) throws IOException {
+    if(!testing) {
+      throw new IllegalArgumentException();
+    }
     _pageChannel = new PageChannel(testing);
   }
   
@@ -325,7 +327,6 @@ public class Table
     Map<String, Object> rtn = new LinkedHashMap<String, Object>(
         columns.size());
     for(Column column : columns) {
-      Object value = null;
       if((columnNames == null) || (columnNames.contains(column.getName()))) {
         // Add the value to the row data
         rtn.put(column.getName(), getRowColumn(rowBuffer, nullMask, column));
@@ -345,7 +346,7 @@ public class Table
   {
     boolean isNull = nullMask.isNull(column.getColumnNumber());
     if(column.getType() == DataType.BOOLEAN) {
-      return new Boolean(!isNull);  //Boolean values are stored in the null mask
+      return Boolean.valueOf(!isNull);  //Boolean values are stored in the null mask
     } else if(isNull) {
       // well, that's easy!
       return null;
@@ -571,7 +572,6 @@ public class Table
     for(Column col : columns) {
       // we add the number of bytes for the column name and 2 bytes for the
       // length of the column name
-      ByteBuffer cName = format.CHARSET.encode(col.getName());
       int nameByteLen = (col.getName().length() *
                          JetFormat.TEXT_FIELD_UNIT_SIZE);
       totalTableDefSize += nameByteLen + 2;
@@ -938,24 +938,6 @@ public class Table
     // reset to end of index info
     tableBuffer.position(idxEndOffset);
   }
-
-  /**
-   * Sets up the _varColumns list, assuming the _columns has already been set
-   * up.
-   */
-  private void setupVariableColumns()
-  {
-    // pull out the variable length columns into a separate list
-    for(Column col : _columns) {
-      if(col.isVariableLength()) {
-        _varColumns.add(col);
-      }
-    }
-
-    // lastly sort these columns based on their index into the variable length
-    // offset table, because we will write the columns in this order
-    Collections.sort(_varColumns, VAR_LEN_COLUMN_COMPARATOR);
-  }
   
   /**
    * Writes the given page data to the given page number, clears any other
index bf19fb47b1c3dc9ad1527c84d2f02c18971d02e3..ec3bc36120022dc82d41a0963eb0b3a1345990d2 100644 (file)
@@ -473,17 +473,15 @@ public class UsageMap
           if(_assumeOutOfRangeBitsOn) {
 
             // we are using an inline map and assuming that anything not
-            // within the current range is "on"
+            // within the current range is "on".  so, if we attempt to set a
+            // bit which is before the current page, ignore it, we are not
+            // going back for it.
             if((firstPage == PageChannel.INVALID_PAGE_NUMBER) ||
                (pageNumber > lastPage)) {
 
               // move to new start page, filling in as we move
               moveToNewStartPageForRemove(firstPage, lastPage, pageNumber);
               
-            } else {
-              
-              // umm, we are removing an already passed bit.  whatever, we are
-              // not going back for it
             }
             
           } else {
@@ -661,7 +659,7 @@ public class UsageMap
       mapPageBuffer.put((byte) 0x01);  //Unknown
       mapPageBuffer.putShort((short) 0); //Unknown
       for(int i = 0; i < mapPageBuffer.limit(); ++i) {
-        byte b = mapPageBuffer.get(i);
+        mapPageBuffer.get(i);
       }
       int mapPageNum = _mapPageHolder.getPageNumber();
       getTableBuffer().putInt(calculateMapPagePointerOffset(pageIndex),