ohymosj
クラス OhSubSystem

java.lang.Object
  拡張ohymosj.OhObject
      拡張ohymosj.OhElement
          拡張ohymosj.OhSubSystem
直系の既知のサブクラス:
OhScfSubSystem, OhTotalSystem

public abstract class OhSubSystem
extends OhElement

基本型部分系モデルを表すクラスです。

部分系モデルは、要素・部分系など、 複数のインスタンス(以下、構成要素、構成オブジェクト; component) により 構成されるモデルです。 本システムでは、部分系モデルは原則として数理計算を行なわず、 こうしたデータを直接処理する作業は内部の要素により行なうものとしました。 従って、部分系モデルの計算作業は構成要素に順次計算命令を送ることになります。

ところで、部分系モデルは、送信用中継端子・受信用中継端子を所有しますが、 これらの中継端子を登録・接続する手続きは、要素モデルの受信端子・送信端子の場合と 同一の手続きとして定義できます。

そこで、本システムでは部分系モデルを新たに作成するのではなく、 要素モデルを継承して作成することとしました。 部分系モデルでは、受信用中継端子・送信用中継端子を OhElement._receivePortArray, OhElement._sendPortArray に記憶しています。 また、端子の登録に関わる OhElement のメソッドを 構成要素の登録作業にも用い、端子の登録と全く同一の手続きで構成要素の登録を行ない、 部分系モデル作成者の利便性を高めています。

部分系モデルでは、上記のように登録した各構成要素・中継端子間の接続を 定義しなければなりません。 しかし、基本型部分系モデルに接続のためのメソッドが既に定義されているので、 基本型部分系モデルを継承して作成した部分系モデルでは、 接続作業は基本型部分系モデルのメソッドに引数を与えるのみの作業に単純化されています。

また、要素・部分系どうしが直接通信を用いて反復計算を行なうためには、 それらを所有する部分系がそれらを管理する必要があります。

そこで、部分系モデルでは反復計算のためのメソッドも定義してあります。

バージョン:
$Revision: 1.97 $ $Date: 2004/03/08 17:03:02 $
作成者:
satoh

フィールドの概要
protected  java.lang.Object[] _componentArray
           構成要素の配列です。
protected  java.lang.Object[][] _iteratorArray
           反復計算を行なう構成要素の配列です。
protected  int _numberOfComponents
           構成要素の要素数です。
protected  int[] _numberOfIterators
           それぞれの要素群を構成する要素の数です。
protected  int _numberOfIteratorSets
           反復計算を行なう要素群の数です。
 
クラス ohymosj.OhElement から継承したフィールド
_calReqP, _currentTime, _dataString, _fixedTime, _initialWorkDoneP, _numberOfObjects, _numberOfReceivePorts, _numberOfSendPorts, _objectArray, _objectList, _receivePortArray, _sendPortArray, _shareInfoDoneP, _targetTime, _timeStep
 
クラス ohymosj.OhObject から継承したフィールド
_className, _objectName, _objectNumber, _owner, NEWLINE
 
コンストラクタの概要
OhSubSystem()
           デフォルトコンストラクタです。
OhSubSystem(java.lang.String aObjName, int aObjNum)
           このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs)
           このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr)
           このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr, java.lang.String aLine)
           このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs, java.lang.String aLine)
           このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
 
メソッドの概要
 boolean areYouReady()
           計算開始前の確認を行ないます。
 boolean calculate()
           1ステップ分の計算を行ないます。
 long calculateIterationStep(int aNum)
           このメソッドは _iteratorArray[aNum] の calculateIterationStep() の戻り値のうち、最小の値を返します。
 long calculateTimeStep()
           タイムステップの計算を行います。
 boolean canYouCalculate()
           計算前の確認を行ないます。
 boolean canYouRenewCurrentTime(int aNum)
           現在時刻の更新を行ないます。
 boolean canYouSwitch()
           送受信接続作業が終了した後にこのメソッドが呼び出され、 送受信開始のための準備作業をします。
 void clearDataString()
           構成オブジェクトのデータ文字列を消去します。
 boolean connect(java.lang.Object aMySp, java.lang.Object aMyRp)
           各構成要素・中継端子間の接続を行ないます。
 boolean connect(java.lang.Object aMyP, java.lang.Object aR, java.lang.String aRpName, int aRpNum)
           各構成要素・中継端子間の接続を行ないます。
 boolean connect(java.lang.Object aMyP, java.lang.Object aR, java.lang.String aRpClassName, java.lang.String aRpName, int aRpNum)
           各構成要素・中継端子間の接続接続を行ないます。
 boolean connect(java.lang.Object aS, java.lang.String aSpName, int aSpNum, java.lang.Object aMyP)
           各構成要素・中継端子間の接続を行ないます。
 boolean connect(java.lang.Object aS, java.lang.String aSpName, int aSpNum, java.lang.Object aR, java.lang.String aRpName, int aRpNum)
           各構成要素・中継端子間の接続を行ないます。
 boolean connect(java.lang.Object aS, java.lang.String aSpClassName, java.lang.String aSpName, int aSpNum, java.lang.Object aMyP)
           各構成要素・中継端子間の接続を行ないます。
 boolean connect(java.lang.Object aS, java.lang.String aSpClassName, java.lang.String aSpName, int aSpNum, java.lang.Object aR, java.lang.String aRpClassName, java.lang.String aRpName, int aRpNum)
           各構成要素・中継端子間の接続を行ないます。
abstract  void connectComponents()
           部分系モデル内の構成オブジェクトの接続を定義します。
abstract  void connectPorts()
           部分系モデル内部の端子の接続を OhSubSystem.connect() を用いて定義します。
 boolean construct()
           _receivePortArray, _sendPortArray, _objectArray を作成し、 接続関係の定義に従って部分系内部の接続を行ないます。
 OperationFlag doInitialWork()
           初期作業 initialWork() を終えたかどうかを判断します。
 OperationFlag doShareInfo()
           このメソッドは、まず自分自身に対して canYouShareInfo() を実行し、 さらに自分の構成要素に対して doShareInfo() を実行させます。
 boolean doYouConverge(int aNum)
           反復計算する要素群が収束したかをチェックします。
 boolean doYouReachTargetTime(int aNum)
           反復計算する要素群が反復計算目標時刻に到達したかどうかをチェックします。
 void flushData(int aNum)
           反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して flushData() を実行するよう命令します。
 java.lang.Object getComponent(java.lang.String aObjName, int aObjNum)
           オブジェクト名、オブジェクト番号を指定して、 _componentArray から構成オブジェクト(Object 型)を取得します。
 java.lang.Object getComponent(java.lang.String aClassName, java.lang.String aObjName, int aObjNum)
           クラス名、オブジェクト名、オブジェクト番号を指定して、 _componentArray から構成オブジェクト(Object 型)を取得します。
 void getInitialState(OhBufferedReader aBr)
           部分系自身の初期状態量と構成オブジェクトの初期状態量の設定を行ないます。
 OhTimePoint getNecessaryTimeFrom(java.lang.Object aRp)
           要素が次回の計算に必要なデータのうち、aRp (arg) から受け取るべきデータのデータ記録時刻を返します。
 OhTimePoint getNecessaryTimeTo(java.lang.Object aRp)
           要素が次回の計算に必要なデータのうち、aRp (arg) から受け取るべきデータのデータ記録時刻を返します。
 void getParameter(OhBufferedReader aBr)
           このメソッドは、部分系自身のパラメタと、部分系の構成要素のパラメタを読み取ります。
 boolean init(java.lang.String aObjName, int aObjNum)
           オブジェクト名、オブジェクト番号を初期化します。
 boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs)
           オブジェクト名、オブジェクト番号、直接通信する要素の配列を 初期化します。
 boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr)
           オブジェクト名、オブジェクト番号、直接通信する要素の配列、反復計算を行なう要素群の数を 初期化します。
 boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr, java.lang.String aLine)
           オブジェクト名、オブジェクト番号、直接通信する要素の配列、反復計算を行なう要素群の数、データ文字列を 初期化します。
 boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs, java.lang.String aLine)
           オブジェクト名、オブジェクト番号、直接通信する要素の配列、データ文字列を 初期化します。
 boolean init(java.lang.String aObjName, int aObjNum, java.lang.String aLine)
           オブジェクト名、オブジェクト番号、データ文字列を 初期化します。
 void initializeIteratorArray()
           _iteratorArray を要素数が _numberOfIteratorAets 個の配列に変換します。
 void initializeTargetTime()
           反復計算目標時刻 _targetTime を更新します。
 boolean initialOutput()
           初期の出力を行ないます。
 boolean initialWork()
           初期作業を行ないます。
 boolean isInitialTime(OhTimePoint aInitTime)
           構成オブジェクトの時刻を初期化します。
 void printComponents(java.io.PrintWriter aPw)
           構成オブジェクトの情報を出力します。
 void printComponents(java.io.PrintWriter aPw, java.lang.String aHead)
           構成オブジェクトの情報を出力します。
 boolean register(java.lang.Object aP)
           端子の登録および直接通信する要素の登録を行ないます。
 boolean register(java.lang.Object[] aP)
           端子の登録および直接通信する要素の登録を行ないます。
 boolean register(java.lang.Object aP, int aObj)
           端子の登録および直接通信する要素の登録を行ないます。
abstract  void registerComponents()
           反復計算を行なわない構成オブジェクトを _componentArray に登録します。
abstract  void registerIterators()
           反復計算する要素を _iteratorArray に登録します。
abstract  void registerReceivePorts()
           受信側中継端子を登録します。
abstract  void registerSendPorts()
           送信側中継端子を登録します。
 void renewFixedTime(int aNum)
           反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して renewFixedTime() を実行するよう命令します。
 void renewTargetTime(int aNum, long aItrs)
           反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して renewTargetTime() を実行するよう命令します。
 void rewindCurrentTime(int aNum)
           反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して rewindCurrentTime() を実行するよう命令します。
 void saveSendPortStock(java.io.PrintWriter aPw)
           部分系の構成要素のそれぞれに指令を送り、 出力ストリーム aPw で指定されているファイルに書き出させます。
 void saveTerminalState(java.io.PrintWriter aPw)
           部分系自身の最終状態を出力ストリーム aPw に書き出します。
 void setInitialState(OhBufferedReader aBr)
           部分系自身の初期状態量を設定します。
 void setParameter(OhBufferedReader aBr)
           パラメタを設定するメソッドですが、以下の理由で何もしないように定義されています。
 void terminalState(java.io.PrintWriter aPw)
           部分系自身の最終状態と構成要素の最終状態をファイルストリーム aPw に書き出します。
 boolean work()
           各構成要素に順次計算実行命令を送ります。
 
クラス ohymosj.OhElement から継承したメソッド
calculateIterationStep, calReq, canYouCalculate0, canYouCalculate1, canYouGetDataString, canYouRenewCurrentTime, canYouSetObjectArray, canYouShareInfo, create, doYouConverge, doYouReachTargetTime, flushData, getComponent, getComponent, getCurrentTime, getFixedTime, getFromArray, getFromArray, getFromList, getFromList, getMediumTermTargetTime, getNecessaryTimeFrom, getNecessaryTimeTo, getNextTime, getObject, getObject, getReceivePort, getReceivePort, getReceivePort, getReceivePort, getSendPort, getSendPort, getSendPort, getSendPort, getTargetTime, getTerminalTime, getTimeStep, init, makeObjectArray, printConnection, printConnection, printConnection, printConnection, printObjects, printReceivePorts, printReceivePorts, printReceivePorts, printReceivePorts, printSendPorts, printSendPorts, printSendPorts, printSendPorts, printStatus, recordStatus, reduceDataPackStock, renewFixedTime, renewTargetTime, restoreSendPortStock, rewindCurrentTime, sendStockedData, setCur2Fix2Tar, setDataPackArray, work0, work1, work2
 
クラス ohymosj.OhObject から継承したメソッド
cPrint, getAbsName, getClassName, getObjectName, getObjectNumber, getOwner, getTopOwner, objCompare, objCompare, objCompare, oPrint, setOwner
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

_componentArray

protected java.lang.Object[] _componentArray
構成要素の配列です。

Array for memorizing constituent elements.


_numberOfComponents

protected int _numberOfComponents
構成要素の要素数です。

Number of constituent elements.


_iteratorArray

protected java.lang.Object[][] _iteratorArray
反復計算を行なう構成要素の配列です。

Array for memorizing the costituent elements which carry out repeated calculation.


_numberOfIteratorSets

protected int _numberOfIteratorSets
反復計算を行なう要素群の数です。

The number of the element groups which carry out repeated calculation.


_numberOfIterators

protected int[] _numberOfIterators
それぞれの要素群を構成する要素の数です。

The number of the elements which constitute an element group.

コンストラクタの詳細

OhSubSystem

public OhSubSystem()
デフォルトコンストラクタです。

デフォルトコンストラクタは初期化メソッド init() を実行しません。 その結果以下の設定となります。

  ・_objectName   : null
  ・_objectNumber : -1
 
その他のメンバ変数に対する処理は引数つきコンストラクタと同じです。 この場合、初期化メソッド init() を用いてメンバ変数を初期化して下さい。


OhSubSystem

public OhSubSystem(java.lang.String aObjName,
                   int aObjNum,
                   int aNumOfObjs,
                   int aNumOfItr,
                   java.lang.String aLine)
            throws OhError
このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
  ・_className             : "OhSubSystem"
  ・_objectName            : aObjName
  ・_objectNumber          : aObjNum
  ・_owner                 : null
  ・_objectList            : null
  ・_receivePortArray      : null
  ・_numberOfReceivePorts  : -1
  ・_sendPortArray         : null
  ・_numberOfSendPorts     : -1
  ・_elementArray          : null
  ・_numberOfElements      : -1
  ・_dataString            : aLine
  ・_currentTime           : 0
  ・_timeStep              : -1
  ・_componemtArray        : null
  ・_numberOfComponents    : -1
 

パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
aNumOfItr - an int value
aLine - a String value
例外:
OhError - if an error occurs

OhSubSystem

public OhSubSystem(java.lang.String aObjName,
                   int aObjNum,
                   int aNumOfObjs,
                   int aNumOfItr)
            throws OhError
このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
  ・_className             : "OhSubSystem"
  ・_objectName            : aObjName
  ・_objectNumber          : aObjNum
  ・_owner                 : null
  ・_objectList            : null
  ・_receivePortArray      : null
  ・_numberOfReceivePorts  : -1
  ・_sendPortArray         : null
  ・_numberOfSendPorts     : -1
  ・_elementArray          : null
  ・_numberOfElements      : -1
  ・_dataString            : null
  ・_currentTime           : 0
  ・_timeStep              : -1
  ・_componemtArray        : null
  ・_numberOfComponents    : -1
 

パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
aNumOfItr - an int value
例外:
OhError - if an error occurs

OhSubSystem

public OhSubSystem(java.lang.String aObjName,
                   int aObjNum,
                   int aNumOfObjs,
                   java.lang.String aLine)
            throws OhError
このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
  ・_className             : "OhSubSystem"
  ・_objectName            : aObjName
  ・_objectNumber          : aObjNum
  ・_owner                 : null
  ・_objectList            : null
  ・_receivePortArray      : null
  ・_numberOfReceivePorts  : -1
  ・_sendPortArray         : null
  ・_numberOfSendPorts     : -1
  ・_elementArray          : null
  ・_numberOfElements      : -1
  ・_dataString            : aLine
  ・_currentTime           : 0
  ・_timeStep              : -1
  ・_componemtArray        : null
  ・_numberOfComponents    : -1
 

パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
aLine - a String value
例外:
OhError - if an error occurs

OhSubSystem

public OhSubSystem(java.lang.String aObjName,
                   int aObjNum,
                   int aNumOfObjs)
            throws OhError
このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
  ・_className             : "OhSubSystem"
  ・_objectName            : aObjName
  ・_objectNumber          : aObjNum
  ・_owner                 : null
  ・_objectList            : null
  ・_receivePortArray      : null
  ・_numberOfReceivePorts  : -1
  ・_sendPortArray         : null
  ・_numberOfSendPorts     : -1
  ・_elementArray          : null
  ・_numberOfElements      : -1
  ・_dataString            : null
  ・_currentTime           : 0
  ・_timeStep              : -1
  ・_componemtArray        : null
  ・_numberOfComponents    : -1
 

パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
例外:
OhError - if an error occurs

OhSubSystem

public OhSubSystem(java.lang.String aObjName,
                   int aObjNum)
            throws OhError
このコンストラクタは、基底クラス OhElement のデフォルトコンストラクタと、 このクラスの初期化メソッド init() を用い、 メンバ変数を以下の通り初期化します。
  ・_className             : "OhSubSystem"
  ・_objectName            : aObjName
  ・_objectNumber          : aObjNum
  ・_owner                 : null
  ・_objectList            : null
  ・_receivePortArray      : null
  ・_numberOfReceivePorts  : -1
  ・_sendPortArray         : null
  ・_numberOfSendPorts     : -1
  ・_elementArray          : null
  ・_numberOfElements      : -1
  ・_dataString            : null
  ・_currentTime           : 0
  ・_timeStep              : -1
  ・_componemtArray        : null
  ・_numberOfComponents    : -1
 

パラメータ:
aObjName - a String value
aObjNum - an int value
例外:
OhError - if an error occurs
メソッドの詳細

registerReceivePorts

public abstract void registerReceivePorts()
                                   throws OhError
受信側中継端子を登録します。

派生クラスで定義します。 OhSubSystem.construct() から呼ばれます。 登録されていない受信側中継端子は接続できません。

定義:
クラス OhElement 内の registerReceivePorts
例外:
OhError - if an error occurs

registerSendPorts

public abstract void registerSendPorts()
                                throws OhError
送信側中継端子を登録します。

派生クラスで定義します。 OhSubSystem.construct()から呼ばれます。 登録されていない送信側中継端子は接続できません。

定義:
クラス OhElement 内の registerSendPorts
例外:
OhError - if an error occurs

registerComponents

public abstract void registerComponents()
                                 throws OhError
反復計算を行なわない構成オブジェクトを _componentArray に登録します。

全構成要素のうち、反復計算を行なわない構成オブジェクトを _componentArray に登録します。 登録されていない構成オブジェクトには計算実行命令が送れません。

例えば、派生クラスで構成オブジェクト abc をメンバ変数として定義した場合、 次のように abc を登録します。

  public void registerComponents() {
    Register((Object) abc);
  }
 
この時、必ず abc を Object 型にキャストして下さい。 これにより abc は、一時的に _objectList に収録された後、 最終的に Object 型配列 _componentArray 中に記憶されます。 (OhSubSystem.construct() 参照)

例外:
OhError - if an error occurs

registerIterators

public abstract void registerIterators()
                                throws OhError
反復計算する要素を _iteratorArray に登録します。

派生クラスで定義する必要がありますが、 反復計算を行なわない場合は何も実行しないように定義してください。

例外:
OhError - if an error occurs

connectPorts

public abstract void connectPorts()
                           throws OhError
部分系モデル内部の端子の接続を OhSubSystem.connect() を用いて定義します。

派生クラスで定義します。

例外:
OhError - if an error occurs

connectComponents

public abstract void connectComponents()
                                throws OhError
部分系モデル内の構成オブジェクトの接続を定義します。

部分系モデル内部の直接通信接続を OhElement.register(Object, int) を用いて定義します。 例えば、次のように定義します。

  public void connectComponents() {
    a.register(b, 0);
    b.register(a, 0);
    a.register(c, 1);
    c.register(a, 0);
  }
 
ここで、a, b, c はこの部分系のメンバ変数です。 これにより、要素 a の _objectArray[0] に要素 b が格納され、 要素 a の _objectArray[1] に要素 c が格納されることになります。 要素 b の _objectArray[0] に要素 a が格納されます。 要素 c の _objectArray[0] に要素 a が格納されます。

抽象メソッドなので派生クラスで必ず定義して下さい。

例外:
OhError - if an error occurs

init

public boolean init(java.lang.String aObjName,
                    int aObjNum,
                    int aNumOfObjs,
                    int aNumOfItr,
                    java.lang.String aLine)
             throws OhError
オブジェクト名、オブジェクト番号、直接通信する要素の配列、反復計算を行なう要素群の数、データ文字列を 初期化します。 直接通信する要素の配列に関しては、 aNumOfObjs 個の要素数を持つ配列をメモリに確保します。

パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
aNumOfItr - an int value
aLine - a String value
戻り値:
a boolean value
例外:
OhError - if an error occurs

init

public boolean init(java.lang.String aObjName,
                    int aObjNum,
                    int aNumOfObjs,
                    int aNumOfItr)
             throws OhError
オブジェクト名、オブジェクト番号、直接通信する要素の配列、反復計算を行なう要素群の数を 初期化します。 直接通信する要素の配列に関しては、 aNumOfObjs 個の要素数を持つ配列をメモリに確保します。

パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
aNumOfItr - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

init

public boolean init(java.lang.String aObjName,
                    int aObjNum,
                    int aNumOfObjs,
                    java.lang.String aLine)
             throws OhError
オブジェクト名、オブジェクト番号、直接通信する要素の配列、データ文字列を 初期化します。 直接通信する要素の配列に関しては、 aNumOfObjs 個の要素数を持つ配列をメモリに確保します。

オーバーライド:
クラス OhElement 内の init
パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
aLine - a String value
戻り値:
a boolean value
例外:
OhError - if an error occurs

init

public boolean init(java.lang.String aObjName,
                    int aObjNum,
                    int aNumOfObjs)
             throws OhError
オブジェクト名、オブジェクト番号、直接通信する要素の配列を 初期化します。 直接通信する要素の配列に関しては、 aNumOfObjs 個の要素数を持つ配列をメモリに確保します。

オーバーライド:
クラス OhElement 内の init
パラメータ:
aObjName - a String value
aObjNum - an int value
aNumOfObjs - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

init

public boolean init(java.lang.String aObjName,
                    int aObjNum,
                    java.lang.String aLine)
             throws OhError
オブジェクト名、オブジェクト番号、データ文字列を 初期化します。 直接通信する要素の配列に関しては、 aNumOfObjs 個の要素数を持つ配列をメモリに確保します。

オーバーライド:
クラス OhElement 内の init
パラメータ:
aObjName - a String value
aObjNum - an int value
aLine - a String value
戻り値:
a boolean value
例外:
OhError - if an error occurs

init

public boolean init(java.lang.String aObjName,
                    int aObjNum)
             throws OhError
オブジェクト名、オブジェクト番号を初期化します。 直接通信する要素の配列に関しては、 aNumOfObjs 個の要素数を持つ配列をメモリに確保します。

オーバーライド:
クラス OhElement 内の init
パラメータ:
aObjName - a String value
aObjNum - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

initializeIteratorArray

public void initializeIteratorArray()
                             throws OhError
_iteratorArray を要素数が _numberOfIteratorAets 個の配列に変換します。 反復計算を行なう場合に呼び出されるメソッドです。

例外:
OhError - if an error occurs

register

public boolean register(java.lang.Object[] aP)
                 throws OhError
端子の登録および直接通信する要素の登録を行ないます。

パラメータ:
aP - an Object[] value
戻り値:
a boolean value
例外:
OhError - if an error occurs

register

public boolean register(java.lang.Object aP)
                 throws OhError
端子の登録および直接通信する要素の登録を行ないます。

オーバーライド:
クラス OhElement 内の register
パラメータ:
aP - an Object value
戻り値:
a boolean value
例外:
OhError - if an error occurs

register

public boolean register(java.lang.Object aP,
                        int aObj)
                 throws OhError
端子の登録および直接通信する要素の登録を行ないます。

オーバーライド:
クラス OhElement 内の register
パラメータ:
aP - an Object value
aObj - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

getComponent

public java.lang.Object getComponent(java.lang.String aClassName,
                                     java.lang.String aObjName,
                                     int aObjNum)
                              throws OhError
クラス名、オブジェクト名、オブジェクト番号を指定して、 _componentArray から構成オブジェクト(Object 型)を取得します。

指定されたオブジェクトが登録されていない場合は、null を返します。

_numberOfComponents が負の場合、_componentArray が作成されていないと判断し、 エラーメッセージを表示後、null を返します。

 [ARGUMENT]
  ・aClassName -> 取得する構成オブジェクトのクラス名。
  ・aObjName ---> 取得する構成オブジェクトのオブジェクト名。
  ・aObjNum ----> 取得する構成オブジェクトのオブジェクト番号。
 [RETURN]
  ・Object -----> 指定された構成オブジェクト。指定のオブジェクトを取得できない場合 null。
 [ACCIDENT]
  ・_componentArray に Object 型以外の変数が収録されている場合。
 

オーバーライド:
クラス OhElement 内の getComponent
パラメータ:
aClassName - a String value
aObjName - a String value
aObjNum - an int value
戻り値:
an Object value
例外:
OhError - if an error occurs

getComponent

public java.lang.Object getComponent(java.lang.String aObjName,
                                     int aObjNum)
                              throws OhError
オブジェクト名、オブジェクト番号を指定して、 _componentArray から構成オブジェクト(Object 型)を取得します。

指定されたオブジェクトが登録されていない場合は、null を返します。

_numberOfComponents が負の場合、_componentArray が作成されていないと判断し、 エラーメッセージを表示後、null を返します。

 [ARGUMENT]
  ・aObjName ---> 取得する構成オブジェクトのオブジェクト名。
  ・aObjNum ----> 取得する構成オブジェクトのオブジェクト番号。
 [RETURN]
  ・Object -----> 指定された構成オブジェクト。指定のオブジェクトを取得できない場合 null。
 [ACCIDENT]
  ・_componentArray に Object 型以外の変数が収録されている場合。
 

オーバーライド:
クラス OhElement 内の getComponent
パラメータ:
aObjName - a String value
aObjNum - an int value
戻り値:
an Object value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aMyP,
                       java.lang.Object aR,
                       java.lang.String aRpClassName,
                       java.lang.String aRpName,
                       int aRpNum)
                throws OhError
各構成要素・中継端子間の接続接続を行ないます。

部分系モデル内部の端子間の接続を行ないます。

受信側中継端子または全体系の入力端子と、 構成オブジェクトの受信端子との接続を行ないます。

構成オブジェクトの受信端子は、_className, _objectName, _objectNumber から 判別します。

所有中継端子と部分系モデル外部の受信端子との接続は _owner が行ないます。

 [RETURN]
  ・true --> 正常に接続できた場合.
  ・false -> 指定した構成オブジェクトまたは端子が取得できない場合。
             OhPort.setSender() の戻り値が false の場合。
             OhPort.registerReceiver() の戻り値が false の場合。
 

パラメータ:
aMyP - an Object value
aR - an Object value
aRpClassName - a String value
aRpName - a String value
aRpNum - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aS,
                       java.lang.String aSpClassName,
                       java.lang.String aSpName,
                       int aSpNum,
                       java.lang.Object aR,
                       java.lang.String aRpClassName,
                       java.lang.String aRpName,
                       int aRpNum)
                throws OhError
各構成要素・中継端子間の接続を行ないます。

部分系モデル内部の端子間の接続を行ないます。

構成オブジェクトの受信端子、送信端子の接続を行ないます。

構成オブジェクトの受信端子、送信端子は、_className, _objectName, _objectNumber から判別します。

所有中継端子と部分系モデル外部の受信端子との接続は _owner が行ないます。

 [RETURN]
  ・true --> 正常に接続できた場合.
  ・false -> 指定した構成オブジェクトまたは端子が取得できない場合。
             OhPort.setSender() の戻り値が false の場合。
             OhPort.registerReceiver() の戻り値が false の場合。
 

パラメータ:
aS - an Object value
aSpClassName - a String value
aSpName - a String value
aSpNum - an int value
aR - an Object value
aRpClassName - a String value
aRpName - a String value
aRpNum - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aS,
                       java.lang.String aSpClassName,
                       java.lang.String aSpName,
                       int aSpNum,
                       java.lang.Object aMyP)
                throws OhError
各構成要素・中継端子間の接続を行ないます。

部分系モデル内部の端子間の接続を行ないます。

構成オブジェクトの送信端子と、送信側中継端子または全体系の出力端子との接続を行ないます。

構成オブジェクトの送信端子は、_className, _objectName, _objectNumber から判別します。

 [RETURN]
  ・true --> 正常に接続できた場合.
  ・false -> 指定した構成オブジェクトまたは端子が取得できない場合。
             OhPort.setSender() の戻り値が false の場合。
             OhPort.registerReceiver() の戻り値が false の場合。
 

パラメータ:
aS - an Object value
aSpClassName - a String value
aSpName - a String value
aSpNum - an int value
aMyP - an Object value
戻り値:
a boolean value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aMyP,
                       java.lang.Object aR,
                       java.lang.String aRpName,
                       int aRpNum)
                throws OhError
各構成要素・中継端子間の接続を行ないます。

部分系モデル内部の端子間の接続を行ないます。

受信側中継端子または全体系の入力端子と、構成オブジェクトの受信端子との接続を行ないます。

構成オブジェクトの受信端子は、_objectName, _objectNumber から判別します。

つまり、クラス名のチェックを省略します。

所有中継端子と部分系モデル外部の受信端子との接続は _owner が行ないます。

 [RETURN]
  ・true --> 正常に接続できた場合.
  ・false -> 指定した構成オブジェクトまたは端子が取得できない場合。
             OhPort.setSender() の戻り値が false の場合。
             OhPort.registerReceiver() の戻り値が false の場合。
 

パラメータ:
aMyP - an Object value
aR - an Object value
aRpName - a String value
aRpNum - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aS,
                       java.lang.String aSpName,
                       int aSpNum,
                       java.lang.Object aR,
                       java.lang.String aRpName,
                       int aRpNum)
                throws OhError
各構成要素・中継端子間の接続を行ないます。

部分系モデル内部の端子間の接続を行ないます。

構成オブジェクトの受信端子、送信端子の接続を行ないます。

構成オブジェクトの受信端子、送信端子は、_objectName, _objectNumber から判別します。 つまり、クラス名のチェックを省略します。

所有中継端子と部分系モデル外部の受信端子との接続は _owner が行ないます。

 [RETURN]
  ・true --> 正常に接続できた場合.
  ・false -> 指定した構成オブジェクトまたは端子が取得できない場合。
             OhPort.setSender() の戻り値が false の場合。
             OhPort.registerReceiver() の戻り値が false の場合。
 

パラメータ:
aS - an Object value
aSpName - a String value
aSpNum - an int value
aR - an Object value
aRpName - a String value
aRpNum - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aS,
                       java.lang.String aSpName,
                       int aSpNum,
                       java.lang.Object aMyP)
                throws OhError
各構成要素・中継端子間の接続を行ないます。

部分系モデル内部の端子間の接続を行ないます。

構成オブジェクトの送信端子と、送信側中継端子または全体系の出力端子との接続を行ないます。

構成オブジェクトの送信端子は、_objectName, _objectNumber から判別します。

つまり、クラス名のチェックを省略します。

 [RETURN]
  ・true --> 正常に接続できた場合.
  ・false -> 指定した構成オブジェクトまたは端子が取得できない場合。
             OhPort.setSender() の戻り値が false の場合。
             OhPort.registerReceiver() の戻り値が false の場合。
 

パラメータ:
aS - an Object value
aSpName - a String value
aSpNum - an int value
aMyP - an Object value
戻り値:
a boolean value
例外:
OhError - if an error occurs

connect

public boolean connect(java.lang.Object aMySp,
                       java.lang.Object aMyRp)
                throws OhError
各構成要素・中継端子間の接続を行ないます。

部分系モデル内部の端子間の接続

パラメータ:
aMySp - an Object value
aMyRp - an Object value
戻り値:
a boolean value
例外:
OhError - if an error occurs

construct

public boolean construct()
                  throws OhError
_receivePortArray, _sendPortArray, _objectArray を作成し、 接続関係の定義に従って部分系内部の接続を行ないます。

この部分系モデル、構成オブジェクトの構造を設定します。 具体的には、以下の手続きを行ないます。

  1. OhLinkedList 型オブジェクトをヒープに作成して _objectList に設定する。
  2. OhElement.registerReceivePorts(), OhElement.makeObjectArray() により _receivePortArray を作成する。
  3. OhLinkedList.clear() により _objectList を空にする。
  4. OhElement.registerSendPorts(), OhElement.makeObjectArray() により _sendPortArray を作成する。
  5. OhLinkedList.clear() により _objectList を空にする。
  6. OhSubSystem.registerComponents(), OhElement.makeObjectArray() により _componentArray を作成する。
  7. OhSubSystem.initializeIteratorArray() により _iteratorArray の第一次配列を確保する。
  8. OhSubSystem.registerIterators() により _iteratorArray を作成する。
  9. _objectList を null に設定する。
  10. OhElement.construct() により、構成オブジェクトの構造を設定する。
  11. OhSubSystem.connectComponent() により、部分系モデル内部の接続を行なう。
 [RETURN]
  ・true --> 部分系モデル内部の構造が正常に設定された場合。
  ・false -> このオブジェクトの構造設定に異常が生じた場合。
             構成オブジェクトの構造設定に異常が生じた場合。
             部分系モデル内部の接続に異常が生じた場合。
 

オーバーライド:
クラス OhElement 内の construct
戻り値:
a boolean value
例外:
OhError - if an error occurs

canYouSwitch

public boolean canYouSwitch()
                     throws OhError
送受信接続作業が終了した後にこのメソッドが呼び出され、 送受信開始のための準備作業をします。

まず OhElement.canYouSwitch() を実行し、この戻り値が false の場合、 エラーメッセージを表示後、false を返します。

次に、構成オブジェクトに canYouSwitch () を実行させます。 ここで、戻り値が false の構成オブジェクトが存在する場合は、 全構成オブジェクトに canYouSwitch() を実行させた後、 エラーメッセージを表示して false を返します。

部分系モデル内部に存在する全端子に canYouSwitch() を実行させます。

送信端子では、_receiverArray を作成し、データパック収録の準備をします。 具体的に言えば、_dataPackArray のメモリを確保し、 _numberOfDataPacks の値を -1 から 0 にします。 中継端子では _receiverArray を作成するだけです。

まとめると、以下を行なうことになります。

  1. _receiverArray を作成する。
  2. _numberOfDataPacks の値を -1 から 0 に変更する。
 [RETURN]
   ・true --> 部分系モデル内部の全端子を正常に転換できた場合。
   ・false -> 部分系モデル内部の端子の内, 正常に転換できないものが存在する場合。
 

オーバーライド:
クラス OhElement 内の canYouSwitch
戻り値:
a boolean value
例外:
OhError - if an error occurs

areYouReady

public boolean areYouReady()
                    throws OhError
計算開始前の確認を行ないます。

このメソッドの戻り値が true ならば OhSubSystem は計算を開始できます。

まず OhElement.areYouReady() を用いて所有受信側中継端子、所有送信側中継端子に対して 計算前の確認作業を行います。 この戻り値が false の場合、エラーメッセージを表示後 false を返します。

次に、全構成オブジェクトに areYouReady() を用いて計算前の確認作業を行ないます。 ここで、戻り値が false のオブジェクトが存在する場合、全構成オブジェクトを areYouRedy() で確認後エラーメッセージを表示して false を返します。

 [RETURN]
  ・true --> 計算開始可。
  ・false -> 計算開始不可。
 

オーバーライド:
クラス OhElement 内の areYouReady
戻り値:
a boolean value
例外:
OhError - if an error occurs

clearDataString

public void clearDataString()
構成オブジェクトのデータ文字列を消去します。

Deletion of the string of components.

オーバーライド:
クラス OhElement 内の clearDataString

setParameter

public void setParameter(OhBufferedReader aBr)
                  throws OhError
パラメタを設定するメソッドですが、以下の理由で何もしないように定義されています。

このメソッドは、 OhElement クラスの抽象メソッドです。 標準的な部分系モデルは、数理的処理を構成オブジェクトにより行なうので、 パラメータ、状態量を持たないものと考えられます。 そこで、このクラスでは何もしないように定義しました。 必要ならば派生クラスで変更して下さい。

定義:
クラス OhElement 内の setParameter
パラメータ:
aBr - an OhBufferedReader value
例外:
OhError - if an error occurs

getParameter

public void getParameter(OhBufferedReader aBr)
                  throws OhError
このメソッドは、部分系自身のパラメタと、部分系の構成要素のパラメタを読み取ります。

オーバーライド:
クラス OhElement 内の getParameter
パラメータ:
aBr - an OhBufferedReader value
例外:
OhError - if an error occurs

isInitialTime

public boolean isInitialTime(OhTimePoint aInitTime)
                      throws OhError
構成オブジェクトの時刻を初期化します。

_currentTime を読み込みます。 読み込んだ値が 0 なら、_currentTime を変更しません。

Initialization of the time of constituent objects.

"_currentTime" is read. If it is 0, "_currentTime" will not be changed.

オーバーライド:
クラス OhElement 内の isInitialTime
パラメータ:
aInitTime - an OhTimePoint value
戻り値:
a boolean value
例外:
OhError - if an error occurs

setInitialState

public void setInitialState(OhBufferedReader aBr)
                     throws OhError
部分系自身の初期状態量を設定します。

部分系自身のクラス名、オブジェクト名、オブジェクト番号を読み取った後、 初期状態量が書いてある行の先頭に読み取り位置がある状態でこのメソッドが呼ばれます。

初期状態量を読みとった後、ファイルポインタは初期状態を読み取った行に置いておきます。

このメソッドは、getInitialState() から呼ばれます。

Sets the the initial state of sub systems itself.

定義:
クラス OhElement 内の setInitialState
パラメータ:
aBr - an OhBufferedReader value
例外:
OhError - if an error occurs

getInitialState

public void getInitialState(OhBufferedReader aBr)
                     throws OhError
部分系自身の初期状態量と構成オブジェクトの初期状態量の設定を行ないます。

Sets the the initial state of sub systems itself and components.

オーバーライド:
クラス OhElement 内の getInitialState
パラメータ:
aBr - an OhBufferedReader value
例外:
OhError - if an error occurs

saveTerminalState

public void saveTerminalState(java.io.PrintWriter aPw)
部分系自身の最終状態を出力ストリーム aPw に書き出します。 大抵の場合は、このメソッドを用いてファイルに保存します。

Save to the file of the own last state of the subsystems.

定義:
クラス OhElement 内の saveTerminalState
パラメータ:
aPw - a PrintWriter value

terminalState

public void terminalState(java.io.PrintWriter aPw)
部分系自身の最終状態と構成要素の最終状態をファイルストリーム aPw に書き出します。

このメソッドは、構成要素に最終状態を書き出すように指令を送ります。

Save the last state of the own subsystems and the components.

オーバーライド:
クラス OhElement 内の terminalState
パラメータ:
aPw - a PrintWriter value

doShareInfo

public OperationFlag doShareInfo()
                          throws OhError
このメソッドは、まず自分自身に対して canYouShareInfo() を実行し、 さらに自分の構成要素に対して doShareInfo() を実行させます。 自分も含めて一つでも canYouShareInfo() を実行した要素がいたら OperationFlag.E_DONE を返します。 全ての要素がすでに canYouShareInfo を実行していたら OperationFlag.E_ALREADY を返します。 どちらの場合でもないときは OperationFlag.E_UNDONE を返します。

オーバーライド:
クラス OhElement 内の doShareInfo
戻り値:
an OperationFlag value
例外:
OhError - if an error occurs

saveSendPortStock

public void saveSendPortStock(java.io.PrintWriter aPw)
部分系の構成要素のそれぞれに指令を送り、 出力ストリーム aPw で指定されているファイルに書き出させます。

オーバーライド:
クラス OhElement 内の saveSendPortStock
パラメータ:
aPw - a PrintWriter value

printComponents

public void printComponents(java.io.PrintWriter aPw,
                            java.lang.String aHead)
構成オブジェクトの情報を出力します。

Prints out the information on a constituent objects.

パラメータ:
aPw - a PrintWriter value
aHead - a String value

printComponents

public void printComponents(java.io.PrintWriter aPw)
構成オブジェクトの情報を出力します。

Prints out the information on a constituent objects.

パラメータ:
aPw - a PrintWriter value

initialOutput

public boolean initialOutput()
                      throws OhError
初期の出力を行ないます。

初期状態量を決めた直後に、_currentTime での出力を定義します。 送信端子に時刻と出力値を書き込みます。 _currnet_time での出力が計算できた場合は true を返します。 必要な入力データが得られていないなどして、 _currentTime の出力が計算できなかった場合は false を返します。

しかしながら、大抵の場合は部分系からの初期の出力はないと思われるので、 ここでは常に true を返すように定義しています。

定義:
クラス OhElement 内の initialOutput
戻り値:
a boolean value
例外:
OhError - if an error occurs

initialWork

public boolean initialWork()
                    throws OhError
初期作業を行ないます。

初期時刻において、全データを取得します。

オーバーライド:
クラス OhElement 内の initialWork
戻り値:
a boolean value
例外:
OhError - if an error occurs

doInitialWork

public OperationFlag doInitialWork()
                            throws OhError
初期作業 initialWork() を終えたかどうかを判断します。

A first-time output.

オーバーライド:
クラス OhElement 内の doInitialWork
戻り値:
an OperationFlag value
例外:
OhError - if an error occurs

getNecessaryTimeFrom

public OhTimePoint getNecessaryTimeFrom(java.lang.Object aRp)
要素が次回の計算に必要なデータのうち、aRp (arg) から受け取るべきデータのデータ記録時刻を返します。

getNecessaryTimeFrom() から getNecessaryTimeTo() までのデータパックが 受信端子 aRp から受信されていなければ、要素は計算を開始することができません。

パラメータ:
aRp - an Object value
戻り値:
an OhTimePoint value

getNecessaryTimeTo

public OhTimePoint getNecessaryTimeTo(java.lang.Object aRp)
要素が次回の計算に必要なデータのうち、aRp (arg) から受け取るべきデータのデータ記録時刻を返します。

getNecessaryTimeFrom() から getNecessaryTimeTo() までのデータパックが 受信端子 aRp から受信されていなければ、要素は計算を開始することができません。

パラメータ:
aRp - an Object value
戻り値:
an OhTimePoint value

canYouCalculate

public boolean canYouCalculate()
                        throws OhCannotGetDataError,
                               OhError
計算前の確認を行ないます。 ここでは、常に true を返すように定義されています。

The check before calculation.

定義:
クラス OhElement 内の canYouCalculate
戻り値:
a boolean value
例外:
OhCannotGetDataError - if an error occurs
OhError - if an error occurs

calculateTimeStep

public long calculateTimeStep()
                       throws OhError
タイムステップの計算を行います。 ここでは、常に 0 を返すように定義されています。

Calculation of the time step.

定義:
クラス OhElement 内の calculateTimeStep
戻り値:
a long value
例外:
OhError - if an error occurs

calculate

public boolean calculate()
                  throws OhCannotGetDataError,
                         OhError
1ステップ分の計算を行ないます。 ここでは常に true を返すように定義されています。

Calculation for 1 step.

定義:
クラス OhElement 内の calculate
戻り値:
a boolean value
例外:
OhCannotGetDataError - if an error occurs
OhError - if an error occurs

doYouReachTargetTime

public boolean doYouReachTargetTime(int aNum)
反復計算する要素群が反復計算目標時刻に到達したかどうかをチェックします。

このクラスでは、『管理者』としての OhSubSystem の立場から定義されています。 すなわち、自分の内部に反復計算を行なう要素群がいるということを前提としており、 自分自身が反復計算を行なう場合に対応して定義されているわけではありません。 したがって、自分自身が反復計算を行なう場合は、それが可能であるように再定義して下さい。

パラメータ:
aNum - an int value
戻り値:
a boolean value

doYouConverge

public boolean doYouConverge(int aNum)
                      throws OhError
反復計算する要素群が収束したかをチェックします。

このクラスでは、『管理者』としての OhSubSystem の立場から定義されています。 すなわち、自分の内部に反復計算を行なう要素群がいるということを前提としており、 自分自身が反復計算を行なう場合に対応して定義されているわけではありません。 したがって、自分自身が反復計算を行なう場合は、それが可能であるように再定義して下さい。

パラメータ:
aNum - an int value
戻り値:
a boolean value
例外:
OhError - if an error occurs

canYouRenewCurrentTime

public boolean canYouRenewCurrentTime(int aNum)
                               throws OhError
現在時刻の更新を行ないます。

_componentArray に登録されている要素の _currentTime および _iteratorArray に登録されている要素の _fixedTime のうち、 最も遅れている方を自分の _currentTime とする。

Renewal of the current time.

パラメータ:
aNum - an int value
戻り値:
a boolean value
例外:
OhError

rewindCurrentTime

public void rewindCurrentTime(int aNum)
                       throws OhError
反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して rewindCurrentTime() を実行するよう命令します。

This orders to perform "rewindCurrentTime()" to the element group which repeated calculation did not converge.

パラメータ:
aNum - an int value
例外:
OhError

flushData

public void flushData(int aNum)
               throws OhError
反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して flushData() を実行するよう命令します。

パラメータ:
aNum - an int value
例外:
OhError - if an error occurs

renewFixedTime

public void renewFixedTime(int aNum)
                    throws OhError
反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して renewFixedTime() を実行するよう命令します。

パラメータ:
aNum - an int value
例外:
OhError - if an error occurs

renewTargetTime

public void renewTargetTime(int aNum,
                            long aItrs)
反復計算が収束しなかった要素群(_iteratorArray[aNum])に対して renewTargetTime() を実行するよう命令します。

パラメータ:
aNum - an int value
aItrs - a long value

initializeTargetTime

public void initializeTargetTime()
                          throws OhError
反復計算目標時刻 _targetTime を更新します。 引数に反復計算時間間隔をとります。

オーバーライド:
クラス OhElement 内の initializeTargetTime
例外:
OhError - if an error occurs

calculateIterationStep

public long calculateIterationStep(int aNum)
                            throws OhError
このメソッドは _iteratorArray[aNum] の calculateIterationStep() の戻り値のうち、最小の値を返します。

This returns the minimum value among the return values of "calculateIterationStep()" of "_iteratorArray[aNum]".

パラメータ:
aNum - an int value
戻り値:
a long value
例外:
OhError

work

public boolean work()
             throws OhCannotGetDataError,
                    OhError
各構成要素に順次計算実行命令を送ります。

Operation function.

定義:
クラス OhElement 内の work
戻り値:
a boolean value
例外:
OhCannotGetDataError - if an error occurs
OhError - if an error occurs