クラス org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule

org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRuleに対する継承グラフ

Inheritance graph
[凡例]
org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRuleのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

This class defines a ReplaceAllRewritingRule. Replace all instance of a String token by another String token

作者:
Nicolas Modrzyk
バージョン:
1.0

ReplaceAllRewritingRule.java34 行で定義されています。

Public メソッド

String rewrite (String sqlQuery)
 ReplaceAllRewritingRule (String queryPattern, String rewrite, boolean caseSensitive, boolean stopOnMatch)

Static Private メソッド

String replace (String s, String oldText, String newText)


コンストラクタとデストラクタ

org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.ReplaceAllRewritingRule String  queryPattern,
String  rewrite,
boolean  caseSensitive,
boolean  stopOnMatch
 

Creates a new ReplaceAllRewritingRule.java object

引数:
queryPattern SQL pattern to match
rewrite rewritten SQL query
caseSensitive true if matching is case sensitive
stopOnMatch true if rewriting must stop after this rule if it matches.
ReplaceAllRewritingRule.java68 行で定義されています。
00070 { 00071 super(queryPattern, rewrite, caseSensitive, stopOnMatch); 00072 }


メソッド

String org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.replace String  s,
String  oldText,
String  newText
[static, private]
 

ReplaceAllRewritingRule.java74 行で定義されています。

参照元 org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.rewrite().

00075 { 00076 final int oldLength = oldText.length(); 00077 final int newLength = newText.length(); 00078 00079 if (oldLength == 0) 00080 throw new IllegalArgumentException("cannot replace the empty string"); 00081 00082 if (oldText.equals(newText)) 00083 return s; 00084 00085 int i = 0; 00086 int x = 0; 00087 00088 StringBuffer sb = new StringBuffer(s); 00089 00090 while ((i = sb.indexOf(oldText, x)) > -1) 00091 { 00092 sb.delete(i, i + oldLength); 00093 sb.insert(i, newText); 00094 x = i + newLength; 00095 } 00096 00097 return sb.toString(); 00098 }

String org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.rewrite String  sqlQuery  )  [virtual]
 

参照:
org.objectweb.cjdbc.controller.backend.rewriting.AbstractRewritingRule.rewrite(java.lang.String)

org.objectweb.cjdbc.controller.backend.rewriting.AbstractRewritingRuleを実装しています.

ReplaceAllRewritingRule.java40 行で定義されています。

参照先 org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.replace(), と org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.rewrite().

参照元 org.objectweb.cjdbc.controller.backend.rewriting.ReplaceAllRewritingRule.rewrite().

00041 { 00042 // Check first if it is a match 00043 int start; 00044 if (isCaseSensitive) 00045 start = sqlQuery.indexOf(queryPattern); 00046 else 00047 start = sqlQuery.toLowerCase().indexOf(queryPattern); 00048 if (start == -1) 00049 { // No match 00050 hasMatched = false; 00051 return sqlQuery; 00052 } 00053 // Match, rewrite the query 00054 hasMatched = true; 00055 00056 return replace(sqlQuery, queryPattern, rewrite); 00057 }


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:36 2004に生成されました。 doxygen 1.3.8