package edu.usc.enl.dynamicmeasurement.model.monitorpoint; import edu.usc.enl.dynamicmeasurement.model.WildcardPattern; import java.util.Set; /** * Created with IntelliJ IDEA. * User: Masoud * Date: 1/24/13 * Time: 7:18 PM <br/> * A simple monitor point that knows it can monitor from exact addresses. This is mosstly for test and comparing * the speed to the prefix one */ public class IntegerMonitorPoint extends MonitorPoint { private Set<Integer> hasDataFrom; public IntegerMonitorPoint(int capacity, Set<Integer> hasDataFrom) { super(capacity); this.hasDataFrom = hasDataFrom; } @Override public MonitorPoint clone() { IntegerMonitorPoint output = new IntegerMonitorPoint(getCapacity(), hasDataFrom); output.setIntId(getIntId()); setId(getId()); return output; } public boolean hasDataFrom(WildcardPattern wildcardPattern) { for (Integer integer : hasDataFrom) { if (wildcardPattern.match(integer)) { return true; } } return false; } @Override public boolean hasDataFrom(long item) { return hasDataFrom.contains((int) item); } @Override public String toString() { StringBuilder sb = new StringBuilder(super.toString() + " ("); boolean first = true; for (Integer i : hasDataFrom) { sb.append(first ? "" : ",").append(i); first = false; } return sb.append(")").toString(); } }