aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2019-08-06 21:18:05 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2019-08-06 21:18:05 +0000
commitff9e16462ef5b3e720b676f9d11670e0d6a8d0b2 (patch)
tree8a2580d9526855d20568385cc0cade34f8d13cb6 /src
parent6a189ba076b4484bbb2bf3d55c7aa4160ed7fde1 (diff)
downloadjackcess-ff9e16462ef5b3e720b676f9d11670e0d6a8d0b2.tar.gz
jackcess-ff9e16462ef5b3e720b676f9d11670e0d6a8d0b2.zip
convenience method for using case insensitive matcher
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/branches/a97_indexes@1305 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/CursorBuilder.java52
1 files changed, 30 insertions, 22 deletions
diff --git a/src/main/java/com/healthmarketscience/jackcess/CursorBuilder.java b/src/main/java/com/healthmarketscience/jackcess/CursorBuilder.java
index d4f063c..41b1d47 100644
--- a/src/main/java/com/healthmarketscience/jackcess/CursorBuilder.java
+++ b/src/main/java/com/healthmarketscience/jackcess/CursorBuilder.java
@@ -27,6 +27,7 @@ import com.healthmarketscience.jackcess.impl.IndexCursorImpl;
import com.healthmarketscience.jackcess.impl.IndexData;
import com.healthmarketscience.jackcess.impl.IndexImpl;
import com.healthmarketscience.jackcess.impl.TableImpl;
+import com.healthmarketscience.jackcess.util.CaseInsensitiveColumnMatcher;
import com.healthmarketscience.jackcess.util.ColumnMatcher;
@@ -82,7 +83,7 @@ public class CursorBuilder {
_beforeFirst = true;
return this;
}
-
+
/**
* Sets the cursor so that it will start at the end (unless a savepoint is
* given).
@@ -167,7 +168,7 @@ public class CursorBuilder {
setEndRow(specificRow);
return this;
}
-
+
/**
* Sets the starting and ending row for a range based index cursor to the
* given entry (where the given values correspond to the index's columns).
@@ -181,7 +182,7 @@ public class CursorBuilder {
return this;
}
-
+
/**
* Sets the starting row for a range based index cursor.
* <p>
@@ -191,7 +192,7 @@ public class CursorBuilder {
_startRow = startRow;
return this;
}
-
+
/**
* Sets the starting row for a range based index cursor to the given entry
* (where the given values correspond to the index's columns).
@@ -224,7 +225,7 @@ public class CursorBuilder {
_endRow = endRow;
return this;
}
-
+
/**
* Sets the ending row for a range based index cursor to the given entry
* (where the given values correspond to the index's columns).
@@ -257,6 +258,13 @@ public class CursorBuilder {
}
/**
+ * Sets the ColumnMatcher to an instance of CaseInsensitiveColumnMatcher
+ */
+ public CursorBuilder setCaseInsensitive() {
+ return setColumnMatcher(CaseInsensitiveColumnMatcher.INSTANCE);
+ }
+
+ /**
* Returns a new cursor for the table, constructed to the given
* specifications.
*/
@@ -280,7 +288,7 @@ public class CursorBuilder {
}
return cursor;
}
-
+
/**
* Returns a new index cursor for the table, constructed to the given
* specifications.
@@ -304,7 +312,7 @@ public class CursorBuilder {
* Note, index based table traversal may not include all rows, as certain
* types of indexes do not include all entries (namely, some indexes ignore
* null entries, see {@link Index#shouldIgnoreNulls}).
- *
+ *
* @param index index for the table which will define traversal order as
* well as enhance certain lookups
*/
@@ -323,7 +331,7 @@ public class CursorBuilder {
{
return createCursor(table.getPrimaryKeyIndex());
}
-
+
/**
* Creates an indexed cursor for the given table, narrowed to the given
* range.
@@ -331,7 +339,7 @@ public class CursorBuilder {
* Note, index based table traversal may not include all rows, as certain
* types of indexes do not include all entries (namely, some indexes ignore
* null entries, see {@link Index#shouldIgnoreNulls}).
- *
+ *
* @param index index for the table which will define traversal order as
* well as enhance certain lookups
* @param startRow the first row of data for the cursor (inclusive), or
@@ -348,7 +356,7 @@ public class CursorBuilder {
.setEndRow(endRow)
.toIndexCursor();
}
-
+
/**
* Creates an indexed cursor for the given table, narrowed to the given
* range.
@@ -356,7 +364,7 @@ public class CursorBuilder {
* Note, index based table traversal may not include all rows, as certain
* types of indexes do not include all entries (namely, some indexes ignore
* null entries, see {@link Index#shouldIgnoreNulls}).
- *
+ *
* @param index index for the table which will define traversal order as
* well as enhance certain lookups
* @param startRow the first row of data for the cursor, or {@code null} for
@@ -388,7 +396,7 @@ public class CursorBuilder {
* <p>
* Warning, this method <i>always</i> starts searching from the beginning of
* the Table (you cannot use it to find successive matches).
- *
+ *
* @param table the table to search
* @param rowPattern pattern to be used to find the row
* @return the matching row or {@code null} if a match could not be found.
@@ -402,12 +410,12 @@ public class CursorBuilder {
}
return null;
}
-
+
/**
* Convenience method for finding a specific row (as defined by the cursor)
* where the index entries match the given values. See {@link
* IndexCursor#findRowByEntry(Object...)} for details on the entryValues.
- *
+ *
* @param index the index to search
* @param entryValues the column values for the index's columns.
* @return the matching row or {@code null} if a match could not be found.
@@ -417,12 +425,12 @@ public class CursorBuilder {
{
return createCursor(index).findRowByEntry(entryValues);
}
-
+
/**
* Convenience method for finding a specific row by the primary key of the
* table. See {@link IndexCursor#findRowByEntry(Object...)} for details on
* the entryValues.
- *
+ *
* @param table the table to search
* @param entryValues the column values for the table's primary key columns.
* @return the matching row or {@code null} if a match could not be found.
@@ -432,7 +440,7 @@ public class CursorBuilder {
{
return findRowByEntry(table.getPrimaryKeyIndex(), entryValues);
}
-
+
/**
* Convenience method for finding a specific row in a table which matches a
* given row "pattern". See {@link Cursor#findFirstRow(Column,Object)} for
@@ -442,7 +450,7 @@ public class CursorBuilder {
* match or a matching row with {@code null} for the desired value. If
* distinguishing this situation is important, you will need to use a Cursor
* directly instead of this convenience method.
- *
+ *
* @param table the table to search
* @param column column whose value should be returned
* @param columnPattern column being matched by the valuePattern
@@ -460,7 +468,7 @@ public class CursorBuilder {
}
return null;
}
-
+
/**
* Convenience method for finding a specific row in an indexed table which
* matches a given row "pattern". See {@link Cursor#findFirstRow(Map)} for
@@ -468,7 +476,7 @@ public class CursorBuilder {
* <p>
* Warning, this method <i>always</i> starts searching from the beginning of
* the Table (you cannot use it to find successive matches).
- *
+ *
* @param index index to assist the search
* @param rowPattern pattern to be used to find the row
* @return the matching row or {@code null} if a match could not be found.
@@ -482,7 +490,7 @@ public class CursorBuilder {
}
return null;
}
-
+
/**
* Convenience method for finding a specific row in a table which matches a
* given row "pattern". See {@link Cursor#findFirstRow(Column,Object)} for
@@ -492,7 +500,7 @@ public class CursorBuilder {
* match or a matching row with {@code null} for the desired value. If
* distinguishing this situation is important, you will need to use a Cursor
* directly instead of this convenience method.
- *
+ *
* @param index index to assist the search
* @param column column whose value should be returned
* @param columnPattern column being matched by the valuePattern