1 28 29 package com.idaremedia.antx.condition.solo; 30 31 import java.text.MessageFormat ; 32 import java.util.Stack ; 33 34 import org.apache.tools.ant.BuildException; 35 import org.apache.tools.ant.Project; 36 import org.apache.tools.ant.taskdefs.condition.Condition; 37 38 import com.idaremedia.antx.AntX; 39 import com.idaremedia.antx.apis.BuildAssertionException; 40 import com.idaremedia.antx.apis.Requester; 41 import com.idaremedia.antx.helpers.Tk; 42 import com.idaremedia.antx.parameters.Handling; 43 import com.idaremedia.antx.parameters.IsA; 44 45 74 75 public final class VerifyFixture extends BooleanRule 76 { 77 80 public VerifyFixture() 81 { 82 super(AntX.rules+"fixturecheck",false); 83 } 84 85 86 91 public VerifyFixture(String iam) 92 { 93 super(iam,false); 94 } 95 96 97 103 public VerifyFixture(boolean embed) 104 { 105 super(AntX.rules+"fixturecheck",embed); 106 } 107 108 109 113 public void setProject(Project project) 114 { 115 super.setProject(project); 116 m_shh.setProject(project); 117 } 118 119 120 124 private void evalIfEmbedded() 125 { 126 if (isEmbedded()) { 127 eval(); 128 } 129 } 130 131 135 139 public final void setMsg(String msg) 140 { 141 if (!Tk.isWhitespace(msg)) { 142 m_defaultMsg = uistrs().get("brul.assert.failed.lead",msg); 143 } else { 144 m_defaultMsg = msg; 145 } 146 } 147 148 149 153 public final String getDefaultMsg() 154 { 155 return m_defaultMsg; 156 } 157 158 159 163 public void setIsSet(String property) 164 { 165 m_shh.setIsSet(property); 166 m_shh.setMalformed(Handling.REJECT); 167 evalIfEmbedded(); 168 } 169 170 171 176 public void setIsSetTrue(String property) 177 { 178 m_shh.setIsSetTrue(property); 179 evalIfEmbedded(); 180 } 181 182 183 187 public void setIsNotSet(String property) 188 { 189 m_shh.setIsNotSet(property); 190 evalIfEmbedded(); 191 } 192 193 197 public void setVarSet(String variable) 198 { 199 m_shh.setVarSet(variable); 200 evalIfEmbedded(); 201 } 202 203 204 209 public void setVarSetTrue(String variable) 210 { 211 m_shh.setVarSetTrue(variable); 212 evalIfEmbedded(); 213 } 214 215 216 220 public void setVarNotSet(String variable) 221 { 222 m_shh.setVarNotSet(variable); 223 evalIfEmbedded(); 224 } 225 226 227 231 public void setIsRef(String refid) 232 { 233 m_shh.setIsRef(refid); 234 evalIfEmbedded(); 235 } 236 237 238 243 public void setIsNotRef(String refid) 244 { 245 m_shh.setIsNotRef(refid); 246 evalIfEmbedded(); 247 } 248 249 250 256 public void setAnySet(String properties) 257 { 258 m_shh.setAnySet(properties); 259 m_shh.setMalformed(Handling.REJECT); 260 evalIfEmbedded(); 261 } 262 263 264 270 public void setAllSet(String properties) 271 { 272 m_shh.setAllSet(properties); 273 m_shh.setMalformed(Handling.REJECT); 274 evalIfEmbedded(); 275 } 276 277 278 285 public void setAllSetLike(String pattern) 286 { 287 m_shh.setAllSetLike(pattern); 288 evalIfEmbedded(); 289 } 290 291 292 298 public void setNoneSet(String properties) 299 { 300 m_shh.setNoneSet(properties); 301 evalIfEmbedded(); 302 } 303 304 305 311 public void setIsBoolean(String property) 312 { 313 m_shh.setIsBoolean(property); 314 m_shh.setIsA(IsA.PROPERTY); 315 evalIfEmbedded(); 316 } 317 318 319 325 public void setIsNumeric(String property) 326 { 327 m_shh.setIsNumeric(property); 328 m_shh.setIsA(IsA.PROPERTY); 329 evalIfEmbedded(); 330 } 331 332 333 339 public void setIsNotWhitespace(String property) 340 { 341 m_shh.setIsNotWhitespace(property); 342 m_shh.setIsA(IsA.PROPERTY); 343 m_shh.setMalformed(Handling.REJECT); 344 evalIfEmbedded(); 345 } 346 347 349 353 public void setAntIs(String version) 354 { 355 m_shh.setAntIs(version); 356 evalIfEmbedded(); 357 } 358 359 360 365 public void setAntLike(String pattern) 366 { 367 m_shh.setAntLike(pattern); 368 evalIfEmbedded(); 369 } 370 371 372 373 377 public void setOS(String selector) 378 { 379 m_shh.setOS(selector); 380 evalIfEmbedded(); 381 } 382 383 384 388 394 public boolean eval() throws BuildException 395 { 396 verifyInProject_("eval"); 397 398 Condition c = getRootCondition(); 399 400 if (c==null) { 401 String msgid= isEmpty() 402 ? "brul.err.atleast.one.condition" 403 : "brul.err.only.one.condition"; 404 String ermsg = uistrs().get(msgid); 405 log(ermsg,Project.MSG_ERR); 406 throw new BuildException(ermsg, getLocation()); 407 } 408 409 boolean istrue = c.eval(); 410 setEvalResult(istrue,getConditionNames(1)); 411 return istrue; 412 } 413 414 415 420 protected void setEvalResult(boolean istrue, final String listing) 421 throws BuildException 422 { 423 if (!istrue) { 424 String error; 425 426 if (getMsgId()==null) { 427 String inlined = getDefaultMsg(); 428 if (inlined==null) { 429 error = uistrs().get("brul.assert.failed",listing); 430 } else { 431 error = MessageFormat.format(inlined,new Object []{listing}); 432 } 433 } else { 434 error = getMsg(newMsgGetter(listing)); 435 } 436 437 log(error, Project.MSG_ERR); 438 throw new BuildAssertionException(error, getLocation()); 439 440 } 441 } 442 443 444 447 public void verifyNoCircularDependency(Stack stk, Requester clnt) 448 { 449 } 450 451 453 private String m_defaultMsg; 454 private final ShortHandHelper m_shh = new ShortHandHelper(this); 455 } 456 457 458 | Popular Tags |