1 28 29 package com.idaremedia.antx.flowcontrol; 30 31 import org.apache.tools.ant.BuildException; 32 import org.apache.tools.ant.Project; 33 import org.apache.tools.ant.types.Reference; 34 35 import com.idaremedia.antx.apis.Requester; 36 import com.idaremedia.antx.condition.solo.RulesTk; 37 import com.idaremedia.antx.parameters.FlexConditional; 38 39 66 67 public class ConditionalTaskSet extends com.idaremedia.antx.starters.ConditionalTaskSet 68 implements FlexConditional 69 { 70 73 public ConditionalTaskSet() 74 { 75 super(); 76 } 77 78 79 83 protected ConditionalTaskSet(String iam) 84 { 85 super(iam); 86 } 87 88 89 90 96 protected ConditionalTaskSet(String iam, boolean delayConfigure) 97 { 98 super(iam,delayConfigure); 99 } 100 101 102 103 108 public void setIfTrue(String property) 109 { 110 m_guard.setIfTrue(property); 111 } 112 113 public void setTrue(String booleanString) 114 { 115 m_guard.setTrue(booleanString); 116 } 117 118 public void setFalse(String booleanString) 119 { 120 m_guard.setFalse(booleanString); 121 } 122 123 124 public void setIfAll(String properties) 125 { 126 m_guard.setIfAll(properties); 127 } 128 129 public void setIfAllTrue(String properties) 130 { 131 m_guard.setIfAllTrue(properties); 132 } 133 134 public void setIfOS(String choice) 135 { 136 m_guard.setIfOS(choice); 137 } 138 139 public void setIfAntLike(String version) 140 { 141 m_guard.setIfAntLike(version); 142 } 143 144 145 146 151 public final void setUnlessTrue(String property) 152 { 153 m_guard.setUnlessTrue(property); 154 } 155 156 157 public void setUnlessAll(String properties) 158 { 159 m_guard.setUnlessAll(properties); 160 } 161 162 public void setUnlessAllTrue(String properties) 163 { 164 m_guard.setUnlessAllTrue(properties); 165 } 166 167 public void setUnlessOS(String choice) 168 { 169 m_guard.setUnlessOS(choice); 170 } 171 172 public void setUnlessAntLike(String version) 173 { 174 m_guard.setUnlessAntLike(version); 175 } 176 177 178 185 public void setCriteria(Reference testRef) 186 { 187 require_(testRef!=null,"setTest: nonzro test refid"); 188 m_conditionId = testRef; 189 } 190 191 192 193 198 public final void setTest(Reference testRef) 199 { 200 setCriteria(testRef); 201 } 202 203 204 205 211 public boolean testIfCondition() 212 { 213 if (m_conditionId!=null) { 214 String testId = m_conditionId.getRefId(); 215 boolean passIf = true; 216 if (!RulesTk.evalTest(testId, m_rqlink)) { 217 m_guard.setLastFailure("$test:"+testId); 218 passIf = false; 219 } 220 log("Conditional execution (test="+testId+") is "+passIf, Project.MSG_DEBUG); 221 return passIf; 222 } 223 return m_guard.testIfCondition(); 224 } 225 226 227 228 237 protected void verifyCanExecute_(String calr) 238 { 239 super.verifyCanExecute_(calr); 240 241 if (m_conditionId!=null) { 242 if (!m_guard.isEmpty()) { 243 String e = getAntXMsg("flow.only.test.param",m_conditionId.getRefId()); 244 log(e, Project.MSG_ERR); 245 throw new BuildException(e, getLocation()); 246 } 247 RulesTk.verifyTest(m_conditionId.getRefId(), m_rqlink); 248 } 249 } 250 251 252 253 private Requester m_rqlink = new Requester.ForComponent(this); 254 private Reference m_conditionId; 255 } 256 257 258 | Popular Tags |