package com.ibm.nmon.chart.definition;
import com.ibm.nmon.data.definition.DataDefinition;
import com.ibm.nmon.data.definition.NamingMode;
/**
* Defines a bar chart which has a labeled category axis. Bars are defined as a collection of
* {@link DataDefinition DataDefinitions}. Bars are named by two {@link NamingMode NamingModes}; one
* defines the category name, the other the bar name.
*/
public final class BarChartDefinition extends YAxisChartDefinition {
private final boolean subtractionNeeded;
private String categoryAxisLabel = "";
private NamingMode categoryNamingMode;
private NamingMode barNamingMode;
public BarChartDefinition(String shortName, String title) {
this(shortName, title, true, false);
}
public BarChartDefinition(String shortName, String title, boolean subtractionNeeded) {
this(shortName, title, true, subtractionNeeded);
}
public BarChartDefinition(String shortName, String title, boolean stacked, boolean subtractionNeeded) {
super(shortName, title, stacked);
this.subtractionNeeded = subtractionNeeded;
categoryNamingMode = NamingMode.TYPE;
barNamingMode = NamingMode.FIELD;
}
public BarChartDefinition(BarChartDefinition copy, boolean copyData) {
super(copy, copyData);
this.subtractionNeeded = copy.subtractionNeeded;
this.categoryAxisLabel = copy.categoryAxisLabel;
this.barNamingMode = copy.barNamingMode;
this.categoryNamingMode = copy.categoryNamingMode;
}
public boolean isSubtractionNeeded() {
return subtractionNeeded;
}
public String getCategoryAxisLabel() {
return categoryAxisLabel;
}
public void setCategoryAxisLabel(String categoryAxisLabel) {
if (categoryAxisLabel == null) {
this.categoryAxisLabel = "";
}
else {
this.categoryAxisLabel = categoryAxisLabel;
}
}
public NamingMode getBarNamingMode() {
return barNamingMode;
}
public void setBarNamingMode(NamingMode mode) {
if (mode == null) {
barNamingMode = NamingMode.TYPE;
}
else {
barNamingMode = mode;
}
}
public NamingMode getCategoryNamingMode() {
return categoryNamingMode;
}
public void setCategoryNamingMode(NamingMode mode) {
if (mode == null) {
categoryNamingMode = NamingMode.FIELD;
}
else {
categoryNamingMode = mode;
}
}
}