|
' ******************************************************************************
' **
' ** Yahoo Finance Managed
' ** Written by Marius Häusler 2010
' ** It would be pleasant, if you contact me when you are using this code.
' ** Contact: YahooFinanceManaged@gmail.com
' ** Project Home: http://code.google.com/p/yahoo-finance-managed/
' **
' ******************************************************************************
' **
' ** Copyright 2010 Marius Häusler
' **
' ** Licensed under the Apache License, Version 2.0 (the "License");
' ** you may not use this file except in compliance with the License.
' ** You may obtain a copy of the License at
' **
' ** http://www.apache.org/licenses/LICENSE-2.0
' **
' ** Unless required by applicable law or agreed to in writing, software
' ** distributed under the License is distributed on an "AS IS" BASIS,
' ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' ** See the License for the specific language governing permissions and
' ** limitations under the License.
' **
' ******************************************************************************
Namespace Finance
''' <summary>
''' Stores informations of different quote values. Implements IID. Serializable.
''' </summary>
''' <remarks></remarks>
<Serializable()> _
Public Class QuoteData
Inherits QuoteBaseData
Private mValues(Convert.ToInt32(QuoteProperty.YearRange)) As Object
''' <summary>
''' Gets or sets the value of a specfic property
''' </summary>
''' <param name="prp">Gets or sets the property you want to get or set</param>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Default Public Property Values(ByVal prp As QuoteProperty) As Object
Get
Return mValues(prp)
End Get
Set(ByVal value As Object)
mValues(prp) = value
If value IsNot Nothing Then
Select Case prp
Case QuoteProperty.Symbol : MyBase.SetID(value.ToString)
Case QuoteProperty.LastTradePriceOnly : If value.GetType Is GetType(Double) Then Double.TryParse(value.ToString, MyBase.LastTradePriceOnly)
Case QuoteProperty.LastTradeDate : If value.GetType Is GetType(Date) Then Date.TryParse(value.ToString, MyBase.LastTradeDate)
Case QuoteProperty.LastTradeTime : If value.GetType Is GetType(Date) Then Date.TryParse(value.ToString, MyBase.LastTradeTime)
Case QuoteProperty.Change : If value.GetType Is GetType(Double) Then Double.TryParse(value.ToString, MyBase.Change)
Case QuoteProperty.Open : If value.GetType Is GetType(Double) Then Double.TryParse(value.ToString, MyBase.Open)
Case QuoteProperty.DaysHigh : If value.GetType Is GetType(Double) Then Double.TryParse(value.ToString, MyBase.DaysHigh)
Case QuoteProperty.DaysLow : If value.GetType Is GetType(Double) Then Double.TryParse(value.ToString, MyBase.DaysLow)
Case QuoteProperty.Volume : If value.GetType Is GetType(Long) Then Long.TryParse(value.ToString, MyBase.Volume)
End Select
End If
End Set
End Property
''' <summary>
''' Gets or sets the name of the QuoteData
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Represents the value of QuoteProperty.Name</remarks>
Public Property Name() As String
Get
If mValues(QuoteProperty.Name) IsNot Nothing Then : Return mValues(QuoteProperty.Name).ToString
Else : Return String.Empty
End If
End Get
Set(ByVal value As String)
mValues(QuoteProperty.Name) = value
End Set
End Property
''' <summary>
''' Gets the ID of the QuoteData
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Represents the value of QuoteProperty.Symbol</remarks>
Public Overloads ReadOnly Property ID() As String
Get
Return MyBase.ID
End Get
End Property
''' <summary>
''' Sets a new ID value. Implementation from ISettableID.
''' </summary>
''' <param name="id">A valid Yahoo! ID</param>
''' <remarks></remarks>
Public Overloads Sub SetID(ByVal id As String)
MyBase.SetID(id)
mValues(QuoteProperty.Symbol) = id
End Sub
''' <summary>
''' Gets or sets the latest price value of the QuoteData.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Represents the value of QuoteProperty.LastTradePriceOnly</remarks>
Public Overloads Property LastTradePriceOnly() As Double
Get
Return MyBase.LastTradePriceOnly
End Get
Set(ByVal value As Double)
MyBase.LastTradePriceOnly = value
mValues(QuoteProperty.LastTradePriceOnly) = value
End Set
End Property
''' <summary>
''' Gets or sets the date value of the last trade.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property LastTradeDate() As Date
Get
Return MyBase.LastTradeDate
End Get
Set(ByVal value As Date)
MyBase.LastTradeDate = value
mValues(QuoteProperty.LastTradeDate) = value
End Set
End Property
''' <summary>
''' Gets or sets the time value of the last trade.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property LastTradeTime() As DateTime
Get
Return MyBase.LastTradeTime
End Get
Set(ByVal value As DateTime)
MyBase.LastTradeTime = value
mValues(QuoteProperty.LastTradeTime) = value
End Set
End Property
''' <summary>
''' Gets or sets the change in percent.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property Change() As Double
Get
Return MyBase.Change
End Get
Set(ByVal value As Double)
MyBase.Change = value
mValues(QuoteProperty.Change) = value
End Set
End Property
''' <summary>
''' Gets or sets the opening price value of the day.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property Open() As Double
Get
Return MyBase.Open
End Get
Set(ByVal value As Double)
MyBase.Open = value
mValues(QuoteProperty.Open) = value
End Set
End Property
''' <summary>
''' Gets or sets the highest price value of the day.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property DaysHigh() As Double
Get
Return MyBase.DaysHigh
End Get
Set(ByVal value As Double)
MyBase.DaysHigh = value
mValues(QuoteProperty.DaysHigh) = value
End Set
End Property
''' <summary>
''' Gets or sets the lowest price value of the day.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property DaysLow() As Double
Get
Return MyBase.DaysLow
End Get
Set(ByVal value As Double)
MyBase.DaysLow = value
mValues(QuoteProperty.DaysLow) = value
End Set
End Property
''' <summary>
''' Gets or sets the trade volume of the day.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overloads Property Volume() As Long
Get
Return MyBase.Volume
End Get
Set(ByVal value As Long)
MyBase.Volume = value
mValues(QuoteProperty.Volume) = value
End Set
End Property
''' <summary>
''' Default constructor
''' </summary>
''' <remarks></remarks>
Public Sub New()
End Sub
''' <summary>
''' Copies the values of a QuoteData to this instance.
''' </summary>
''' <param name="newValue"></param>
''' <remarks></remarks>
Public Shadows Sub CopyData(ByVal newValue As QuoteData)
MyBase.CopyData(newValue)
For i As QuoteProperty = 0 To QuoteProperty.YearRange
mValues(CInt(i)) = newValue(i)
Next
End Sub
End Class
End Namespace
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.