From: James Ahlborn Date: Thu, 8 Sep 2016 12:29:32 +0000 (+0000) Subject: update javadocs, minor cleanups X-Git-Tag: jackcess-2.1.5~7^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fheads%2Fmutateops;p=jackcess.git update javadocs, minor cleanups git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/branches/mutateops@1030 f203690c-595d-4dc9-a70b-905162fa7fd2 --- diff --git a/TODO.txt b/TODO.txt index e3a12d6..fdae514 100644 --- a/TODO.txt +++ b/TODO.txt @@ -2,8 +2,6 @@ Missing pieces: - fix long text index entries (for new general sort order) * ??? -- implement foreign key index creation & relationship creation - * MEDIUM - implement table creation w/ complex columns * MEDIUM - implement table, column, index renaming @@ -19,13 +17,3 @@ Rename: - Table - update table def, queries, relationships, complex tables? - Column - update table def, queries, relationships, complex tables? - Index - update table def - -Index add (fk impl) -- Database.addIndex(IndexBuilder) - use TableCreator internal - - add indexes separately from adding fk info, (backing indexes need to be - added first) - - require baking indexes to be created first (does MSAccess?) - - need to populate index after creation! populate first, then add? - - add relationships -- flush all non-system tables from DbImpl._tableCache (references to old table - impls) diff --git a/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java b/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java index abebec0..76a1783 100644 --- a/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java +++ b/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java @@ -34,6 +34,7 @@ import com.healthmarketscience.jackcess.impl.TableUpdater; * existing Table using the {@link #addToTable(Table)} method. * * @author James Ahlborn + * @see TableBuilder * @usage _general_class_ */ public class ColumnBuilder { diff --git a/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java b/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java index 472740e..d10a6fb 100644 --- a/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java +++ b/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java @@ -35,6 +35,7 @@ import com.healthmarketscience.jackcess.impl.TableUpdater; * existing Table using the {@link #addToTable(Table)} method. * * @author James Ahlborn + * @see TableBuilder * @usage _general_class_ */ public class IndexBuilder diff --git a/src/main/java/com/healthmarketscience/jackcess/RelationshipBuilder.java b/src/main/java/com/healthmarketscience/jackcess/RelationshipBuilder.java index f826a7c..8ba9bb1 100644 --- a/src/main/java/com/healthmarketscience/jackcess/RelationshipBuilder.java +++ b/src/main/java/com/healthmarketscience/jackcess/RelationshipBuilder.java @@ -27,9 +27,24 @@ import com.healthmarketscience.jackcess.impl.RelationshipImpl; /** * Builder style class for constructing a {@link Relationship}, and, * optionally, the associated backing foreign key (if referential integrity - * enforcement is enabled). + * enforcement is enabled). A Relationship can only be constructed for + * {@link Table}s which already exist in the {@link Database}. Additionally, + * if integrity enforcement is enabled, there must already be a unique index + * on the "from" Table for the relevant columns (same requirement as MS + * Access). + *

+ * Example: + *

+ *   Relationship rel = new RelationshipBuilder("FromTable", "ToTable")
+ *     .addColumns("ID", "FK_ID")
+ *     .setReferentialIntegrity()
+ *     .setCascadeDeletes()
+ *     .toRelationship(db);
+ * 
* * @author James Ahlborn + * @see TableBuilder + * @usage _general_class_ */ public class RelationshipBuilder { diff --git a/src/main/java/com/healthmarketscience/jackcess/TableBuilder.java b/src/main/java/com/healthmarketscience/jackcess/TableBuilder.java index 8f0b233..31aa3a0 100644 --- a/src/main/java/com/healthmarketscience/jackcess/TableBuilder.java +++ b/src/main/java/com/healthmarketscience/jackcess/TableBuilder.java @@ -45,6 +45,9 @@ import com.healthmarketscience.jackcess.impl.TableCreator; * * * @author James Ahlborn + * @see ColumnBuilder + * @see IndexBuilder + * @see RelationshipBuilder * @usage _general_class_ */ public class TableBuilder { diff --git a/src/main/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java b/src/main/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java index fc70fe4..8ed8f57 100644 --- a/src/main/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java +++ b/src/main/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java @@ -1021,8 +1021,9 @@ public class DatabaseImpl implements Database * Create a new table in this database * @param name Name of the table to create * @param columns List of Columns in the table - * @usage _general_method_ + * @deprecated use {@link TableBuilder} instead */ + @Deprecated public void createTable(String name, List columns) throws IOException { @@ -1034,8 +1035,9 @@ public class DatabaseImpl implements Database * @param name Name of the table to create * @param columns List of Columns in the table * @param indexes List of IndexBuilders describing indexes for the table - * @usage _general_method_ + * @deprecated use {@link TableBuilder} instead */ + @Deprecated public void createTable(String name, List columns, List indexes) throws IOException diff --git a/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java b/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java index 60e8bea..6a6fd34 100644 --- a/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java +++ b/src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java @@ -25,7 +25,6 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; -import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.LinkedHashMap; @@ -63,7 +62,7 @@ public class DatabaseTest extends TestCase Database db = create(fileFormat); try { - ((DatabaseImpl)db).createTable("test", Collections.emptyList()); + new TableBuilder("test").toTable(db); fail("created table with no columns?"); } catch(IllegalArgumentException e) { // success @@ -598,9 +597,9 @@ public class DatabaseTest extends TestCase columns.add(new ColumnBuilder(colName, DataType.TEXT).toColumn()); } - ((DatabaseImpl)db).createTable("test", columns); - - Table t = db.getTable("test"); + Table t = new TableBuilder("test") + .addColumns(columns) + .toTable(db); List row = new ArrayList(); Map expectedRowData = new LinkedHashMap();