Version Differences for Agent Filter

(Agent Filter Script to Choose the Agent of the First Job of the Originating Workflow)
(AHPSCRIPTS-43)
Line 123:
   
  };</pre>    };</pre> 
       
    + = Least Used Agent for Each Criteria =  
    + ==== AHPSCRIPTS-79 ====  
    + <pre>import com.urbancode.anthill3.domain.agent.Agent;  
    + import com.urbancode.anthill3.runtime.scripting.helpers.*;  
    + import java.util.*;  
       
    + public class LeastUsedForEach extends Where{  
    + Criteria[] criteria;  
    +  
    + //--------------------------------------------------  
    + public LeastUsedForEach(Criteria[] criteriaArray) {  
    + criteria = criteriaArray;  
    + }  
       
    + //--------------------------------------------------  
    + public Agent[] filter(Agent[] agents){  
    + ArrayList agentList = new ArrayList();  
    +  
    + for (int i = 0; i < criteria.length; i++) {  
    + Agent[] agentsMatchingCriteria = criteria[i].filter(agents);  
    +  
    + // Agents are sorted by most available before filtering  
    + if (agentsMatchingCriteria.length > 0) {  
    + agentList.add(agentsMatchingCriteria[0]);  
    + }  
    + }  
    + Agent[] result = new Agent[agentList.size()];  
    + agentList.toArray(result);  
    + return result;  
    + }  
    + }  
       
    + return new LeastUsedForEach( new Criteria[]  
    + { Variable.equals("sys/os.name", "Windows XP"),  
    + Variable.equals("sys/os.name", "Linux") });  
    + });</pre>