package com.ibm.nmon.data.definition; import com.ibm.nmon.data.DataSet; import com.ibm.nmon.data.DataType; /** * Defines the various ways output data can be named. This enumeration is used in conjunction with * the <code>rename</code> methods of {@link DataDefinition} so that labels (e.g. chart items) can * be uniquely named based on the matched data. * */ public enum NamingMode { HOST() { public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameHost(data); } }, HOST_TYPE() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameHost(data) + SEPARATOR + definition.renameType(type); } }, HOST_FIELD() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameHost(data) + SEPARATOR + definition.renameField(field); } }, HOST_STAT() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameHost(data) + SEPARATOR + definition.getStatistic().getName(granularity); } }, TYPE() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameType(type); } }, TYPE_FIELD() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameType(type) + SEPARATOR + definition.renameField(field); } }, TYPE_STAT() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameType(type) + SEPARATOR + definition.getStatistic().getName(granularity); } }, FIELD() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameField(field); } }, FIELD_STAT() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.renameField(field) + SEPARATOR + definition.getStatistic().getName(granularity); } }, STAT() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return definition.getStatistic().getName(granularity); } }, NONE() { @Override public String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity) { return ""; } }; public abstract String getName(DataDefinition definition, DataSet data, DataType type, String field, int granularity); public static final String SEPARATOR = "-"; }