1 22 23 package org.continuent.sequoia.controller.monitoring; 24 25 import java.util.regex.Pattern ; 26 27 import org.continuent.sequoia.common.xml.DatabasesXmlTags; 28 import org.continuent.sequoia.controller.requests.AbstractRequest; 29 30 36 public class SQLMonitoringRule 37 { 38 private Pattern queryPattern; 39 private boolean isCaseSentive; 40 private boolean applyToSkeleton; 41 private boolean monitoring; 42 43 51 public SQLMonitoringRule(String queryPattern, boolean isCaseSentive, 52 boolean applyToSkeleton, boolean monitoring) 53 { 54 this.isCaseSentive = isCaseSentive; 55 if (isCaseSentive) 56 this.queryPattern = Pattern.compile(queryPattern); 57 else 58 this.queryPattern = Pattern.compile(queryPattern, 59 Pattern.CASE_INSENSITIVE); 60 this.applyToSkeleton = applyToSkeleton; 61 this.monitoring = monitoring; 62 } 63 64 69 public boolean isCaseSentive() 70 { 71 return isCaseSentive; 72 } 73 74 79 public boolean isMonitoring() 80 { 81 return monitoring; 82 } 83 84 89 public String getQueryPattern() 90 { 91 return queryPattern.toString(); 92 } 93 94 99 public void setCaseSentive(boolean b) 100 { 101 isCaseSentive = b; 102 } 103 104 109 public void setMonitoring(boolean b) 110 { 111 monitoring = b; 112 } 113 114 119 public void setQueryPattern(String queryPattern) 120 { 121 this.queryPattern = Pattern.compile(queryPattern); 122 } 123 124 129 public boolean isApplyToSkeleton() 130 { 131 return applyToSkeleton; 132 } 133 134 139 public void setApplyToSkeleton(boolean b) 140 { 141 applyToSkeleton = b; 142 } 143 144 151 public String matches(AbstractRequest request) 152 { 153 if (queryPattern.matcher(request.getSqlOrTemplate()).matches()) 154 return request.getSqlOrTemplate(); 155 else 156 return null; 157 } 158 159 162 public String getXml() 163 { 164 String info = "<" + DatabasesXmlTags.ELT_SQLMonitoringRule + " " 165 + DatabasesXmlTags.ATT_queryPattern + "=\"" + getQueryPattern() + "\" " 166 + DatabasesXmlTags.ATT_caseSensitive + "=\"" + isCaseSentive() + "\" " 167 + DatabasesXmlTags.ATT_applyToSkeleton + "=\"" + isApplyToSkeleton() 168 + "\" " + DatabasesXmlTags.ATT_monitoring + "=\""; 169 if (isMonitoring()) 170 info += "on"; 171 else 172 info += "off"; 173 info += "\"/>"; 174 return info; 175 } 176 177 } 178 | Popular Tags |