package com.ibm.nmon.data.matcher;
import java.util.Collection;
import java.util.List;
import com.ibm.nmon.data.DataSet;
import com.ibm.nmon.data.BasicDataSet;
import com.ibm.nmon.data.NMONDataSet;
import com.ibm.nmon.data.PerfmonDataSet;
import com.ibm.nmon.data.SystemDataSet;
abstract class SimpleHostMatcher implements HostMatcher {
private String name;
SimpleHostMatcher(String name) {
this.name = name;
}
@Override
public List<DataSet> getMatchingHosts(Collection<DataSet> toMatch) {
java.util.List<DataSet> toReturn = new java.util.ArrayList<DataSet>(toMatch.size());
for (DataSet data : toMatch) {
if (matchesHost(data)) {
toReturn.add(data);
}
}
return toReturn;
}
protected final String getMetadata(DataSet data, String key) {
String value = null;
if (data.getClass().equals(BasicDataSet.class)) {
value = ((BasicDataSet) data).getMetadata(key);
}
else if (data.getClass().equals(NMONDataSet.class)) {
value = ((NMONDataSet) data).getMetadata(key);
}
else if (data.getClass().equals(PerfmonDataSet.class)) {
value = ((PerfmonDataSet) data).getMetadata(key);
}
else if (data.getClass().equals(SystemDataSet.class)) {
SystemDataSet systemData = (SystemDataSet) data;
for (long time : systemData.getMetadataTimes()) {
java.util.Map<String, String> metadata = systemData.getMetadata(time);
if (metadata != null) {
value = metadata.get(key);
if (value != null) {
break;
}
}
}
}
if (value == null) {
value = "";
}
return value.toLowerCase();
}
@Override
public String toString() {
return name;
}
}