|
' ******************************************************************************
' **
' ** 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.Support
''' <summary>
''' Implements IID. Serializable. Stores information of an stock index.
''' </summary>
''' <remarks></remarks>
<Serializable()> _
Public Class YIndexID
Inherits YID
Friend mFinanceHelper As New FinanceHelper
Private mDownloadComponents As Boolean
''' <summary>
''' The Yahoo index ID
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overrides ReadOnly Property ID() As String
Get
Return IIf(mDownloadComponents, "@", "").ToString & MyBase.ID
End Get
End Property
Public Overrides Sub SetID(ByVal id As String)
mDownloadComponents = id.StartsWith("@")
MyBase.SetID(id.Replace("@", ""))
End Sub
''' <summary>
''' The overloaded type of the financial product
''' </summary>
''' <value></value>
''' <returns>Returns only [Index]. The type of an stock index is of course always [Index].</returns>
''' <remarks></remarks>
Public Overrides Property Type() As FinancialSecurityType
Get
Return MyBase.Type
End Get
Set(ByVal value As FinancialSecurityType)
MyBase.Type = FinancialSecurityType.Index
End Set
End Property
''' <summary>
''' Indicates whether the downloader will query all stocks of an index or not
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property DownloadComponents() As Boolean
Get
Return mDownloadComponents
End Get
Set(ByVal value As Boolean)
mDownloadComponents = value
End Set
End Property
''' <summary>
''' Default constructor
''' </summary>
''' <remarks></remarks>
Public Sub New()
MyBase.Type = FinancialSecurityType.Index
mDownloadComponents = False
End Sub
''' <summary>
''' Overloaded constructor
''' </summary>
''' <param name="id">The unmanaged ID</param>
''' <remarks></remarks>
Public Sub New(ByVal id As String)
Me.New()
Me.SetID(id)
End Sub
''' <summary>
''' Overloaded constructor
''' </summary>
''' <param name="id">The unmanaged ID</param>
''' <param name="downloadComponents">True, if you want to download all components of the index</param>
''' <remarks></remarks>
Public Sub New(ByVal id As String, ByVal downloadComponents As Boolean)
Me.New(id)
mDownloadComponents = downloadComponents
End Sub
''' <summary>
''' Overloaded constructor
''' </summary>
''' <param name="searchResult">The downloaded search result with the values</param>
''' <remarks></remarks>
Public Sub New(ByVal searchResult As IDSearchResult)
Me.New()
If searchResult IsNot Nothing Then
If mFinanceHelper.IsIndexValidSearchResult(searchResult) Then
Me.SetID(searchResult.ID)
Me.Name = searchResult.Name
Me.IndustryName = searchResult.IndustryName
Me.ISIN.SetISIN(searchResult.ISIN)
If Me.StockExchange.ID = String.Empty Then
If searchResult.Exchange <> String.Empty And searchResult.Exchange <> String.Empty Then
For Each se As StockExchange In WorldMarket.StockExchanges
If se.ID.ToString.ToUpper = searchResult.Exchange.ToUpper Or se.Name.IndexOf(searchResult.Exchange) > -1 Then
Me.StockExchange.ID = se.ID
Exit For
End If
Next
End If
End If
Else
Throw New ArgumentException("The passed result is not an index", "result")
End If
End If
End Sub
''' <summary>
''' Returns the full ID of the stock index.
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Overrides Function ToString() As String
Return Me.ID
End Function
''' <summary>
''' Proves if a search result represents an index
''' </summary>
''' <param name="result"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function IsValidSearchResult(ByVal result As IDSearchResult) As Boolean
Dim hlp As New FinanceHelper
Return hlp.IsIndexValidSearchResult(result)
End Function
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.