package com.ibm.nmon.data.matcher;
import java.util.List;
import org.slf4j.Logger;
import com.ibm.nmon.data.DataType;
import com.ibm.nmon.util.DataHelper;
/**
* Matches <code>DISK</code> {@link DataType DataTypes} where the field defines a disk partition.
*
* @see DataHelper#isNotPartition(String)
*/
public final class PartitionMatcher implements FieldMatcher {
private final Logger logger = org.slf4j.LoggerFactory.getLogger(PartitionMatcher.class);
public static final PartitionMatcher INSTANCE = new PartitionMatcher();
private PartitionMatcher() {}
@Override
public List<String> getMatchingFields(DataType type) {
List<String> fields = new java.util.ArrayList<String>(type.getFieldCount() / 2);
if (!type.getId().startsWith("DISK")) {
logger.warn("specified partitions for a non-disk data type {}, ignoring", type);
}
else {
for (String field : type.getFields()) {
if (!DataHelper.isNotPartition(field) && !"Total".equals(field)) {
fields.add(field);
}
}
}
return fields;
}
@Override
public String toString() {
return "$PARTITIONS";
}
}