com.stimulsoft.report.chart.view.series.candlestick
Class StiCandlestickSeries

java.lang.Object
  extended by com.stimulsoft.base.serializing.StiSerializedObject
      extended by com.stimulsoft.base.services.StiService
          extended by com.stimulsoft.report.chart.view.series.StiSeries
              extended by com.stimulsoft.report.chart.view.series.candlestick.StiCandlestickSeries
All Implemented Interfaces:
IStiJsonReportObject, IStiSerializable, IStiSerializableRef, IStiFinancialSeries, IStiCandlestickSeries, IStiSeries, IStiSeriesParent, java.lang.Cloneable
Direct Known Subclasses:
StiStockSeries

public class StiCandlestickSeries
extends StiSeries
implements IStiCandlestickSeries


Field Summary
 
Fields inherited from interface com.stimulsoft.base.serializing.interfaceobject.IStiSerializableRef
REFERENCE_EMPTY, REFERENCE_REPORT
 
Constructor Summary
StiCandlestickSeries()
           
 
Method Summary
 IStiSeries clone()
          Creates a new object that is a copy of the current instance.
 StiColor getBorderColor()
          Gets or sets border color of series bar.
 StiColor getBorderColorNegative()
           
 float getBorderWidth()
          Gets or sets border width of series.
 StiBrush getBrush()
          Gets or sets brush which will used to fill bar area.
 StiBrush getBrushNegative()
          Gets or sets a brush which will be used to fill negative values.
 java.lang.Class GetDefaultAreaType()
           
 StiGetListOfValuesCloseEvent getGetListOfValuesCloseEvent()
          Gets or sets a script of the event GetListOfValuesClose.
 StiGetListOfValuesHighEvent getGetListOfValuesHighEvent()
          Gets or sets a script of the event GetListOfValuesHigh.
 StiGetListOfValuesLowEvent getGetListOfValuesLowEvent()
          Gets or sets a script of the event GetListOfValuesLow.
 StiGetListOfValuesOpenEvent getGetListOfValuesOpenEvent()
          Gets or sets a script of the event GetListOfValuesOpen.
 StiGetValueCloseEvent getGetValueCloseEvent()
          Gets or sets a script of the event GetValueClose.
 StiGetValueHighEvent getGetValueHighEvent()
          Gets or sets a script of the event GetValueHigh.
 StiGetValueLowEvent getGetValueLowEvent()
          Gets or sets a script of the event GetValueLow.
 StiGetValueOpenEvent getGetValueOpenEvent()
          Gets or sets a script of the event GetValueOpen.
 StiListOfValuesExpression getListOfValues()
          Gets or sets the expression to fill a list of values.
 StiListOfValuesCloseExpression getListOfValuesClose()
          Gets or sets the expression to fill a list of close values.
 StiListOfValuesHighExpression getListOfValuesHigh()
          Gets or sets the expression to fill a list of high values.
 StiListOfValuesLowExpression getListOfValuesLow()
          Gets or sets the expression to fill a list of low values.
 StiListOfValuesOpenExpression getListOfValuesOpen()
          Gets or sets the expression to fill a list of open values.
 IStiSeriesTopN getTopN()
          Gets or sets parameters of displaying top results.
 IStiTrendLine getTrendLine()
          Gets or sets trend line settings.
 StiExpression getValue()
          Gets or sets point value expression.
 StiValueCloseExpression getValueClose()
          Gets or sets close value expression.
 java.lang.String getValueDataColumn()
          Gets or sets a name of the column that contains the point value.
 java.lang.String getValueDataColumnClose()
          Gets or sets a name of the column that contains the close value.
 java.lang.String getValueDataColumnHigh()
          Gets or sets a name of the column that contains the high value.
 java.lang.String getValueDataColumnLow()
          Gets or sets a name of the column that contains the low value.
 java.lang.String getValueDataColumnOpen()
          Gets or sets a name of the column that contains the open value.
 StiValueHighExpression getValueHigh()
          Gets or sets high value expression.
 StiValueLowExpression getValueLow()
          Gets or sets low value expression.
 StiValueOpenExpression getValueOpen()
          Gets or sets open value expression.
 java.lang.Double[] getValuesClose()
           
 java.lang.Double[] getValuesHigh()
           
 java.lang.Double[] getValuesLow()
           
 java.lang.Double[] getValuesOpen()
           
 java.lang.String getValuesStringClose()
           
 java.lang.String getValuesStringHigh()
           
 java.lang.String getValuesStringLow()
           
 java.lang.String getValuesStringOpen()
           
 void InvokeGetListOfValuesClose(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetListOfValuesClose event.
 void InvokeGetListOfValuesHigh(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetListOfValuesHigh event.
 void InvokeGetListOfValuesLow(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetListOfValuesLow event.
 void InvokeGetListOfValuesOpen(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetListOfValuesOpen event.
 void InvokeGetValueClose(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetValueClose event.
 void InvokeGetValueHigh(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetValueHigh event.
 void InvokeGetValueLow(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetValueLow event.
 void InvokeGetValueOpen(StiComponent sender, StiGetValueEventArgs e)
          Raises the GetValueOpen event.
 void LoadFromJsonObject(JSONObject jObject)
           
 JSONObject SaveToJsonObject(StiJsonSaveMode mode)
           
 void setBorderColor(StiColor value)
           
 void setBorderColorNegative(StiColor borderColorNegative)
           
 void setBorderWidth(float value)
           
 void setBrush(StiBrush value)
           
 void setBrushNegative(StiBrush value)
           
 void setGetListOfValuesCloseEvent(StiGetListOfValuesCloseEvent value)
           
 void setGetListOfValuesHighEvent(StiGetListOfValuesHighEvent value)
           
 void setGetListOfValuesLowEvent(StiGetListOfValuesLowEvent value)
           
 void setGetListOfValuesOpenEvent(StiGetListOfValuesOpenEvent value)
           
 void setGetValueCloseEvent(StiGetValueCloseEvent value)
           
 void setGetValueHighEvent(StiGetValueHighEvent value)
           
 void setGetValueLowEvent(StiGetValueLowEvent value)
           
 void setGetValueOpenEvent(StiGetValueOpenEvent value)
           
 void setListOfValues(StiListOfValuesExpression value)
           
 void setListOfValuesClose(StiListOfValuesCloseExpression value)
           
 void setListOfValuesHigh(StiListOfValuesHighExpression value)
           
 void setListOfValuesLow(StiListOfValuesLowExpression value)
           
 void setListOfValuesOpen(StiListOfValuesOpenExpression value)
           
 void setTopN(IStiSeriesTopN value)
           
 void setTrendLine(IStiTrendLine value)
           
 void setValue(StiExpression value)
           
 void setValueClose(StiValueCloseExpression value)
           
 void setValueDataColumn(java.lang.String value)
           
 void setValueDataColumnClose(java.lang.String value)
           
 void setValueDataColumnHigh(java.lang.String value)
           
 void setValueDataColumnLow(java.lang.String value)
           
 void setValueDataColumnOpen(java.lang.String value)
           
 void setValueHigh(StiValueHighExpression value)
           
 void setValueLow(StiValueLowExpression value)
           
 void setValueOpen(StiValueOpenExpression value)
           
 void setValuesClose(java.lang.Double[] value)
           
 void setValuesHigh(java.lang.Double[] value)
           
 void setValuesLow(java.lang.Double[] value)
           
 void setValuesOpen(java.lang.Double[] value)
           
 void setValuesStringClose(java.lang.String value)
           
 void setValuesStringHigh(java.lang.String value)
           
 void setValuesStringLow(java.lang.String value)
           
 void setValuesStringOpen(java.lang.String value)
           
 
Methods inherited from class com.stimulsoft.report.chart.view.series.StiSeries
getAllowApplyStyle, getAllowSeries, getAllowSeriesElements, getArgument, getArgumentDataColumn, getArguments, GetArgumentsFromString, getArgumentsString, getAutoSeriesColorDataColumn, getAutoSeriesKeyDataColumn, getAutoSeriesTitleDataColumn, getChart, getConditions, getCore, getCoreTitle, getDrillDownEnabled, getDrillDownPage, getDrillDownPageGuid, getDrillDownReport, getFilterMode, getFilters, getFormat, getGetArgumentEvent, getGetHyperlinkEvent, getGetListOfArgumentsEvent, getGetListOfHyperlinksEvent, getGetListOfTagsEvent, getGetListOfToolTipsEvent, getGetListOfValuesEvent, getGetTagEvent, getGetTitleEvent, getGetToolTipEvent, getGetValueEvent, getHyperlink, getHyperlinkDataColumn, getHyperlinks, getHyperlinkString, getInteraction, getListOfArguments, getListOfHyperlinks, getListOfTags, getListOfToolTips, getNewAutoSeriesEvent, GetNullableValuesFromString, getParent, getSeriesLabels, getServiceCategory, getServiceName, getServiceType, getShowInLegend, getShowLabels, getShowSeriesLabels, getShowShadow, getSortBy, getSortDirection, GetStringsFromString, getTag, getTagDataColumn, getTags, getTagString, getTitle, getTitleValue, getToolTip, getToolTipDataColumn, getToolTips, getToolTipsString, getValues, GetValuesFromString, getValuesStart, getValuesString, getYAxis, InvokeGetArgument, InvokeGetHyperlink, InvokeGetListOfArguments, InvokeGetListOfHyperlinks, InvokeGetListOfTags, InvokeGetListOfToolTips, InvokeGetListOfValues, InvokeGetTag, InvokeGetTitle, InvokeGetToolTip, InvokeGetValue, InvokeNewAutoSeries, ProcessSeriesBrushes, ProcessSeriesColors, setAllowApplyStyle, setAllowSeries, setAllowSeriesElements, setArgument, setArgumentDataColumn, setArguments, setArgumentsString, setAutoSeriesColorDataColumn, setAutoSeriesKeyDataColumn, setAutoSeriesTitleDataColumn, setChart, setConditions, setCore, setCoreTitle, setDrillDownEnabled, setDrillDownPage, setDrillDownPageGuid, setDrillDownReport, setFilterMode, setFilters, setFormat, setGetArgumentEvent, setGetHyperlinkEvent, setGetListOfArgumentsEvent, setGetListOfHyperlinksEvent, setGetListOfTagsEvent, setGetListOfToolTipsEvent, setGetListOfValuesEvent, setGetTagEvent, setGetTitleEvent, setGetToolTipEvent, setGetValueEvent, setHyperlink, setHyperlinkDataColumn, setHyperlinks, setHyperlinkString, setInteraction, setListOfArguments, setListOfHyperlinks, setListOfTags, setListOfToolTips, setNewAutoSeriesEvent, setSeriesLabels, setShowInLegend, setShowLabels, setShowSeriesLabels, setShowShadow, setSortBy, setSortDirection, setTag, setTagDataColumn, setTags, setTagString, setTitle, setTitleValue, setToolTip, setToolTipDataColumn, setToolTips, setToolTipsString, setValues, setValuesString, setYAxis, toString
 
Methods inherited from class com.stimulsoft.base.services.StiService
getProperties, getServiceEnabled, getServiceInfo, isPropertyPresent, MemberwiseClone, packService, properties, setProperties, setServiceEnabled
 
Methods inherited from class com.stimulsoft.base.serializing.StiSerializedObject
cleanReference, getReference, setReference
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.stimulsoft.report.chart.interfaces.series.IStiSeries
getAllowApplyStyle, getArguments, getChart, getConditions, getCore, getCoreTitle, getFilters, getFormat, getHyperlinks, getInteraction, getSeriesLabels, getShowInLegend, getShowSeriesLabels, getShowShadow, getSortBy, getSortDirection, getTags, getToolTips, getValues, getValuesStart, getYAxis, ProcessSeriesBrushes, ProcessSeriesColors, setAllowApplyStyle, setArguments, setChart, setConditions, setCore, setCoreTitle, setFilters, setFormat, setHyperlinks, setInteraction, setSeriesLabels, setShowInLegend, setShowSeriesLabels, setShowShadow, setSortBy, setSortDirection, setTags, setToolTips, setValues, setYAxis
 

Constructor Detail

StiCandlestickSeries

public StiCandlestickSeries()
Method Detail

clone

public IStiSeries clone()
Creates a new object that is a copy of the current instance.

Specified by:
clone in interface IStiSeries
Overrides:
clone in class StiSeries
Returns:
A new object that is a copy of this instance.

GetDefaultAreaType

public java.lang.Class GetDefaultAreaType()
Specified by:
GetDefaultAreaType in interface IStiSeries
Specified by:
GetDefaultAreaType in class StiSeries

getTopN

public IStiSeriesTopN getTopN()
Description copied from class: StiSeries
Gets or sets parameters of displaying top results.

Specified by:
getTopN in interface IStiSeries
Overrides:
getTopN in class StiSeries

setTopN

public void setTopN(IStiSeriesTopN value)
Specified by:
setTopN in interface IStiSeries
Overrides:
setTopN in class StiSeries

getTrendLine

public IStiTrendLine getTrendLine()
Description copied from class: StiSeries
Gets or sets trend line settings.

Overrides:
getTrendLine in class StiSeries

setTrendLine

public void setTrendLine(IStiTrendLine value)
Overrides:
setTrendLine in class StiSeries

getValueDataColumn

public java.lang.String getValueDataColumn()
Description copied from class: StiSeries
Gets or sets a name of the column that contains the point value.

Overrides:
getValueDataColumn in class StiSeries

setValueDataColumn

public void setValueDataColumn(java.lang.String value)
Overrides:
setValueDataColumn in class StiSeries

getValue

public StiExpression getValue()
Description copied from class: StiSeries
Gets or sets point value expression. Example: {Order.Value}

Overrides:
getValue in class StiSeries

setValue

public void setValue(StiExpression value)
Overrides:
setValue in class StiSeries

getListOfValues

public StiListOfValuesExpression getListOfValues()
Description copied from class: StiSeries
Gets or sets the expression to fill a list of values. Example: 1;2;3

Overrides:
getListOfValues in class StiSeries

setListOfValues

public void setListOfValues(StiListOfValuesExpression value)
Overrides:
setListOfValues in class StiSeries

getValuesOpen

public final java.lang.Double[] getValuesOpen()
Specified by:
getValuesOpen in interface IStiFinancialSeries
Specified by:
getValuesOpen in interface IStiCandlestickSeries

setValuesOpen

public final void setValuesOpen(java.lang.Double[] value)
Specified by:
setValuesOpen in interface IStiFinancialSeries
Specified by:
setValuesOpen in interface IStiCandlestickSeries

getValuesClose

public final java.lang.Double[] getValuesClose()
Specified by:
getValuesClose in interface IStiFinancialSeries
Specified by:
getValuesClose in interface IStiCandlestickSeries

setValuesClose

public final void setValuesClose(java.lang.Double[] value)
Specified by:
setValuesClose in interface IStiFinancialSeries
Specified by:
setValuesClose in interface IStiCandlestickSeries

getValuesStringOpen

public final java.lang.String getValuesStringOpen()

setValuesStringOpen

public final void setValuesStringOpen(java.lang.String value)

getValuesStringClose

public final java.lang.String getValuesStringClose()

setValuesStringClose

public final void setValuesStringClose(java.lang.String value)

getValuesStringHigh

public final java.lang.String getValuesStringHigh()

setValuesStringHigh

public final void setValuesStringHigh(java.lang.String value)

getValuesStringLow

public final java.lang.String getValuesStringLow()

setValuesStringLow

public final void setValuesStringLow(java.lang.String value)

getValuesHigh

public final java.lang.Double[] getValuesHigh()
Specified by:
getValuesHigh in interface IStiFinancialSeries
Specified by:
getValuesHigh in interface IStiCandlestickSeries

setValuesHigh

public final void setValuesHigh(java.lang.Double[] value)
Specified by:
setValuesHigh in interface IStiFinancialSeries
Specified by:
setValuesHigh in interface IStiCandlestickSeries

getValuesLow

public final java.lang.Double[] getValuesLow()
Specified by:
getValuesLow in interface IStiFinancialSeries
Specified by:
getValuesLow in interface IStiCandlestickSeries

setValuesLow

public final void setValuesLow(java.lang.Double[] value)
Specified by:
setValuesLow in interface IStiFinancialSeries
Specified by:
setValuesLow in interface IStiCandlestickSeries

getValueDataColumnOpen

public final java.lang.String getValueDataColumnOpen()
Gets or sets a name of the column that contains the open value.


setValueDataColumnOpen

public final void setValueDataColumnOpen(java.lang.String value)

getValueDataColumnClose

public final java.lang.String getValueDataColumnClose()
Gets or sets a name of the column that contains the close value.


setValueDataColumnClose

public final void setValueDataColumnClose(java.lang.String value)

getValueDataColumnHigh

public final java.lang.String getValueDataColumnHigh()
Gets or sets a name of the column that contains the high value.


setValueDataColumnHigh

public final void setValueDataColumnHigh(java.lang.String value)

getValueDataColumnLow

public final java.lang.String getValueDataColumnLow()
Gets or sets a name of the column that contains the low value.


setValueDataColumnLow

public final void setValueDataColumnLow(java.lang.String value)

getBorderColor

public StiColor getBorderColor()
Gets or sets border color of series bar.

Specified by:
getBorderColor in interface IStiCandlestickSeries

setBorderColor

public void setBorderColor(StiColor value)
Specified by:
setBorderColor in interface IStiCandlestickSeries

getBorderColorNegative

public StiColor getBorderColorNegative()
Specified by:
getBorderColorNegative in interface IStiCandlestickSeries
Returns:
the borderColorNegative

setBorderColorNegative

public void setBorderColorNegative(StiColor borderColorNegative)
Specified by:
setBorderColorNegative in interface IStiCandlestickSeries
Parameters:
borderColorNegative - the borderColorNegative to set

getBorderWidth

public float getBorderWidth()
Gets or sets border width of series.

Specified by:
getBorderWidth in interface IStiCandlestickSeries

setBorderWidth

public void setBorderWidth(float value)
Specified by:
setBorderWidth in interface IStiCandlestickSeries

getBrush

public StiBrush getBrush()
Gets or sets brush which will used to fill bar area.

Specified by:
getBrush in interface IStiCandlestickSeries

setBrush

public void setBrush(StiBrush value)
Specified by:
setBrush in interface IStiCandlestickSeries

getBrushNegative

public StiBrush getBrushNegative()
Gets or sets a brush which will be used to fill negative values.

Specified by:
getBrushNegative in interface IStiCandlestickSeries

setBrushNegative

public void setBrushNegative(StiBrush value)
Specified by:
setBrushNegative in interface IStiCandlestickSeries

InvokeGetValueOpen

public void InvokeGetValueOpen(StiComponent sender,
                               StiGetValueEventArgs e)
Raises the GetValueOpen event.


getGetValueOpenEvent

public final StiGetValueOpenEvent getGetValueOpenEvent()
Gets or sets a script of the event GetValueOpen.


setGetValueOpenEvent

public final void setGetValueOpenEvent(StiGetValueOpenEvent value)

InvokeGetListOfValuesOpen

public final void InvokeGetListOfValuesOpen(StiComponent sender,
                                            StiGetValueEventArgs e)
Raises the GetListOfValuesOpen event.


getGetListOfValuesOpenEvent

public final StiGetListOfValuesOpenEvent getGetListOfValuesOpenEvent()
Gets or sets a script of the event GetListOfValuesOpen.


setGetListOfValuesOpenEvent

public final void setGetListOfValuesOpenEvent(StiGetListOfValuesOpenEvent value)

InvokeGetValueClose

public void InvokeGetValueClose(StiComponent sender,
                                StiGetValueEventArgs e)
Raises the GetValueClose event.


getGetValueCloseEvent

public final StiGetValueCloseEvent getGetValueCloseEvent()
Gets or sets a script of the event GetValueClose.


setGetValueCloseEvent

public final void setGetValueCloseEvent(StiGetValueCloseEvent value)

InvokeGetListOfValuesClose

public final void InvokeGetListOfValuesClose(StiComponent sender,
                                             StiGetValueEventArgs e)
Raises the GetListOfValuesClose event.


getGetListOfValuesCloseEvent

public final StiGetListOfValuesCloseEvent getGetListOfValuesCloseEvent()
Gets or sets a script of the event GetListOfValuesClose.


setGetListOfValuesCloseEvent

public final void setGetListOfValuesCloseEvent(StiGetListOfValuesCloseEvent value)

InvokeGetValueHigh

public void InvokeGetValueHigh(StiComponent sender,
                               StiGetValueEventArgs e)
Raises the GetValueHigh event.


getGetValueHighEvent

public final StiGetValueHighEvent getGetValueHighEvent()
Gets or sets a script of the event GetValueHigh.


setGetValueHighEvent

public final void setGetValueHighEvent(StiGetValueHighEvent value)

InvokeGetListOfValuesHigh

public final void InvokeGetListOfValuesHigh(StiComponent sender,
                                            StiGetValueEventArgs e)
Raises the GetListOfValuesHigh event.


getGetListOfValuesHighEvent

public final StiGetListOfValuesHighEvent getGetListOfValuesHighEvent()
Gets or sets a script of the event GetListOfValuesHigh.


setGetListOfValuesHighEvent

public final void setGetListOfValuesHighEvent(StiGetListOfValuesHighEvent value)

InvokeGetValueLow

public void InvokeGetValueLow(StiComponent sender,
                              StiGetValueEventArgs e)
Raises the GetValueLow event.


getGetValueLowEvent

public final StiGetValueLowEvent getGetValueLowEvent()
Gets or sets a script of the event GetValueLow.


setGetValueLowEvent

public final void setGetValueLowEvent(StiGetValueLowEvent value)

InvokeGetListOfValuesLow

public final void InvokeGetListOfValuesLow(StiComponent sender,
                                           StiGetValueEventArgs e)
Raises the GetListOfValuesLow event.


getGetListOfValuesLowEvent

public final StiGetListOfValuesLowEvent getGetListOfValuesLowEvent()
Gets or sets a script of the event GetListOfValuesLow.


setGetListOfValuesLowEvent

public final void setGetListOfValuesLowEvent(StiGetListOfValuesLowEvent value)

getValueOpen

public StiValueOpenExpression getValueOpen()
Gets or sets open value expression. Example: {Order.Value}


setValueOpen

public void setValueOpen(StiValueOpenExpression value)

getListOfValuesOpen

public StiListOfValuesOpenExpression getListOfValuesOpen()
Gets or sets the expression to fill a list of open values. Example: 1;2;3


setListOfValuesOpen

public void setListOfValuesOpen(StiListOfValuesOpenExpression value)

getValueClose

public StiValueCloseExpression getValueClose()
Gets or sets close value expression. Example: {Order.Value}


setValueClose

public void setValueClose(StiValueCloseExpression value)

getListOfValuesClose

public StiListOfValuesCloseExpression getListOfValuesClose()
Gets or sets the expression to fill a list of close values. Example: 1;2;3


setListOfValuesClose

public void setListOfValuesClose(StiListOfValuesCloseExpression value)

getValueHigh

public StiValueHighExpression getValueHigh()
Gets or sets high value expression. Example: {Order.Value}


setValueHigh

public void setValueHigh(StiValueHighExpression value)

getListOfValuesHigh

public StiListOfValuesHighExpression getListOfValuesHigh()
Gets or sets the expression to fill a list of high values. Example: 1;2;3


setListOfValuesHigh

public void setListOfValuesHigh(StiListOfValuesHighExpression value)

getValueLow

public StiValueLowExpression getValueLow()
Gets or sets low value expression. Example: {Order.Value}


setValueLow

public void setValueLow(StiValueLowExpression value)

getListOfValuesLow

public StiListOfValuesLowExpression getListOfValuesLow()
Gets or sets the expression to fill a list of low values. Example: 1;2;3


setListOfValuesLow

public void setListOfValuesLow(StiListOfValuesLowExpression value)

SaveToJsonObject

public JSONObject SaveToJsonObject(StiJsonSaveMode mode)
                            throws JSONException
Specified by:
SaveToJsonObject in interface IStiJsonReportObject
Overrides:
SaveToJsonObject in class StiSeries
Throws:
JSONException

LoadFromJsonObject

public void LoadFromJsonObject(JSONObject jObject)
                        throws JSONException
Specified by:
LoadFromJsonObject in interface IStiJsonReportObject
Overrides:
LoadFromJsonObject in class StiSeries
Throws:
JSONException