package com.ibm.nmon.data; /** * Simple holder for a DataSet, DataType and field combination. */ public final class DataTuple { private final DataSet dataSet; private final DataType type; private final String field; public DataTuple(DataSet dataSet, DataType type, String field) { if (dataSet == null) { throw new IllegalArgumentException("data set" + " cannot be null"); } if (type == null) { throw new IllegalArgumentException("data type" + " cannot be null"); } // allow field to be null to imply all fields this.dataSet = dataSet; this.type = type; this.field = field; } public DataSet getDataSet() { return dataSet; } public DataType getDataType() { return type; } public String getField() { return field; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } else if (obj.getClass() == this.getClass()) { DataTuple t = (DataTuple) obj; if (dataSet.equals(t.getDataSet())) { if (getDataType().equals(t.getDataType())) { if (getField() == null) { return null == t.getField(); } else { return getField().equals(t.getField()); } } } } return false; } @Override public String toString() { return dataSet + ": " + type + (field == null ? "-" + field : ""); } @Override public int hashCode() { int code = getDataSet().hashCode(); code = code * 59 + getDataType().hashCode(); if (getField() != null) { code = code * 73 + getField().hashCode(); } return code; } }