package com.plectix.simulator.xmlmap; import java.util.ArrayList; import java.util.List; public class Agent { private String name; private Sites sites; private List<Integer> agentRules; public String getName() { return name; } public Agent(String name) { this.name = name; sites = new Sites(); agentRules = new ArrayList<Integer>(); } @Override public boolean equals(Object aAgent) { if (this == aAgent) return true; if (aAgent == null) return false; if (getClass() != aAgent.getClass()) return false; Agent agent = (Agent) aAgent; if ((agent.name.equals(this.name)) && (agent.sites.equals(this.sites)) // &&(isEqual(agent.agentRules, this.agentRules)) ) return true; return false; } private boolean isEqual(List<Integer> list1, List<Integer> list2) { if (list1.size() != list2.size()) return false; for (Integer integer : list2) { if (!list1.contains(integer)) return false; } return true; } public void addSite(Site site) { sites.add(site); } public void addRuleId(Integer id) { agentRules.add(id); } public List<Integer> getAgentRules() { return agentRules; } public Site getLastSite() { return sites.getLastSite(); } public Sites getSites() { return sites; } private static final class Sites { private List<Site> list; public Sites() { list = new ArrayList<Site>(); } public List<Site> getList() { return list; } public Site getLastSite() { return list.get(list.size() - 1); } public void add(Site site) { list.add(site); } public boolean equals(Sites sites) { if (sites.list.size() != this.list.size()) return false; else { for (Site site : this.list) { if (!sites.contains(site)) return false; } } return true; } private boolean contains(Site site) { for (Site s : this.list) { if (s.equals(site)) return true; } return false; } } }