1 28 29 package com.idaremedia.antx.condition.solo; 30 31 import org.apache.tools.ant.BuildException; 32 import org.apache.tools.ant.Task; 33 import org.apache.tools.ant.taskdefs.MacroDef; 34 35 import com.idaremedia.antx.AntX; 36 import com.idaremedia.antx.NoiseLevel; 37 import com.idaremedia.antx.starters.MacroMaker; 38 39 51 52 public final class RuleMacroDef extends MacroMaker 53 { 54 private static final String IAM_= AntX.conditions+"rulemacro"; 55 56 59 public RuleMacroDef() 60 { 61 super(IAM_); 62 } 63 64 65 69 public RuleMacroDef(String iam) 70 { 71 super(iam); 72 } 73 74 75 79 public final void addConfiguredAttribute(MacroDef.Attribute attr) 80 { 81 addMacroParameter(attr); 82 } 83 84 85 90 public NoiseLevel getFailureEffect() 91 { 92 return m_failureEffect; 93 } 94 95 96 106 protected boolean includeTask(Class taskClass, Task taskProxy) 107 throws BuildException 108 { 109 if (VerifyFixture.class.isAssignableFrom(taskClass)) { return true; 111 } 112 113 boolean isRequire = isRequireType(taskClass); 114 boolean isPrefer = !isRequire && PreferTask.class.isAssignableFrom(taskClass); 115 116 if (!isRequire && !isPrefer) { 117 return false; 118 } 119 120 if (m_failureEffect!=null) { 121 BuildRule.checkAcceptable(this,isRequire,m_failureEffect); 122 } else if (isRequire) { 123 m_failureEffect = NoiseLevel.ERROR; 124 } else { 125 m_failureEffect = NoiseLevel.WARNING; 126 } 127 128 return true; 129 } 130 131 132 133 private boolean isRequireType(Class taskClass) 134 { 135 return AssertTask.class.isAssignableFrom(taskClass) || 136 BatchChecksTaskSet.class.isAssignableFrom(taskClass); 137 } 138 139 140 private NoiseLevel m_failureEffect=null;} 142 143 144 | Popular Tags |