'**********************************************************************************
'* Copyright (C) 2007,2016 Hitachi Solutions,Ltd.
'**********************************************************************************

#Region "Apache License"
'
' 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.
'
#End Region

'**********************************************************************************
'* クラス名        ：MySubsysInfo
'* クラス日本語名  ：サブシステム情報クラス（使いやすいインデクサを追加）（テンプレート）
'*
'* 作成者          ：生技 西野
'* 更新履歴        ：
'*
'*  日時        更新者            内容
'*  ----------  ----------------  -------------------------------------------------
'*  20xx/xx/xx  ＸＸ ＸＸ         新規作成（テンプレート）
'**********************************************************************************

Imports Touryo.Infrastructure.Framework.Util

Namespace Touryo.Infrastructure.Business.Util
    ''' <summary>サブシステム情報クラス（使いやすいインデクサを追加）</summary>
    ''' <remarks>自由に（拡張して）利用できる。</remarks>
    <Serializable()>
    Public Class MySubsysInfo
        Inherits SubsysInfo
        ''' <summary>インデクサ</summary>
        ''' <param name="subsysID">サブシステムID列挙型</param>
        ''' <returns>リーフ ハッシュテーブル</returns>
        Default Public Overloads Property Item(ByVal subsysID As SubsysID) As Hashtable
            ' 基本的にリーフ ハッシュテーブルのnullクリア用
            Get
                ' リーフ ハッシュテーブルの取得用
                If Me.HT(subsysID) Is Nothing Then
                    ' nullの場合、リーフ ハッシュテーブルを新規生成する。
                    Me.HT(subsysID) = New Hashtable()
                    ' nullでない場合、何もしない。
                Else
                End If

                ' リーフ ハッシュテーブルを返す。
                Return DirectCast(Me.HT(subsysID), Hashtable)
            End Get
            Set(ByVal value As Hashtable)
                Me.HT(subsysID) = value
            End Set
        End Property

        ''' <summary>サブシステムID列挙型</summary>
        Public Enum SubsysID
            ''' <summary>aaa</summary>
            aaa = 1
            ''' <summary>bbb</summary>
            bbb
            ''' <summary>ccc</summary>
            ccc
        End Enum
    End Class
End Namespace
