package com.ibm.nmon.data.matcher; import java.util.List; import com.ibm.nmon.data.DataType; public final class ExactFieldMatcher implements FieldMatcher { private final String field; public ExactFieldMatcher(String field) { if ((field == null) || "".equals(field)) { throw new IllegalArgumentException("field cannot be null"); } this.field = field; } public String getField() { return field; } @Override public List<String> getMatchingFields(DataType type) { if (type == null) { return java.util.Collections.emptyList(); } else { List<String> toReturn = new java.util.ArrayList<String>(type.getFieldCount()); for (String field : type.getFields()) { if (this.field.equals(field)) { toReturn.add(field); } } return toReturn; } } @Override public String toString() { return field; } @Override public int hashCode() { return field.hashCode(); } @Override public boolean equals(Object obj) { if (obj == this) { return true; } else if (obj instanceof ExactFieldMatcher) { ExactFieldMatcher matcher = (ExactFieldMatcher) obj; return this.field.equals(matcher.field); } else { return false; } } }