aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2016-06-24 00:23:14 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2016-06-24 00:23:14 +0000
commit7e0838c282354251e664577c817af4efd8b484b2 (patch)
treed69120f9d532ab1e3a1e3a4838c7845c0e395a09
parent4dddf8bcbea7b4b977ba085a11d8bff20fd66909 (diff)
downloadjackcess-7e0838c282354251e664577c817af4efd8b484b2.tar.gz
jackcess-7e0838c282354251e664577c817af4efd8b484b2.zip
rework public api for adding index/column, ditch TableModBuilder
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/branches/mutateops@1000 f203690c-595d-4dc9-a70b-905162fa7fd2
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java14
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java15
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/TableModBuilder.java71
3 files changed, 27 insertions, 73 deletions
diff --git a/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java b/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java
index cb4b554..69b4b33 100644
--- a/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java
+++ b/src/main/java/com/healthmarketscience/jackcess/ColumnBuilder.java
@@ -25,10 +25,13 @@ import com.healthmarketscience.jackcess.impl.ColumnImpl;
import com.healthmarketscience.jackcess.impl.DatabaseImpl;
import com.healthmarketscience.jackcess.impl.JetFormat;
import com.healthmarketscience.jackcess.impl.PropertyMapImpl;
+import com.healthmarketscience.jackcess.impl.TableImpl;
+import com.healthmarketscience.jackcess.impl.TableMutator;
/**
* Builder style class for constructing a {@link Column}. See {@link
- * TableBuilder} for example usage.
+ * TableBuilder} for example usage. Additionally, a Column can be added to an
+ * existing Table using the {@link #addToTable(Table)} method.
*
* @author James Ahlborn
* @usage _general_class_
@@ -472,6 +475,15 @@ public class ColumnBuilder {
return this;
}
+ /**
+ * Adds a new Column to the given Table with the currently configured
+ * attributes.
+ */
+ public Column addToTable(Table table) throws IOException
+ {
+ return new TableMutator((TableImpl)table).addColumn(this);
+ }
+
private String withErrorContext(String msg) {
return msg + "(Column=" + getName() + ")";
}
diff --git a/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java b/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java
index 52a4550..1f808d6 100644
--- a/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java
+++ b/src/main/java/com/healthmarketscience/jackcess/IndexBuilder.java
@@ -16,6 +16,7 @@ limitations under the License.
package com.healthmarketscience.jackcess;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -25,10 +26,13 @@ import com.healthmarketscience.jackcess.impl.DatabaseImpl;
import com.healthmarketscience.jackcess.impl.IndexData;
import com.healthmarketscience.jackcess.impl.IndexImpl;
import com.healthmarketscience.jackcess.impl.JetFormat;
+import com.healthmarketscience.jackcess.impl.TableImpl;
+import com.healthmarketscience.jackcess.impl.TableMutator;
/**
* Builder style class for constructing an {@link Index}. See {@link
- * TableBuilder} for example usage.
+ * TableBuilder} for example usage. Additionally, an Index can be added to an
+ * existing Table using the {@link #addToTable(Table)} method.
*
* @author James Ahlborn
* @usage _general_class_
@@ -185,6 +189,15 @@ public class IndexBuilder
}
}
+ /**
+ * Adds a new Index to the given Table with the currently configured
+ * attributes.
+ */
+ public Index addToTable(Table table) throws IOException
+ {
+ return new TableMutator((TableImpl)table).addIndex(this);
+ }
+
private String withErrorContext(String msg) {
return msg + "(Index=" + getName() + ")";
}
diff --git a/src/main/java/com/healthmarketscience/jackcess/TableModBuilder.java b/src/main/java/com/healthmarketscience/jackcess/TableModBuilder.java
deleted file mode 100644
index e776c3c..0000000
--- a/src/main/java/com/healthmarketscience/jackcess/TableModBuilder.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright (c) 2016 James Ahlborn
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package com.healthmarketscience.jackcess;
-
-import java.io.IOException;
-
-import com.healthmarketscience.jackcess.impl.TableImpl;
-import com.healthmarketscience.jackcess.impl.TableMutator;
-
-/**
- *
- * @author James Ahlborn
- */
-public class TableModBuilder
-{
- private Table _table;
-
- public TableModBuilder(Table table) {
- _table = table;
- }
-
- public AddColumn addColumn(ColumnBuilder column) {
- return new AddColumn(column);
- }
-
- public AddIndex addIndex(IndexBuilder index) {
- return new AddIndex(index);
- }
-
- public class AddColumn
- {
- private ColumnBuilder _column;
-
- private AddColumn(ColumnBuilder column) {
- _column = column;
- }
-
- public Column add() throws IOException
- {
- return new TableMutator((TableImpl)_table).addColumn(_column);
- }
- }
-
- public class AddIndex
- {
- private IndexBuilder _index;
-
- private AddIndex(IndexBuilder index) {
- _index = index;
- }
-
- public Index add() throws IOException
- {
- return new TableMutator((TableImpl)_table).addIndex(_index);
- }
- }
-}