src/org/objectweb/cjdbc/controller/monitoring/SQLMonitoringRule.java

説明を見る。
00001 00024 package org.objectweb.cjdbc.controller.monitoring; 00025 00026 import org.apache.regexp.RE; 00027 import org.apache.regexp.RESyntaxException; 00028 import org.objectweb.cjdbc.common.sql.AbstractRequest; 00029 import org.objectweb.cjdbc.common.xml.DatabasesXmlTags; 00030 00037 public class SQLMonitoringRule 00038 { 00039 private RE queryPattern; 00040 private boolean isCaseSentive; 00041 private boolean applyToSkeleton; 00042 private boolean monitoring; 00043 00052 public SQLMonitoringRule( 00053 String queryPattern, 00054 boolean isCaseSentive, 00055 boolean applyToSkeleton, 00056 boolean monitoring) 00057 { 00058 try 00059 { 00060 this.queryPattern = new RE(queryPattern); 00061 } 00062 catch (RESyntaxException e) 00063 { 00064 throw new RuntimeException( 00065 "Invalid regexp in SQL Monitoring rule (" + e + ")"); 00066 } 00067 this.isCaseSentive = isCaseSentive; 00068 if (isCaseSentive) 00069 this.queryPattern.setMatchFlags(RE.MATCH_NORMAL); 00070 else 00071 this.queryPattern.setMatchFlags(RE.MATCH_CASEINDEPENDENT); 00072 this.applyToSkeleton = applyToSkeleton; 00073 this.monitoring = monitoring; 00074 } 00075 00081 public boolean isCaseSentive() 00082 { 00083 return isCaseSentive; 00084 } 00085 00091 public boolean isMonitoring() 00092 { 00093 return monitoring; 00094 } 00095 00101 public String getQueryPattern() 00102 { 00103 return queryPattern.toString(); 00104 } 00105 00111 public void setCaseSentive(boolean b) 00112 { 00113 isCaseSentive = b; 00114 } 00115 00121 public void setMonitoring(boolean b) 00122 { 00123 monitoring = b; 00124 } 00125 00131 public void setQueryPattern(String queryPattern) 00132 { 00133 try 00134 { 00135 this.queryPattern = new RE(queryPattern); 00136 } 00137 catch (RESyntaxException e) 00138 { 00139 throw new RuntimeException( 00140 "Invalid regexp in SQL Monitoring rule (" + e + ")"); 00141 } 00142 } 00143 00149 public boolean isApplyToSkeleton() 00150 { 00151 return applyToSkeleton; 00152 } 00153 00159 public void setApplyToSkeleton(boolean b) 00160 { 00161 applyToSkeleton = b; 00162 } 00163 00171 public String matches(AbstractRequest request) 00172 { 00173 if (applyToSkeleton) 00174 { 00175 String skel = request.getSqlSkeleton(); 00176 if (skel == null) 00177 return null; 00178 else 00179 { 00180 if (queryPattern.match(skel)) 00181 return skel; 00182 else 00183 return null; 00184 } 00185 } 00186 else 00187 { 00188 if (queryPattern.match(request.getSQL())) 00189 return request.getSQL(); 00190 else 00191 return null; 00192 } 00193 } 00194 00198 public String getXml() 00199 { 00200 String info = 00201 "<" 00202 + DatabasesXmlTags.ELT_SQLMonitoringRule 00203 + " " 00204 + DatabasesXmlTags.ATT_queryPattern 00205 + "=\"" 00206 + getQueryPattern() 00207 + "\" " 00208 + DatabasesXmlTags.ATT_caseSensitive 00209 + "=\"" 00210 + isCaseSentive() 00211 + "\" " 00212 + DatabasesXmlTags.ATT_applyToSkeleton 00213 + "=\"" 00214 + isApplyToSkeleton() 00215 + "\" " 00216 + DatabasesXmlTags.ATT_monitoring 00217 + "=\""; 00218 if (isMonitoring()) 00219 info += "on"; 00220 else 00221 info += "off"; 00222 info += "\"/>"; 00223 return info; 00224 } 00225 00226 }

CJDBCversion1.0.4に対してTue Oct 12 15:16:03 2004に生成されました。 doxygen 1.3.8