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

NumMap (ネイティブクラス)


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

このクラスの実装はハッシュマップです。
ハッシュキーの導出には整数キーの下位32ビットのみ使用します。

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

●継承

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

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

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

●クラスメソッド

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

●クラスメンバメソッド

名前概要
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操作メソッド Rename要素名を変更します

●クラス共有変数

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

●インスタンス変数

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


●C++レベル追加情報

クラスID: FGES_CLASSID_NUMMAP
クラス名: FGESNumMap



NumMap::#operator[]

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

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

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

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

IInteger v :取得する要素名

先頭へ


NumMap::#operator{}

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

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

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

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

IInteger v :取得する要素名

先頭へ


NumMap::#operator={}

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

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

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

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

先頭へ


NumMap::#operator:

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

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

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

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

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

IInteger v :取得する要素名

先頭へ


NumMap::Get

public SubType?@ Get( IInteger name)depend

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

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

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

IInteger name :取得する要素名

先頭へ


NumMap::GetTry

public SubType?@ GetTry( IInteger name)depend

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

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

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

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

IInteger v :取得する要素名

先頭へ


NumMap::Set

public Bool Set( IInteger name, SubType obj)

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

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

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

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

先頭へ


NumMap::AllClear

public SelfType<SubType>@ AllClear()

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

戻り値: this を返します。

先頭へ


NumMap::Erase

public Bool Erase( IInteger name)

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

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

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

IInteger name :削除する要素名

先頭へ


NumMap::Exists

public Bool Exists( IInteger name)const

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

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

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

IInteger name :判定する要素名

先頭へ


NumMap::AddRef

public SelfType<SubType>@ AddRef( IInteger name)

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

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

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

戻り値: this を返します。

IInteger name :追加する要素名

先頭へ


NumMap::GetAddRef

public SubType?@ GetAddRef( IInteger name)

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

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

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

IInteger name :取得する要素名

先頭へ


NumMap::Add

public SubType@ Add( IInteger name)

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

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

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

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

IInteger name :追加する要素名

先頭へ


NumMap::AddAlloc

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


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

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

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

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

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

先頭へ


NumMap::GetAdd

public SubType?@ GetAdd( IInteger name)

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

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

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

IInteger name :取得する要素名

先頭へ


NumMap::GetAddAlloc

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


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

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

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

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

先頭へ


NumMap::AllocObject

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


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

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

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

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

先頭へ


NumMap::FreeObject

public Bool FreeObject( IInteger name)

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

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

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

IInteger name :解放する要素名

先頭へ


NumMap::SetObject

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

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

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

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

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

先頭へ


NumMap::EachSet

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

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

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

先頭へ


NumMap::Keys

public Bool Keys(editable INativeInteger key,editable PNumMapEach each)const

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

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

先頭へ


NumMap::GetKeyList

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

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

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

先頭へ


NumMap::Values
NumMap::ValuesC


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


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

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

先頭へ


NumMap::GetValueList
NumMap::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 :[出力]要素リストを出力するオブジェクト

先頭へ


NumMap::KeyValues
NumMap::KeyValuesC


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


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

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

先頭へ


NumMap::GetKeyValueList
NumMap::GetKeyValueListC


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


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

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

先頭へ


NumMap::Rename

public Bool Rename( IInteger oldname, IInteger newname)

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

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

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

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

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

先頭へ


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

最終更新 2021/03/06