aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2016-09-08 12:29:32 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2016-09-08 12:29:32 +0000
commit4de28cb4f6595148baaf36a57875e20c32faeda2 (patch)
treebbc5df96955b5a052c037831988a93e7444486f9
parent8fdd98bd2a2bcfda6c7cd408180adad5009b9740 (diff)
downloadjackcess-4de28cb4f6595148baaf36a57875e20c32faeda2.tar.gz
jackcess-4de28cb4f6595148baaf36a57875e20c32faeda2.zip
update javadocs, minor cleanupsmutateops
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/branches/mutateops@1030 f203690c-595d-4dc9-a70b-905162fa7fd2
-rw-r--r--TODO.txt12
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java1
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java1
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/RelationshipBuilder.java17
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/TableBuilder.java3
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java6
-rw-r--r--src/test/java/com/healthmarketscience/jackcess/DatabaseTest.java9
7 files changed, 29 insertions, 20 deletions
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).
+ * <p/>
+ * Example:
+ * <pre>
+ * Relationship rel = new RelationshipBuilder("FromTable", "ToTable")
+ * .addColumns("ID", "FK_ID")
+ * .setReferentialIntegrity()
+ * .setCascadeDeletes()
+ * .toRelationship(db);
+ * </pre>
*
* @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;
* </pre>
*
* @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<ColumnBuilder> 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<ColumnBuilder> columns,
List<IndexBuilder> 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.<ColumnBuilder>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<String> row = new ArrayList<String>();
Map<String,Object> expectedRowData = new LinkedHashMap<String, Object>();