- java.lang.Object
-
- org.jfree.chart.StandardChartTheme
-
- All Implemented Interfaces:
Serializable,Cloneable,PublicCloneable,ChartTheme
public class StandardChartTheme extends Object implements ChartTheme, Cloneable, PublicCloneable, Serializable
A default implementation of theChartThemeinterface. This implementation just collects a whole bunch of chart attributes and mimics the manual process of applying each attribute to the right sub-object within the JFreeChart instance. It's not elegant code, but it works.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description StandardChartTheme(String name)Creates a new default instance.StandardChartTheme(String name, boolean shadow)Creates a new default instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapply(JFreeChart chart)Applies this theme to the supplied chart.protected voidapplyToAbstractRenderer(AbstractRenderer renderer)Applies the attributes for this theme to anAbstractRenderer.protected voidapplyToBlock(org.jfree.chart.block.Block b)Applies the attributes of this theme to the specified block.protected voidapplyToBlockContainer(org.jfree.chart.block.BlockContainer bc)Applies the attributes of this theme to the specified container.protected voidapplyToCategoryAxis(CategoryAxis axis)Applies the attributes for this theme to aCategoryAxis.protected voidapplyToCategoryItemRenderer(CategoryItemRenderer renderer)Applies the settings of this theme to the specified renderer.protected voidapplyToCategoryPlot(CategoryPlot plot)Applies the attributes of this theme to aCategoryPlot.protected voidapplyToFastScatterPlot(FastScatterPlot plot)Applies the attributes of this theme to aFastScatterPlot.protected voidapplyToMeterPlot(MeterPlot plot)Applies the attributes of this theme to aMeterPlot.protected voidapplyToMultiplePiePlot(MultiplePiePlot plot)Applies the attributes of this theme to aMultiplePiePlot.protected voidapplyToPeriodAxis(PeriodAxis axis)Applies the attributes for this theme to aPeriodAxis.protected voidapplyToPiePlot(PiePlot plot)Applies the attributes of this theme to aPiePlotinstance.protected voidapplyToPlot(Plot plot)Applies the attributes of this theme to a plot.protected voidapplyToPolarPlot(PolarPlot plot)Applies the attributes of this theme to aPolarPlot.protected voidapplyToSpiderWebPlot(SpiderWebPlot plot)Applies the attributes of this theme to aSpiderWebPlot.protected voidapplyToSymbolAxis(SymbolAxis axis)Applies the attributes for this theme to aSymbolAxis.protected voidapplyToThermometerPlot(ThermometerPlot plot)Applies the attributes for this theme to aThermometerPlot.protected voidapplyToTitle(Title title)Applies the attributes of this theme to the specified title.protected voidapplyToValueAxis(ValueAxis axis)Applies the attributes for this theme to aValueAxis.protected voidapplyToXYAnnotation(XYAnnotation annotation)Applies the settings of this theme to the specified annotation.protected voidapplyToXYItemRenderer(XYItemRenderer renderer)Applies the settings of this theme to the specified renderer.protected <S extends Comparable<S>>
voidapplyToXYPlot(XYPlot<S> plot)Applies the attributes of this theme to aXYPlot.Objectclone()Returns a clone of this theme.static ChartThemecreateDarknessTheme()Creates and returns a theme called "Darkness".static ChartThemecreateJFreeTheme()Creates and returns the default 'JFree' chart theme.static ChartThemecreateLegacyTheme()Creates and returns aChartThemethat doesn't apply any changes to the JFreeChart defaults.booleanequals(Object obj)Tests this theme for equality with an arbitrary object.PaintgetAxisLabelPaint()Returns the axis label paint.RectangleInsetsgetAxisOffset()Returns the axis offsets.BarPaintergetBarPainter()Returns the bar painter.PaintgetBaselinePaint()Returns the baseline paint.PaintgetChartBackgroundPaint()Returns the chart background paint.PaintgetCrosshairPaint()Returns the crosshair paint.PaintgetDomainGridlinePaint()Returns the domain grid line paint.DrawingSuppliergetDrawingSupplier()Returns a clone of the drawing supplier for this theme.PaintgetErrorIndicatorPaint()Returns the error indicator paint.FontgetExtraLargeFont()Returns the largest font for this theme.PaintgetGridBandAlternatePaint()Returns the grid band alternate paint (used for aSymbolAxis).PaintgetGridBandPaint()Returns the grid band paint.PaintgetItemLabelPaint()Returns the item label paint.PaintgetLabelLinkPaint()Returns the label link paint for pie charts.PieLabelLinkStylegetLabelLinkStyle()Returns the label link style for pie charts.FontgetLargeFont()Returns the large font for this theme.PaintgetLegendBackgroundPaint()Returns the legend background paint.PaintgetLegendItemPaint()Returns the legend item paint.StringgetName()Returns the name of this theme.PaintgetPlotBackgroundPaint()Returns the plot background paint.PaintgetPlotOutlinePaint()Returns the plot outline paint.PaintgetRangeGridlinePaint()Returns the range grid line paint.FontgetRegularFont()Returns the regular font.PaintgetShadowPaint()Returns the shadow paint.FontgetSmallFont()Returns the small font.PaintgetSubtitlePaint()Returns the subtitle paint.PaintgetThermometerPaint()Returns the thermometer paint.PaintgetTickLabelPaint()Returns the tick label paint.PaintgetTitlePaint()Returns the title paint.XYBarPaintergetXYBarPainter()Returns the XY bar painter.inthashCode()booleanisShadowVisible()Returns the shadow visibility flag.voidsetAxisLabelPaint(Paint paint)Sets the axis label paint.voidsetAxisOffset(RectangleInsets offset)Sets the axis offset.voidsetBarPainter(BarPainter painter)Sets the bar painter.voidsetBaselinePaint(Paint paint)Sets the baseline paint.voidsetChartBackgroundPaint(Paint paint)Sets the chart background paint.voidsetCrosshairPaint(Paint paint)Sets the crosshair paint.voidsetDomainGridlinePaint(Paint paint)Sets the domain grid line paint.voidsetDrawingSupplier(DrawingSupplier supplier)Sets the drawing supplier for this theme.voidsetErrorIndicatorPaint(Paint paint)Sets the error indicator paint.voidsetExtraLargeFont(Font font)Sets the largest font for this theme.voidsetGridBandAlternatePaint(Paint paint)Sets the grid band alternate paint (used for aSymbolAxis).voidsetGridBandPaint(Paint paint)Sets the grid band paint.voidsetItemLabelPaint(Paint paint)Sets the item label paint.voidsetLabelLinkPaint(Paint paint)Sets the label link paint for pie charts.voidsetLabelLinkStyle(PieLabelLinkStyle style)Sets the label link style for pie charts.voidsetLargeFont(Font font)Sets the large font for this theme.voidsetLegendBackgroundPaint(Paint paint)Sets the legend background paint.voidsetLegendItemPaint(Paint paint)Sets the legend item paint.voidsetPlotBackgroundPaint(Paint paint)Sets the plot background paint.voidsetPlotOutlinePaint(Paint paint)Sets the plot outline paint.voidsetRangeGridlinePaint(Paint paint)Sets the range grid line paint.voidsetRegularFont(Font font)Sets the regular font for this theme.voidsetShadowPaint(Paint paint)Sets the shadow paint.voidsetShadowVisible(boolean visible)Sets the shadow visibility flag.voidsetSmallFont(Font font)Sets the small font for this theme.voidsetSubtitlePaint(Paint paint)Sets the subtitle paint.voidsetThermometerPaint(Paint paint)Sets the thermometer paint.voidsetTickLabelPaint(Paint paint)Sets the tick label paint.voidsetTitlePaint(Paint paint)Sets the title paint.voidsetXYBarPainter(XYBarPainter painter)Sets the XY bar painter.
-
-
-
Constructor Detail
-
StandardChartTheme
public StandardChartTheme(String name)
Creates a new default instance.- Parameters:
name- the name of the theme (nullnot permitted).
-
StandardChartTheme
public StandardChartTheme(String name, boolean shadow)
Creates a new default instance.- Parameters:
name- the name of the theme (nullnot permitted).shadow- a flag that controls whether a shadow generator is included.
-
-
Method Detail
-
createJFreeTheme
public static ChartTheme createJFreeTheme()
Creates and returns the default 'JFree' chart theme.- Returns:
- A chart theme.
-
createDarknessTheme
public static ChartTheme createDarknessTheme()
Creates and returns a theme called "Darkness". In this theme, the charts have a black background.- Returns:
- The "Darkness" theme.
-
createLegacyTheme
public static ChartTheme createLegacyTheme()
Creates and returns aChartThemethat doesn't apply any changes to the JFreeChart defaults. This produces the "legacy" look for JFreeChart.- Returns:
- A legacy theme.
-
getExtraLargeFont
public Font getExtraLargeFont()
Returns the largest font for this theme.- Returns:
- The largest font for this theme.
- See Also:
setExtraLargeFont(Font)
-
setExtraLargeFont
public void setExtraLargeFont(Font font)
Sets the largest font for this theme.- Parameters:
font- the font (nullnot permitted).- See Also:
getExtraLargeFont()
-
getLargeFont
public Font getLargeFont()
Returns the large font for this theme.- Returns:
- The large font (never
null). - See Also:
setLargeFont(Font)
-
setLargeFont
public void setLargeFont(Font font)
Sets the large font for this theme.- Parameters:
font- the font (nullnot permitted).- See Also:
getLargeFont()
-
getRegularFont
public Font getRegularFont()
Returns the regular font.- Returns:
- The regular font (never
null). - See Also:
setRegularFont(Font)
-
setRegularFont
public void setRegularFont(Font font)
Sets the regular font for this theme.- Parameters:
font- the font (nullnot permitted).- See Also:
getRegularFont()
-
getSmallFont
public Font getSmallFont()
Returns the small font.- Returns:
- The small font (never
null). - See Also:
setSmallFont(Font)
-
setSmallFont
public void setSmallFont(Font font)
Sets the small font for this theme.- Parameters:
font- the font (nullnot permitted).- See Also:
getSmallFont()
-
getTitlePaint
public Paint getTitlePaint()
Returns the title paint.- Returns:
- The title paint (never
null). - See Also:
setTitlePaint(Paint)
-
setTitlePaint
public void setTitlePaint(Paint paint)
Sets the title paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getTitlePaint()
-
getSubtitlePaint
public Paint getSubtitlePaint()
Returns the subtitle paint.- Returns:
- The subtitle paint (never
null). - See Also:
setSubtitlePaint(Paint)
-
setSubtitlePaint
public void setSubtitlePaint(Paint paint)
Sets the subtitle paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getSubtitlePaint()
-
getChartBackgroundPaint
public Paint getChartBackgroundPaint()
Returns the chart background paint.- Returns:
- The chart background paint (never
null). - See Also:
setChartBackgroundPaint(Paint)
-
setChartBackgroundPaint
public void setChartBackgroundPaint(Paint paint)
Sets the chart background paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getChartBackgroundPaint()
-
getLegendBackgroundPaint
public Paint getLegendBackgroundPaint()
Returns the legend background paint.- Returns:
- The legend background paint (never
null). - See Also:
setLegendBackgroundPaint(Paint)
-
setLegendBackgroundPaint
public void setLegendBackgroundPaint(Paint paint)
Sets the legend background paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getLegendBackgroundPaint()
-
getLegendItemPaint
public Paint getLegendItemPaint()
Returns the legend item paint.- Returns:
- The legend item paint (never
null). - See Also:
setLegendItemPaint(Paint)
-
setLegendItemPaint
public void setLegendItemPaint(Paint paint)
Sets the legend item paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getLegendItemPaint()
-
getPlotBackgroundPaint
public Paint getPlotBackgroundPaint()
Returns the plot background paint.- Returns:
- The plot background paint (never
null). - See Also:
setPlotBackgroundPaint(Paint)
-
setPlotBackgroundPaint
public void setPlotBackgroundPaint(Paint paint)
Sets the plot background paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getPlotBackgroundPaint()
-
getPlotOutlinePaint
public Paint getPlotOutlinePaint()
Returns the plot outline paint.- Returns:
- The plot outline paint (never
null). - See Also:
setPlotOutlinePaint(Paint)
-
setPlotOutlinePaint
public void setPlotOutlinePaint(Paint paint)
Sets the plot outline paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getPlotOutlinePaint()
-
getLabelLinkStyle
public PieLabelLinkStyle getLabelLinkStyle()
Returns the label link style for pie charts.- Returns:
- The label link style (never
null). - See Also:
setLabelLinkStyle(PieLabelLinkStyle)
-
setLabelLinkStyle
public void setLabelLinkStyle(PieLabelLinkStyle style)
Sets the label link style for pie charts.- Parameters:
style- the style (nullnot permitted).- See Also:
getLabelLinkStyle()
-
getLabelLinkPaint
public Paint getLabelLinkPaint()
Returns the label link paint for pie charts.- Returns:
- The label link paint (never
null). - See Also:
setLabelLinkPaint(Paint)
-
setLabelLinkPaint
public void setLabelLinkPaint(Paint paint)
Sets the label link paint for pie charts.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getLabelLinkPaint()
-
getDomainGridlinePaint
public Paint getDomainGridlinePaint()
Returns the domain grid line paint.- Returns:
- The domain grid line paint (never
null). - See Also:
setDomainGridlinePaint(Paint)
-
setDomainGridlinePaint
public void setDomainGridlinePaint(Paint paint)
Sets the domain grid line paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getDomainGridlinePaint()
-
getRangeGridlinePaint
public Paint getRangeGridlinePaint()
Returns the range grid line paint.- Returns:
- The range grid line paint (never
null). - See Also:
setRangeGridlinePaint(Paint)
-
setRangeGridlinePaint
public void setRangeGridlinePaint(Paint paint)
Sets the range grid line paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getRangeGridlinePaint()
-
getBaselinePaint
public Paint getBaselinePaint()
Returns the baseline paint.- Returns:
- The baseline paint.
-
setBaselinePaint
public void setBaselinePaint(Paint paint)
Sets the baseline paint.- Parameters:
paint- the paint (nullnot permitted).
-
getCrosshairPaint
public Paint getCrosshairPaint()
Returns the crosshair paint.- Returns:
- The crosshair paint.
-
setCrosshairPaint
public void setCrosshairPaint(Paint paint)
Sets the crosshair paint.- Parameters:
paint- the paint (nullnot permitted).
-
getAxisOffset
public RectangleInsets getAxisOffset()
Returns the axis offsets.- Returns:
- The axis offsets (never
null). - See Also:
setAxisOffset(RectangleInsets)
-
setAxisOffset
public void setAxisOffset(RectangleInsets offset)
Sets the axis offset.- Parameters:
offset- the offset (nullnot permitted).- See Also:
getAxisOffset()
-
getAxisLabelPaint
public Paint getAxisLabelPaint()
Returns the axis label paint.- Returns:
- The axis label paint (never
null). - See Also:
setAxisLabelPaint(Paint)
-
setAxisLabelPaint
public void setAxisLabelPaint(Paint paint)
Sets the axis label paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getAxisLabelPaint()
-
getTickLabelPaint
public Paint getTickLabelPaint()
Returns the tick label paint.- Returns:
- The tick label paint (never
null). - See Also:
setTickLabelPaint(Paint)
-
setTickLabelPaint
public void setTickLabelPaint(Paint paint)
Sets the tick label paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getTickLabelPaint()
-
getItemLabelPaint
public Paint getItemLabelPaint()
Returns the item label paint.- Returns:
- The item label paint (never
null). - See Also:
setItemLabelPaint(Paint)
-
setItemLabelPaint
public void setItemLabelPaint(Paint paint)
Sets the item label paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getItemLabelPaint()
-
isShadowVisible
public boolean isShadowVisible()
Returns the shadow visibility flag.- Returns:
- The shadow visibility flag.
- See Also:
setShadowVisible(boolean)
-
setShadowVisible
public void setShadowVisible(boolean visible)
Sets the shadow visibility flag.- Parameters:
visible- the flag.- See Also:
isShadowVisible()
-
getShadowPaint
public Paint getShadowPaint()
Returns the shadow paint.- Returns:
- The shadow paint (never
null). - See Also:
setShadowPaint(Paint)
-
setShadowPaint
public void setShadowPaint(Paint paint)
Sets the shadow paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getShadowPaint()
-
getBarPainter
public BarPainter getBarPainter()
Returns the bar painter.- Returns:
- The bar painter (never
null). - See Also:
setBarPainter(BarPainter)
-
setBarPainter
public void setBarPainter(BarPainter painter)
Sets the bar painter.- Parameters:
painter- the painter (nullnot permitted).- See Also:
getBarPainter()
-
getXYBarPainter
public XYBarPainter getXYBarPainter()
Returns the XY bar painter.- Returns:
- The XY bar painter (never
null). - See Also:
setXYBarPainter(XYBarPainter)
-
setXYBarPainter
public void setXYBarPainter(XYBarPainter painter)
Sets the XY bar painter.- Parameters:
painter- the painter (nullnot permitted).- See Also:
getXYBarPainter()
-
getThermometerPaint
public Paint getThermometerPaint()
Returns the thermometer paint.- Returns:
- The thermometer paint (never
null). - See Also:
setThermometerPaint(Paint)
-
setThermometerPaint
public void setThermometerPaint(Paint paint)
Sets the thermometer paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getThermometerPaint()
-
getErrorIndicatorPaint
public Paint getErrorIndicatorPaint()
Returns the error indicator paint.- Returns:
- The error indicator paint (never
null). - See Also:
setErrorIndicatorPaint(Paint)
-
setErrorIndicatorPaint
public void setErrorIndicatorPaint(Paint paint)
Sets the error indicator paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getErrorIndicatorPaint()
-
getGridBandPaint
public Paint getGridBandPaint()
Returns the grid band paint.- Returns:
- The grid band paint (never
null). - See Also:
setGridBandPaint(Paint)
-
setGridBandPaint
public void setGridBandPaint(Paint paint)
Sets the grid band paint.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getGridBandPaint()
-
getGridBandAlternatePaint
public Paint getGridBandAlternatePaint()
Returns the grid band alternate paint (used for aSymbolAxis).- Returns:
- The paint (never
null). - See Also:
setGridBandAlternatePaint(Paint)
-
setGridBandAlternatePaint
public void setGridBandAlternatePaint(Paint paint)
Sets the grid band alternate paint (used for aSymbolAxis).- Parameters:
paint- the paint (nullnot permitted).- See Also:
getGridBandAlternatePaint()
-
getDrawingSupplier
public DrawingSupplier getDrawingSupplier()
Returns a clone of the drawing supplier for this theme.- Returns:
- A clone of the drawing supplier.
-
setDrawingSupplier
public void setDrawingSupplier(DrawingSupplier supplier)
Sets the drawing supplier for this theme.- Parameters:
supplier- the supplier (nullnot permitted).- See Also:
getDrawingSupplier()
-
apply
public void apply(JFreeChart chart)
Applies this theme to the supplied chart.- Specified by:
applyin interfaceChartTheme- Parameters:
chart- the chart (nullnot permitted).
-
applyToTitle
protected void applyToTitle(Title title)
Applies the attributes of this theme to the specified title.- Parameters:
title- the title.
-
applyToBlockContainer
protected void applyToBlockContainer(org.jfree.chart.block.BlockContainer bc)
Applies the attributes of this theme to the specified container.- Parameters:
bc- a block container (nullnot permitted).
-
applyToBlock
protected void applyToBlock(org.jfree.chart.block.Block b)
Applies the attributes of this theme to the specified block.- Parameters:
b- the block.
-
applyToPlot
protected void applyToPlot(Plot plot)
Applies the attributes of this theme to a plot.- Parameters:
plot- the plot (nullnot permitted).
-
applyToPiePlot
protected void applyToPiePlot(PiePlot plot)
Applies the attributes of this theme to aPiePlotinstance. This method also clears any set values for the section paint, outline etc, so that the theme'sDrawingSupplierwill be used.- Parameters:
plot- the plot (nullnot permitted).
-
applyToMultiplePiePlot
protected void applyToMultiplePiePlot(MultiplePiePlot plot)
Applies the attributes of this theme to aMultiplePiePlot.- Parameters:
plot- the plot (nullnot permitted).
-
applyToCategoryPlot
protected void applyToCategoryPlot(CategoryPlot plot)
Applies the attributes of this theme to aCategoryPlot.- Parameters:
plot- the plot (nullnot permitted).
-
applyToXYPlot
protected <S extends Comparable<S>> void applyToXYPlot(XYPlot<S> plot)
Applies the attributes of this theme to aXYPlot.- Type Parameters:
S- the type for the series keys.- Parameters:
plot- the plot (nullnot permitted).
-
applyToFastScatterPlot
protected void applyToFastScatterPlot(FastScatterPlot plot)
Applies the attributes of this theme to aFastScatterPlot.- Parameters:
plot- the plot (nullnot permitted).
-
applyToPolarPlot
protected void applyToPolarPlot(PolarPlot plot)
Applies the attributes of this theme to aPolarPlot. This method is called from theapplyToPlot(Plot)method.- Parameters:
plot- the plot (nullnot permitted).
-
applyToSpiderWebPlot
protected void applyToSpiderWebPlot(SpiderWebPlot plot)
Applies the attributes of this theme to aSpiderWebPlot.- Parameters:
plot- the plot (nullnot permitted).
-
applyToMeterPlot
protected void applyToMeterPlot(MeterPlot plot)
Applies the attributes of this theme to aMeterPlot.- Parameters:
plot- the plot (nullnot permitted).
-
applyToThermometerPlot
protected void applyToThermometerPlot(ThermometerPlot plot)
Applies the attributes for this theme to aThermometerPlot. This method is called from theapplyToPlot(Plot)method.- Parameters:
plot- the plot.
-
applyToCategoryAxis
protected void applyToCategoryAxis(CategoryAxis axis)
Applies the attributes for this theme to aCategoryAxis.- Parameters:
axis- the axis (nullnot permitted).
-
applyToValueAxis
protected void applyToValueAxis(ValueAxis axis)
Applies the attributes for this theme to aValueAxis.- Parameters:
axis- the axis (nullnot permitted).
-
applyToSymbolAxis
protected void applyToSymbolAxis(SymbolAxis axis)
Applies the attributes for this theme to aSymbolAxis.- Parameters:
axis- the axis (nullnot permitted).
-
applyToPeriodAxis
protected void applyToPeriodAxis(PeriodAxis axis)
Applies the attributes for this theme to aPeriodAxis.- Parameters:
axis- the axis (nullnot permitted).
-
applyToAbstractRenderer
protected void applyToAbstractRenderer(AbstractRenderer renderer)
Applies the attributes for this theme to anAbstractRenderer.- Parameters:
renderer- the renderer (nullnot permitted).
-
applyToCategoryItemRenderer
protected void applyToCategoryItemRenderer(CategoryItemRenderer renderer)
Applies the settings of this theme to the specified renderer.- Parameters:
renderer- the renderer (nullnot permitted).
-
applyToXYItemRenderer
protected void applyToXYItemRenderer(XYItemRenderer renderer)
Applies the settings of this theme to the specified renderer.- Parameters:
renderer- the renderer (nullnot permitted).
-
applyToXYAnnotation
protected void applyToXYAnnotation(XYAnnotation annotation)
Applies the settings of this theme to the specified annotation.- Parameters:
annotation- the annotation.
-
clone
public Object clone() throws CloneNotSupportedException
Returns a clone of this theme.- Specified by:
clonein interfacePublicCloneable- Overrides:
clonein classObject- Returns:
- A clone.
- Throws:
CloneNotSupportedException- if the theme cannot be cloned.
-
-