| 1 28 29 package com.idaremedia.antx.condition.solo; 30 31 import org.apache.tools.ant.BuildException; 32 import org.apache.tools.ant.Project; 33 34 import com.idaremedia.antx.AntX; 35 import com.idaremedia.antx.ExportedProperties; 36 import com.idaremedia.antx.FixtureComponent; 37 import com.idaremedia.antx.NoiseLevel; 38 import com.idaremedia.antx.apis.AntLibFriendly; 39 import com.idaremedia.antx.apis.Responses; 40 import com.idaremedia.antx.helpers.Tk; 41 import com.idaremedia.antx.ownhelpers.ProjectPropertiesNet; 42 import com.idaremedia.antx.starters.Quiet; 43 import com.idaremedia.antx.starters.TaskSet; 44 45 116 117 public final class ExecuteCriteria extends TaskSet 118 implements ShareableCondition, Quiet, AntLibFriendly, FixtureComponent 119 { 120 123 public ExecuteCriteria() 124 { 125 super(AntX.rules+"ExecuteCriteria:"); 126 } 127 128 129 132 public NoiseLevel getFailureEffect() 133 { 134 return NoiseLevel.INFO; 135 } 136 137 138 142 147 public void setId(String id) 148 { 149 require_(id!=null,"setId- nonzro id"); 150 m_id = id; 151 } 152 153 154 155 160 public String getId() 161 { 162 return m_id; 163 } 164 165 166 167 173 public void setResultVariable(String outVar) 174 { 175 require_(!Tk.isWhitespace(outVar),"setRsltVar- nonzro name"); 176 m_outParam = outVar; 177 } 178 179 180 181 185 public final void setResultVar(String outVar) 186 { 187 setResultVariable(outVar); 188 } 189 190 191 192 197 public final String getResultVariable() 198 { 199 return m_outParam; 200 } 201 202 203 207 213 protected void verifyCanExecute_(String calr) 214 { 215 super.verifyCanExecute_(calr); 216 217 if (getResultVariable()==null) { 218 String e = getAntXMsg("type.needs.this.attr",getTaskName(),"resultvariable"); 219 log(e, Project.MSG_ERR); 220 throw new BuildException(e, getLocation()); 221 } 222 } 223 224 225 226 234 public boolean eval(ShareableConditionUser calr) 235 { 236 verifyCanExecute_("eval"); 237 238 String resultVar = getResultVariable(); 239 if (calr.getUpdateVariable()!=null) { 240 resultVar = calr.getUpdateVariable(); 241 } 242 ExportedProperties.unset(resultVar); 243 244 performNestedTasks(); 245 246 String evalResult = ExportedProperties.readstring(resultVar); 247 return Tk.string2PosBool(evalResult)==Boolean.TRUE; 248 } 249 250 251 252 259 protected void performNestedTasks() 260 { 261 ProjectPropertiesNet bubble = new ProjectPropertiesNet(getId(),getProject()); 262 try { 263 performIterationOfTheTasksList(); 264 } finally { 265 bubble.uninstall(new Responses.LogUsing(this)); 266 } 267 } 268 269 270 271 274 public final void execute() 275 { 276 } 278 279 280 private String m_outParam; 281 private String m_id = "criteria"; 282 } 283 284 | Popular Tags |