[前へ] [目次へ] [次へ]

Map (ネイティブクラス)


このクラスは文字列キーによる連想配列を扱うクラスです。
このクラスはサブタイプとして連想配列の要素型を取ります。

このクラスの実装はハッシュマップです。
文字列キーの長さに上限はありませんが、30バイト以下の文字列長に最適化されています。
それ以上の長さのキーを扱うと動作速度が著しく低下する可能性があります。

配列の要素として割り当てられたオブジェクトはネイティブ管理オブジェクトになります。
これらのオブジェクトは配列オブジェクトの消滅時に連動して消滅し、寿命の変更はできません。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public取得メソッドconst #operator[]指定した要素の参照を取得します
public取得メソッドconst #operator{}指定した要素の参照を取得します
public設定メソッド #operator={}複数の要素を一斉代入します
public取得メソッドconst #operator:指定した要素の参照を取得します
public取得メソッドconst Get指定した要素の参照を取得します
public取得メソッドconst GetTry指定した要素の参照を取得します
public設定メソッド Set要素を代入します
public操作メソッド AllClear要素を全て削除します
public操作メソッド Erase指定した要素を削除します
public比較・判定メソッドconst Exists指定した要素が存在するか調べます
public操作メソッド AddRef空参照の要素を追加します
public操作メソッド GetAddRef指定した要素の参照を必要なら追加してから取得します
public操作メソッド Add要素を追加します
public操作メソッド AddAlloc要素を追加します
public操作メソッド GetAdd指定した要素の参照を必要なら追加してから取得します
public操作メソッド GetAddAlloc指定した要素の参照を必要なら追加してから取得します
public操作メソッド AllocObject指定した要素にオブジェクトを割り当てます
public操作メソッド FreeObject指定した要素のオブジェクトだけを解放します
public操作メソッド SetObject指定した要素に既存のオブジェクトを割り当てます
public操作メソッドconst EachSet列挙オブジェクトを設定します
public操作メソッドconst Keys要素名を列挙します
public取得メソッドconst GetKeyList要素名リストを取得します
public操作メソッド Values要素を列挙します
public操作メソッドconst ValuesC要素を列挙します
public取得メソッド GetValueList要素リストを取得します
public取得メソッドconst GetValueListC要素リストを取得します
public操作メソッド KeyValues要素名と要素を列挙します
public操作メソッドconst KeyValuesC要素名と要素を列挙します
public取得メソッド GetKeyValueList要素名と要素のリストを取得します
public取得メソッドconst GetKeyValueListC要素名と要素のリストを取得します
public操作メソッド FindFileDir指定したフォルダのファイル名を検索します
public操作メソッド FindFileSingleDir指定したフォルダのファイル名を検索します
public操作メソッド FindDir指定したフォルダにあるフォルダ名を検索します
public操作メソッド Rename要素名を変更します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_MAP
クラス名: FGESMap



Map::#operator[]

public SubType?@ #operator[]( IString v)depend

   この連想配列の v の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、例外が発生します。

   このメソッドは最初に v から INativeString による取得を試みます。
   これに失敗した場合、 v.Get を呼び出します。

戻り値:指定した要素名の参照を返します。

IString v :取得する要素名

先頭へ


Map::#operator{}

public SubType?@ #operator{}( IString v)depend

   この連想配列の v の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、空参照を返します。

   このメソッドは最初に v から INativeString による取得を試みます。
   これに失敗した場合、 v.Get を呼び出します。

戻り値:指定した要素名の参照を返します。

IString v :取得する要素名

先頭へ


Map::#operator={}

public SelfType<SubType>@ #operator={}(...)

   この連想配列に引数として渡した要素を一括して代入します。
   この連想配列が既に持っていた要素は全て削除され、引数だけで構成された連想配列になります。
   
   引数は2つ一組で扱われ、1つ目が IString 型の要素名、2つ目が要素型で設定する値です。
   
   このメソッドは最初に各要素名の引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

   要素の代入は #operator= で行われます。
   要素型は #operator= を定義していなければいけません。
   
戻り値: this を返します。

可変長引数:代入する要素リスト。要素名、要素データ、要素名、要素データと交互に並びます。
         要素データは要素型の #operator= で処理できる型でなければいけません。

先頭へ


Map::#operator:

public SubType?@ #operator:( IString v)depend

   この連想配列の v の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、例外が発生します。

   このメソッドは最初に v から INativeString による取得を試みます。
   これに失敗した場合、 v.Get を呼び出します。

   このメソッドは #operator[] と同じ動作です。

戻り値:指定した要素名の参照を返します。

IString v :取得する要素名

先頭へ


Map::Get

public SubType?@ Get( IString name)depend

   この連想配列の name の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、例外が発生します。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   このメソッドは #operator[] と同じ動作です。

戻り値:指定した要素名の参照を返します。

IString name :取得する要素名

先頭へ


Map::GetTry

public SubType?@ GetTry( IString name)depend

   この連想配列の name の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、空参照を返します。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   このメソッドは #operator{} と同じ動作です。

戻り値:指定した要素名の参照を返します。

IString v :取得する要素名

先頭へ


Map::Set

public Bool Set( IString name, SubType obj)

   この連想配列の name の名前を持つ要素に obj を代入します。
   このメソッドは指定した要素名が無効な場合、偽を返し何も行いません。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   要素の代入は #operator= で行われます。
   要素型は #operator= を定義していなければいけません。
   
戻り値:代入に成功すると真を返します。

IString name :設定する要素名
SubType obj :設定する値

先頭へ


Map::AllClear

public SelfType<SubType>@ AllClear()

   この連想配列の全ての要素を削除します。
   配列要素に割り当てられているオブジェクトも全て消滅します。

戻り値: this を返します。

先頭へ


Map::Erase

public Bool Erase( IString name)

   この連想配列から name の名前を持つ要素を削除します。
   削除した要素にオブジェクトが割り当てられている場合、同時に消滅します。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   このメソッドは指定した要素名が無効な場合、偽を返し何も行いません。

戻り値:この呼び出しで要素が削除された場合真を返します。

IString name :削除する要素名

先頭へ


Map::Exists

public Bool Exists( IString name)const

   この連想配列に name の名前を持つ要素が存在するか調べます。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値:指定した要素名の要素が存在すれば真を返します。

IString name :判定する要素名

先頭へ


Map::AddRef

public SelfType<SubType>@ AddRef( IString name)

   この連想配列に name の名前を持つ要素を追加します。
   追加された要素にはオブジェクトは割り当てられず、空参照として追加されます。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した名前の要素が既に存在する場合、例外が発生します。

戻り値: this を返します。

IString name :追加する要素名

先頭へ


Map::GetAddRef

public SubType?@ GetAddRef( IString name)

   この連想配列の name の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、空参照を要素として追加し、それを返します。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値:指定した要素名の参照を返します。

IString name :取得する要素名

先頭へ


Map::Add

public SubType@ Add( IString name)

   この連想配列に name の名前を持つ要素を追加します。
   追加された要素には要素型のオブジェクトが作成されて割り当てられます。
   要素型が実体化できない型の場合、例外が発生します。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した名前の要素が既に存在する場合、例外が発生します。

戻り値:追加した要素の参照を返します。

IString name :追加する要素名

先頭へ


Map::AddAlloc

public SubType@ AddAlloc( IString name,
                      INativeClass mainclass, INativeTypeObject? subtype=NULL)


   この連想配列に name の名前を持つ要素を追加します。
   追加された要素には mainclass および subtype によって示される型のオブジェクトが作成されて割り当てられます。
   指定された型のオブジェクトを作成できなかった場合や、
   作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した名前の要素が既に存在する場合、例外が発生します。

戻り値:追加した要素の参照を返します。

IString name :追加する要素名
INativeClass mainclass :作成するオブジェクトのクラス。
INativeTypeObject? subtype=NULL :作成するオブジェクトのサブタイプ。
            作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。

先頭へ


Map::GetAdd

public SubType?@ GetAdd( IString name)

   この連想配列の name の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、要素を追加し、それを返します。
   この時、追加された要素には要素型のオブジェクトが作成されて割り当てられます。
   要素型が実体化できない型の場合、例外が発生します。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値:指定した要素名の参照を返します。

IString name :取得する要素名

先頭へ


Map::GetAddAlloc

public SubType?@ GetAddAlloc( IString name,
                      INativeClass mainclass, INativeTypeObject? subtype=NULL)


   この連想配列の name の名前を持つ要素の参照を返します。
   このメソッドは指定した要素名が無効な場合、要素を追加し、それを返します。
   この時、追加された要素には mainclass および subtype によって示される型のオブジェクトが作成されて割り当てられます。
   指定された型のオブジェクトを作成できなかった場合や、
   作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
   
   要素が既に存在する時、既存のオブジェクトが指定された型と同一かは検証されません。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値:追加した要素の参照を返します。

IString name :追加する要素名
INativeClass mainclass :必要な場合、作成するオブジェクトのクラス。
INativeTypeObject? subtype=NULL :必要な場合、作成するオブジェクトのサブタイプ。
            作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。

先頭へ


Map::AllocObject

public SubType@ AllocObject( IString name,
                      INativeClass mainclass, INativeTypeObject? subtype=NULL)


   この連想配列の name の名前を持つ要素に新しくオブジェクトを作成して割り当てます。
   指定した要素は空参照でなければいけません。
   作成するオブジェクトは mainclass および subtype によって示される型になります。
   指定された型のオブジェクトを作成できなかった場合や、
   作成したオブジェクトが要素型の参照に参照代入できない場合例外が発生します。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した要素名が無効な場合例外が発生します。

戻り値:作成したオブジェクトの参照を返します。

IString name :割り当てる要素名
INativeClass mainclass :作成するオブジェクトのクラス。
INativeTypeObject? subtype=NULL :作成するオブジェクトのサブタイプ。
            作成するオブジェクトのクラスがサブタイプに対応しない場合は空参照でなければいけません。

先頭へ


Map::FreeObject

public Bool FreeObject( IString name)

   この連想配列の name の名前を持つ要素に割り当てられているオブジェクトを解放します。
   解放されたオブジェクトは直ちに消滅し、指定した要素は空参照になります。
   指定した要素が最初から空参照であった場合何も起こりません。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した要素名が無効な場合例外が発生します。
   
戻り値:この呼び出しでオブジェクトが解放された場合真を返します。

IString name :解放する要素名

先頭へ


Map::SetObject

public SubType@ SetObject( IString name,editable SubType obj)

   この連想配列の name の名前を持つ要素に obj を割り当てます。
   指定した要素は空参照でなければいけません。
   obj はローカル変数か、メモリ管理オブジェクトに直接接続されている必要があり、
   このメソッドは obj のメモリ管理をこの連想配列オブジェクトの管理に変更します。
   obj が要素型の参照に参照代入できない場合例外が発生します。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した要素名が無効な場合例外が発生します。

戻り値:割り当てたオブジェクトの参照を返します。

IString name :割り当てる要素名
editable SubType obj :[移譲]設定するオブジェクト

先頭へ


Map::EachSet

public readonly SelfType<SubType>@ EachSet(editable PMapEach each)const

   この連想配列を列挙するための列挙オブジェクトを設定します。
   ここで設定した列挙オブジェクトは列挙メソッドで使用します。
   
戻り値: this を返します。

editable PMapEach each :[出力]設定する列挙オブジェクト

先頭へ


Map::Keys

public Bool Keys(editable INativeString key,editable PMapEach each)const

   この連想配列に含まれる要素名を列挙します。
   each に指定する列挙オブジェクトはこの連想配列の EachSet で設定されたものでなければいけません。
   このメソッドを呼び出す度に、 key に要素名が順番に格納され、列挙オブジェクトの状態が更新されます。
   列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
   また、最後にこのメソッドが返した要素名以外の要素を削除した場合、
   全ての要素を列挙せずに列挙を終了する可能性があります。
   
戻り値: key に列挙した要素名が出力された場合、真を返します。
      呼び出した時点で列挙する要素がない場合、偽を返します。

editable INativeString key :[出力]列挙された要素名を出力するオブジェクト
editable PMapEach each :[入出力]列挙状態を示す列挙オブジェクト

先頭へ


Map::GetKeyList

public readonly SelfType<SubType>@ GetKeyList(editable PStringArray list)const

   この連想配列に含まれる要素名リストを取得します。
   
戻り値: this を返します。

editable PStringArray list :[出力]要素名リストを出力するオブジェクト

先頭へ


Map::Values
Map::ValuesC


public Bool Values(editable Pointer<SubType> val,editable PMapEach each)
public Bool ValuesC(editable ConstPointer<SubType> val,editable PMapEach each)const


   この連想配列に含まれる要素を列挙します。
   each に指定する列挙オブジェクトはこの連想配列の EachSet で設定されたものでなければいけません。
   このメソッドを呼び出す度に、 val に要素へのポインタが順番に格納され、列挙オブジェクトの状態が更新されます。
   列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
   また、最後にこのメソッドが返した要素以外の要素を削除した場合、
   全ての要素を列挙せずに列挙を終了する可能性があります。
   
   ValuesC は const バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
   
戻り値: val に列挙した要素が出力された場合、真を返します。
      呼び出した時点で列挙する要素がない場合、偽を返します。

editable Pointer<SubType> val :[出力]列挙された要素を出力するオブジェクト
editable ConstPointer<SubType> val :[出力]列挙された要素を出力するオブジェクト
editable PMapEach each :[入出力]列挙状態を示す列挙オブジェクト

先頭へ


Map::GetValueList
Map::GetValueListC


public SelfType<SubType>@ GetValueList(editable PPointerArray<SubType> list)
public readonly SelfType<SubType>@ GetValueListC(editable PConstPointerArray<SubType> list)const


   この連想配列に含まれる要素リストを取得します。
   
   GetValueListC は const バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
   
戻り値: this を返します。

editable PPointerArray<SubType> list :[出力]要素リストを出力するオブジェクト
editable PConstPointerArray<SubType> list :[出力]要素リストを出力するオブジェクト

先頭へ


Map::KeyValues
Map::KeyValuesC


public Bool KeyValues(editable INativeString key,editable Pointer<SubType> val,editable PMapEach each)
public Bool KeyValuesC(editable INativeString key,editable ConstPointer<SubType> val,editable PMapEach each)const


   この連想配列に含まれる要素名と要素を列挙します。
   each に指定する列挙オブジェクトはこの連想配列の EachSet で設定されたものでなければいけません。
   このメソッドを呼び出す度に、 key に要素名、 val に要素へのポインタが順番に格納され、列挙オブジェクトの状態が更新されます。
   列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
   また、最後にこのメソッドが返した要素名以外の要素を削除した場合、
   全ての要素を列挙せずに列挙を終了する可能性があります。
   
   KeyValuesC は const バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
   
戻り値:各引数に列挙した要素が出力された場合、真を返します。
      呼び出した時点で列挙する要素がない場合、偽を返します。

editable INativeString key :[出力]列挙された要素名を出力するオブジェクト
editable Pointer<SubType> val :[出力]列挙された要素を出力するオブジェクト
editable ConstPointer<SubType> val :[出力]列挙された要素を出力するオブジェクト
editable PMapEach each :[入出力]列挙状態を示す列挙オブジェクト

先頭へ


Map::GetKeyValueList
Map::GetKeyValueListC


public SelfType<SubType>@ GetKeyValueList(editable PStringArray keylist,editable PPointerArray<SubType> valuelist)
public readonly SelfType<SubType>@ GetKeyValueListC(editable PStringArray keylist,
                                                   editable PConstPointerArray<SubType> valuelist)const


   この連想配列に含まれる要素名リストと要素リストを取得します。
   
   KeyValuesC は const バージョンです。ポインタに読み取り専用属性が付くこと以外の違いはありません。
   
戻り値: this を返します。

editable PStringArray keylist :[出力]要素名リストを出力するオブジェクト
editable PPointerArray<SubType> valuelist :[出力]要素リストを出力するオブジェクト
editable PConstPointerArray<SubType> valuelist :[出力]要素リストを出力するオブジェクト

先頭へ


Map::FindFileDir

public Bool FindFileDir( IString key, IString? path=NULL)

   指定したフォルダを検索し、結果をこの連想配列に保存します。
   条件に一致したファイル名を要素名として要素を作成します。
   作成した要素にはオブジェクトは割り当てられず、空参照になります。
   この連想配列が既に持っていた要素は全て削除され、検索結果だけで構成された連想配列になります。

   このメソッドは最初に各引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

   path が空参照である場合、カレントディレクトリを検索します。
   有効な参照を指定した場合、検索するディレクトリパスとして扱います。
   
   このメソッドはサブフォルダがある場合、サブフォルダも検索します。
   
   FGES VM が Protected Mode で動作している場合、 path は空参照でなければいけません。
   この場合、検索されるのはカレントディレクトリではなく規定のフォルダです。
   
戻り値:処理に成功すると真を返します。

IString key :検索するファイル名。ワイルドカードとして解釈されます。
IString? path=NULL :検索するフォルダのディレクトリパス。
               空参照である場合、カレントディレクトリを検索します。

先頭へ


Map::FindFileSingleDir

public Bool FindFileSingleDir( IString key, IString? path=NULL)

   指定したフォルダを検索し、結果をこの連想配列に保存します。
   条件に一致したファイル名を要素名として要素を作成します。
   作成した要素にはオブジェクトは割り当てられず、空参照になります。
   この連想配列が既に持っていた要素は全て削除され、検索結果だけで構成された連想配列になります。
   
   このメソッドは最初に各引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

   path が空参照である場合、カレントディレクトリを検索します。
   有効な参照を指定した場合、検索するディレクトリパスとして扱います。
   
   このメソッドはサブフォルダがあっても、サブフォルダは検索しません。
   
   FGES VM が Protected Mode で動作している場合、 path は空参照でなければいけません。
   この場合、検索されるのはカレントディレクトリではなく規定のフォルダです。
   
戻り値:処理に成功すると真を返します。

IString key :検索するファイル名。ワイルドカードとして解釈されます。
IString? path=NULL :検索するフォルダのディレクトリパス。
               空参照である場合、カレントディレクトリを検索します。

先頭へ


Map::FindDir

public Bool FindDir( IString key, IString? path=NULL)

   指定したフォルダを検索し、結果をこの連想配列に保存します。
   条件に一致したフォルダ名を要素名として要素を作成します(ファイルは除外されます)。
   作成した要素にはオブジェクトは割り当てられず、空参照になります。
   この連想配列が既に持っていた要素は全て削除され、検索結果だけで構成された連想配列になります。
   
   このメソッドは最初に各引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

   path が空参照である場合、カレントディレクトリを検索します。
   有効な参照を指定した場合、検索するディレクトリパスとして扱います。
   
   このメソッドはサブフォルダは検索しません。
   
   FGES VM が Protected Mode で動作している場合、 path は空参照でなければいけません。
   この場合、検索されるのはカレントディレクトリではなく規定のフォルダです。
   
戻り値:処理に成功すると真を返します。

IString key :検索するフォルダ名。ワイルドカードとして解釈されます。
IString? path=NULL :検索するフォルダのディレクトリパス。
               空参照である場合、カレントディレクトリを検索します。

先頭へ


Map::Rename

public Bool Rename( IString oldname, IString newname)

   この連想配列の oldname の名前を持つ要素の名前を newname に変更します。
   このメソッドは oldname に指定した要素名が無効な場合や
   newname に指定した要素名が既に存在する場合失敗します。

   このメソッドは最初に各引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

   このメソッドを呼び出すと列挙オブジェクトが無効になる可能性があります。
   列挙中にこのメソッドを使用することは推奨されません。

戻り値:名前の変更に成功すると真を返します。

IString oldname :名前変更する要素名
IString newname :新しい要素名

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2021/03/06