package com.ibm.nmon.chart.definition;
import java.util.List;
import com.ibm.nmon.data.definition.DataDefinition;
import com.ibm.nmon.data.definition.NamingMode;
/**
* Base class for chart definitions. A chart definition will have a short name and a title. The
* short name is used as an identifier in the GUI. The title will be used as the title in the chart.
*/
public abstract class BaseChartDefinition implements Cloneable {
private String shortName;
private String title;
private int width;
private int height;
private final List<DataDefinition> data;
private NamingMode subtitleNamingMode = NamingMode.HOST;
protected BaseChartDefinition(String shortName, String title) {
setShortName(shortName);
setTitle(title);
this.width = 1920 / 2;
this.height = 1080 / 2;
data = new java.util.ArrayList<DataDefinition>(3);
}
protected BaseChartDefinition(BaseChartDefinition copy, boolean copyData) {
this.shortName = copy.shortName;
this.title = copy.title;
this.width = copy.width;
this.height = copy.height;
this.subtitleNamingMode = copy.subtitleNamingMode;
if (copyData) {
this.data = new java.util.ArrayList<DataDefinition>(copy.data);
}
else {
this.data = new java.util.ArrayList<DataDefinition>(3);
}
}
public final String getShortName() {
return shortName;
}
public final void setShortName(String shortName) {
if (shortName == null) {
this.shortName = "";
}
else {
this.shortName = shortName;
}
}
public final String getTitle() {
return title;
}
public final void setTitle(String title) {
if (title == null) {
this.title = "";
}
else {
this.title = title;
}
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
if (height < 1) {
throw new IllegalArgumentException("height" + "must be greater than 0");
}
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
if (height < 1) {
throw new IllegalArgumentException("height" + "must be greater than 0");
}
this.height = height;
}
public final NamingMode getSubtitleNamingMode() {
return subtitleNamingMode;
}
public final void setSubtitleNamingMode(NamingMode subtitleNamingMode) {
if (subtitleNamingMode == null) {
this.subtitleNamingMode = NamingMode.NONE;
}
else {
this.subtitleNamingMode = subtitleNamingMode;
}
}
public final void addData(DataDefinition dataDefinition) {
data.add(dataDefinition);
}
public final Iterable<DataDefinition> getData() {
return java.util.Collections.unmodifiableList(data);
}
@Override
public final String toString() {
if ("".equals(shortName)) {
if ("".equals(title)) {
return "<untitled chart>";
}
else {
return title;
}
}
else {
return shortName;
}
}
}