]> source.dussan.org Git - jackcess.git/commitdiff
include format in validation
authorJames Ahlborn <jtahlborn@yahoo.com>
Tue, 5 Jun 2007 01:41:35 +0000 (01:41 +0000)
committerJames Ahlborn <jtahlborn@yahoo.com>
Tue, 5 Jun 2007 01:41:35 +0000 (01:41 +0000)
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@147 f203690c-595d-4dc9-a70b-905162fa7fd2

src/java/com/healthmarketscience/jackcess/Column.java
src/java/com/healthmarketscience/jackcess/Database.java
src/java/com/healthmarketscience/jackcess/JetFormat.java

index c4555753931d4530fb112060e1dd997dc1c93f7a..033e93342ad891840a3cd0f513c0030d610a5210 100644 (file)
@@ -269,7 +269,11 @@ public class Column implements Comparable<Column> {
    *
    * @throw IllegalArgumentException if this column definition is invalid.
    */
-  public void validate() {
+  public void validate(JetFormat format) {
+    if(_format != format) {
+      throw new IllegalArgumentException("format must be " + format +
+                                         " but is " + _format);
+    }
     if(getType() == null) {
       throw new IllegalArgumentException("must have type");
     }
index 492df5f39994d08d0797afd879b6feeb17e3630e..1f93d46be94e9ae11adc1669ed124bf8f91870da 100644 (file)
@@ -417,7 +417,7 @@ public class Database
     Set<String> colNames = new HashSet<String>();
     // next, validate the column definitions
     for(Column column : columns) {
-      column.validate();
+      column.validate(_format);
       if(!colNames.add(column.getName().toUpperCase())) {
         throw new IllegalArgumentException("duplicate column name: " +
                                            column.getName());
index 8b01fc021e3619ecd8b607939553957c9abfa069..c40bcc227ab5e8e572d9a2ce67214814646b5ec2 100644 (file)
@@ -58,6 +58,9 @@ public abstract class JetFormat {
   //These constants are populated by this class's constructor.  They can't be
   //populated by the subclass's constructor because they are final, and Java
   //doesn't allow this; hence all the abstract defineXXX() methods.
+
+  /** the name of this format */
+  private final String _name;
   
   /** Database page size in bytes */
   public final int PAGE_SIZE;
@@ -141,7 +144,8 @@ public abstract class JetFormat {
     }
   }
   
-  private JetFormat() {
+  private JetFormat(String name) {
+    _name = name;
     
     PAGE_SIZE = definePageSize();
     
@@ -265,8 +269,17 @@ public abstract class JetFormat {
   protected abstract int definePagesPerUsageMapPage();
     
   protected abstract Charset defineCharset();
+
+  @Override
+  public String toString() {
+    return _name;
+  }
   
   private static final class Jet4Format extends JetFormat {
+
+    private Jet4Format() {
+      super("VERSION_4");
+    }
     
     protected int definePageSize() { return 4096; }