You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by kr...@apache.org on 2007/03/26 10:09:47 UTC
svn commit: r522447 -
/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedClob.java
Author: kristwaa
Date: Mon Mar 26 01:09:42 2007
New Revision: 522447
URL: http://svn.apache.org/viewvc?view=rev&rev=522447
Log:
DERBY-2450: JavaDoc rewrite/-format for EmbedClob.position(String,long).
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedClob.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedClob.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedClob.java?view=diff&rev=522447&r1=522446&r2=522447
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedClob.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedClob.java Mon Mar 26 01:09:42 2007
@@ -370,30 +370,39 @@
/**
* Determines the character position at which the specified substring
- * <code>searchstr</code> appears in the <code>CLOB</code>. The search
+ * <code>searchStr</code> appears in the <code>CLOB</code> value. The search
* begins at position <code>start</code>. The method uses the following
- * algorithm for the search
- * If the clob is materialized in string use String.indexOf
- * else
- * Read a block of 256 chars from start position
- * compare the chars with the searchString
- * If a match is found
- * increment the matchCount
- * if the matchCount is equal to lenght of searchString return
- * Remember the position where the stream has a char equal to the first char
- * of the searchString. This position we will use to start next try for match
- * if the current match fails.
- * if a mismatch is found
- * start fresh match from the position remembered if there is no postion
- * found for next match start with current position + 1
+ * algorithm for the search:
+ * <p>
+ * If the <code>CLOB</code> value is materialized as a string, use
+ * <code>String.indexOf</code>.
+ * <p>
+ * If the <code>CLOB</code> value is represented as a stream, read a block of
+ * chars from the start position and compare the chars with
+ * <code>searchStr</code>. Then:
+ * <ul> <li>If a matching char is found, increment <code>matchCount</code>.
+ * <li>If <code>matchCount</code> is equal to the length of
+ * <code>searchStr</code>, return with the current start position.
+ * <li>If no match is found, and there is more data, restart search
+ * (see below).
+ * <li>If all data is processed without a match, return <code>-1</code>.
+ * </ul>
+ * <p>
+ * The position where the stream has a char equal to the first char of
+ * <code>searchStr</code> will be remembered and used as the starting
+ * position for the next search-iteration if the current match fails.
+ * If a non-matching char is found, start a fresh search from the position
+ * remembered. If there is no such position, next search will start at the
+ * current position <code>+1</code>.
*
* @param searchStr the substring for which to search
* @param start the position at which to begin searching; the first position
- * is 1
- * @return the position at which the substring appears, else -1; the first
- * position is 1
+ * is <code>1</code>
+ * @return The position at which the substring appears, <code>-1</code> if
+ * it does not appear in the <code>CLOB</code> value. The first position
+ * is <code>1</code>.
* @exception SQLException if there is an error accessing the
- * <code>CLOB</code> value
+ * <code>CLOB</code> value
*/
public long position(String searchStr, long start)
throws SQLException