|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectohymosj.OhObject
ohymosj.OhElement
ohymosj.OhSubSystem
部分系モデルは、要素・部分系など、
複数のインスタンス(以下、構成要素、構成オブジェクト; component) により
構成されるモデルです。
本システムでは、部分系モデルは原則として数理計算を行なわず、
こうしたデータを直接処理する作業は内部の要素により行なうものとしました。
従って、部分系モデルの計算作業は構成要素に順次計算命令を送ることになります。
ところで、部分系モデルは、送信用中継端子・受信用中継端子を所有しますが、
これらの中継端子を登録・接続する手続きは、要素モデルの受信端子・送信端子の場合と
同一の手続きとして定義できます。
そこで、本システムでは部分系モデルを新たに作成するのではなく、
要素モデルを継承して作成することとしました。
部分系モデルでは、受信用中継端子・送信用中継端子を
OhElement._receivePortArray,
OhElement._sendPortArray
に記憶しています。
また、端子の登録に関わる OhElement のメソッドを
構成要素の登録作業にも用い、端子の登録と全く同一の手続きで構成要素の登録を行ない、
部分系モデル作成者の利便性を高めています。
部分系モデルでは、上記のように登録した各構成要素・中継端子間の接続を
定義しなければなりません。
しかし、基本型部分系モデルに接続のためのメソッドが既に定義されているので、
基本型部分系モデルを継承して作成した部分系モデルでは、
接続作業は基本型部分系モデルのメソッドに引数を与えるのみの作業に単純化されています。
また、要素・部分系どうしが直接通信を用いて反復計算を行なうためには、
それらを所有する部分系がそれらを管理する必要があります。
そこで、部分系モデルでは反復計算のためのメソッドも定義してあります。
フィールドの概要 | |
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)
|
|
OhSubSystem(java.lang.String aObjName,
int aObjNum,
int aNumOfObjs)
|
|
OhSubSystem(java.lang.String aObjName,
int aObjNum,
int aNumOfObjs,
int aNumOfItr)
|
|
OhSubSystem(java.lang.String aObjName,
int aObjNum,
int aNumOfObjs,
int aNumOfItr,
java.lang.String aLine)
|
|
OhSubSystem(java.lang.String aObjName,
int aObjNum,
int aNumOfObjs,
java.lang.String aLine)
|
メソッドの概要 | |
boolean |
areYouReady()
|
boolean |
calculate()
|
long |
calculateIterationStep(int aNum)
|
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()
|
boolean |
construct()
|
OperationFlag |
doInitialWork()
|
OperationFlag |
doShareInfo()
|
boolean |
doYouConverge(int aNum)
|
boolean |
doYouReachTargetTime(int aNum)
|
void |
flushData(int aNum)
|
java.lang.Object |
getComponent(java.lang.String aObjName,
int aObjNum)
|
java.lang.Object |
getComponent(java.lang.String aClassName,
java.lang.String aObjName,
int aObjNum)
|
void |
getInitialState(OhBufferedReader aBr)
|
OhTimePoint |
getNecessaryTimeFrom(java.lang.Object aRp)
|
OhTimePoint |
getNecessaryTimeTo(java.lang.Object aRp)
|
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()
|
void |
initializeTargetTime()
|
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()
|
abstract void |
registerIterators()
|
abstract void |
registerReceivePorts()
|
abstract void |
registerSendPorts()
|
void |
renewFixedTime(int aNum)
|
void |
renewTargetTime(int aNum,
long aItrs)
|
void |
rewindCurrentTime(int aNum)
|
void |
saveSendPortStock(java.io.PrintWriter aPw)
|
void |
saveTerminalState(java.io.PrintWriter aPw)
|
void |
setInitialState(OhBufferedReader aBr)
|
void |
setParameter(OhBufferedReader aBr)
|
void |
terminalState(java.io.PrintWriter aPw)
|
boolean |
work()
|
クラス 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 |
フィールドの詳細 |
protected java.lang.Object[] _componentArray
Array for memorizing constituent elements.
protected int _numberOfComponents
Number of constituent elements.
protected java.lang.Object[][] _iteratorArray
Array for memorizing the costituent elements which carry out repeated calculation.
protected int _numberOfIteratorSets
The number of the element groups which carry out repeated calculation.
protected int[] _numberOfIterators
The number of the elements which constitute an element group.
コンストラクタの詳細 |
public OhSubSystem()
デフォルトコンストラクタは初期化メソッド init() を実行しません。 その結果以下の設定となります。
・_objectName : null ・_objectNumber : -1その他のメンバ変数に対する処理は引数つきコンストラクタと同じです。 この場合、初期化メソッド init() を用いてメンバ変数を初期化して下さい。
public OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr, java.lang.String aLine) throws OhError
・_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
valueaObjNum
- an int
valueaNumOfObjs
- an int
valueaNumOfItr
- an int
valueaLine
- a String
value
OhError
- if an error occurspublic OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr) throws OhError
・_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
valueaObjNum
- an int
valueaNumOfObjs
- an int
valueaNumOfItr
- an int
value
OhError
- if an error occurspublic OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs, java.lang.String aLine) throws OhError
・_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
valueaObjNum
- an int
valueaNumOfObjs
- an int
valueaLine
- a String
value
OhError
- if an error occurspublic OhSubSystem(java.lang.String aObjName, int aObjNum, int aNumOfObjs) throws OhError
・_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
valueaObjNum
- an int
valueaNumOfObjs
- an int
value
OhError
- if an error occurspublic OhSubSystem(java.lang.String aObjName, int aObjNum) throws OhError
・_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
valueaObjNum
- an int
value
OhError
- if an error occursメソッドの詳細 |
public abstract void registerReceivePorts() throws OhError
派生クラスで定義します。 OhSubSystem.construct() から呼ばれます。 登録されていない受信側中継端子は接続できません。
OhElement
内の registerReceivePorts
OhError
- if an error occurspublic abstract void registerSendPorts() throws OhError
派生クラスで定義します。 OhSubSystem.construct()から呼ばれます。 登録されていない送信側中継端子は接続できません。
OhElement
内の registerSendPorts
OhError
- if an error occurspublic abstract void registerComponents() throws OhError
全構成要素のうち、反復計算を行なわない構成オブジェクトを _componentArray に登録します。 登録されていない構成オブジェクトには計算実行命令が送れません。
例えば、派生クラスで構成オブジェクト abc をメンバ変数として定義した場合、 次のように abc を登録します。
public void registerComponents() { Register((Object) abc); }この時、必ず abc を Object 型にキャストして下さい。 これにより abc は、一時的に _objectList に収録された後、 最終的に Object 型配列 _componentArray 中に記憶されます。 (OhSubSystem.construct() 参照)
OhError
- if an error occurspublic abstract void registerIterators() throws OhError
派生クラスで定義する必要がありますが、 反復計算を行なわない場合は何も実行しないように定義してください。
OhError
- if an error occurspublic abstract void connectPorts() throws OhError
派生クラスで定義します。
OhError
- if an error occurspublic 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 occurspublic boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr, java.lang.String aLine) throws OhError
aObjName
- a String
valueaObjNum
- an int
valueaNumOfObjs
- an int
valueaNumOfItr
- an int
valueaLine
- a String
value
boolean
value
OhError
- if an error occurspublic boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs, int aNumOfItr) throws OhError
aObjName
- a String
valueaObjNum
- an int
valueaNumOfObjs
- an int
valueaNumOfItr
- an int
value
boolean
value
OhError
- if an error occurspublic boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs, java.lang.String aLine) throws OhError
OhElement
内の init
aObjName
- a String
valueaObjNum
- an int
valueaNumOfObjs
- an int
valueaLine
- a String
value
boolean
value
OhError
- if an error occurspublic boolean init(java.lang.String aObjName, int aObjNum, int aNumOfObjs) throws OhError
OhElement
内の init
aObjName
- a String
valueaObjNum
- an int
valueaNumOfObjs
- an int
value
boolean
value
OhError
- if an error occurspublic boolean init(java.lang.String aObjName, int aObjNum, java.lang.String aLine) throws OhError
OhElement
内の init
aObjName
- a String
valueaObjNum
- an int
valueaLine
- a String
value
boolean
value
OhError
- if an error occurspublic boolean init(java.lang.String aObjName, int aObjNum) throws OhError
OhElement
内の init
aObjName
- a String
valueaObjNum
- an int
value
boolean
value
OhError
- if an error occurspublic void initializeIteratorArray() throws OhError
OhError
- if an error occurspublic boolean register(java.lang.Object[] aP) throws OhError
aP
- an Object[]
value
boolean
value
OhError
- if an error occurspublic boolean register(java.lang.Object aP) throws OhError
OhElement
内の register
aP
- an Object
value
boolean
value
OhError
- if an error occurspublic boolean register(java.lang.Object aP, int aObj) throws OhError
OhElement
内の register
aP
- an Object
valueaObj
- an int
value
boolean
value
OhError
- if an error occurspublic java.lang.Object getComponent(java.lang.String aClassName, java.lang.String aObjName, int aObjNum) throws OhError
指定されたオブジェクトが登録されていない場合は、null を返します。
_numberOfComponents が負の場合、_componentArray が作成されていないと判断し、 エラーメッセージを表示後、null を返します。
[ARGUMENT] ・aClassName -> 取得する構成オブジェクトのクラス名。 ・aObjName ---> 取得する構成オブジェクトのオブジェクト名。 ・aObjNum ----> 取得する構成オブジェクトのオブジェクト番号。 [RETURN] ・Object -----> 指定された構成オブジェクト。指定のオブジェクトを取得できない場合 null。 [ACCIDENT] ・_componentArray に Object 型以外の変数が収録されている場合。
OhElement
内の getComponent
aClassName
- a String
valueaObjName
- a String
valueaObjNum
- an int
value
Object
value
OhError
- if an error occurspublic java.lang.Object getComponent(java.lang.String aObjName, int aObjNum) throws OhError
指定されたオブジェクトが登録されていない場合は、null を返します。
_numberOfComponents が負の場合、_componentArray が作成されていないと判断し、 エラーメッセージを表示後、null を返します。
[ARGUMENT] ・aObjName ---> 取得する構成オブジェクトのオブジェクト名。 ・aObjNum ----> 取得する構成オブジェクトのオブジェクト番号。 [RETURN] ・Object -----> 指定された構成オブジェクト。指定のオブジェクトを取得できない場合 null。 [ACCIDENT] ・_componentArray に Object 型以外の変数が収録されている場合。
OhElement
内の getComponent
aObjName
- a String
valueaObjNum
- an int
value
Object
value
OhError
- if an error occurspublic 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
valueaR
- an Object
valueaRpClassName
- a String
valueaRpName
- a String
valueaRpNum
- an int
value
boolean
value
OhError
- if an error occurspublic 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
valueaSpClassName
- a String
valueaSpName
- a String
valueaSpNum
- an int
valueaR
- an Object
valueaRpClassName
- a String
valueaRpName
- a String
valueaRpNum
- an int
value
boolean
value
OhError
- if an error occurspublic 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
valueaSpClassName
- a String
valueaSpName
- a String
valueaSpNum
- an int
valueaMyP
- an Object
value
boolean
value
OhError
- if an error occurspublic 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
valueaR
- an Object
valueaRpName
- a String
valueaRpNum
- an int
value
boolean
value
OhError
- if an error occurspublic 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
valueaSpName
- a String
valueaSpNum
- an int
valueaR
- an Object
valueaRpName
- a String
valueaRpNum
- an int
value
boolean
value
OhError
- if an error occurspublic 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
valueaSpName
- a String
valueaSpNum
- an int
valueaMyP
- an Object
value
boolean
value
OhError
- if an error occurspublic boolean connect(java.lang.Object aMySp, java.lang.Object aMyRp) throws OhError
部分系モデル内部の端子間の接続
aMySp
- an Object
valueaMyRp
- an Object
value
boolean
value
OhError
- if an error occurspublic boolean construct() throws OhError
この部分系モデル、構成オブジェクトの構造を設定します。 具体的には、以下の手続きを行ないます。
[RETURN] ・true --> 部分系モデル内部の構造が正常に設定された場合。 ・false -> このオブジェクトの構造設定に異常が生じた場合。 構成オブジェクトの構造設定に異常が生じた場合。 部分系モデル内部の接続に異常が生じた場合。
OhElement
内の construct
boolean
value
OhError
- if an error occurspublic boolean canYouSwitch() throws OhError
まず OhElement.canYouSwitch() を実行し、この戻り値が false の場合、 エラーメッセージを表示後、false を返します。
次に、構成オブジェクトに canYouSwitch () を実行させます。 ここで、戻り値が false の構成オブジェクトが存在する場合は、 全構成オブジェクトに canYouSwitch() を実行させた後、 エラーメッセージを表示して false を返します。
部分系モデル内部に存在する全端子に canYouSwitch() を実行させます。
送信端子では、_receiverArray を作成し、データパック収録の準備をします。 具体的に言えば、_dataPackArray のメモリを確保し、 _numberOfDataPacks の値を -1 から 0 にします。 中継端子では _receiverArray を作成するだけです。
まとめると、以下を行なうことになります。
[RETURN] ・true --> 部分系モデル内部の全端子を正常に転換できた場合。 ・false -> 部分系モデル内部の端子の内, 正常に転換できないものが存在する場合。
OhElement
内の canYouSwitch
boolean
value
OhError
- if an error occurspublic boolean areYouReady() throws OhError
このメソッドの戻り値が true ならば OhSubSystem は計算を開始できます。
まず OhElement.areYouReady() を用いて所有受信側中継端子、所有送信側中継端子に対して 計算前の確認作業を行います。 この戻り値が false の場合、エラーメッセージを表示後 false を返します。
次に、全構成オブジェクトに areYouReady() を用いて計算前の確認作業を行ないます。 ここで、戻り値が false のオブジェクトが存在する場合、全構成オブジェクトを areYouRedy() で確認後エラーメッセージを表示して false を返します。
[RETURN] ・true --> 計算開始可。 ・false -> 計算開始不可。
OhElement
内の areYouReady
boolean
value
OhError
- if an error occurspublic void clearDataString()
Deletion of the string of components.
OhElement
内の clearDataString
public void setParameter(OhBufferedReader aBr) throws OhError
このメソッドは、 OhElement クラスの抽象メソッドです。 標準的な部分系モデルは、数理的処理を構成オブジェクトにより行なうので、 パラメータ、状態量を持たないものと考えられます。 そこで、このクラスでは何もしないように定義しました。 必要ならば派生クラスで変更して下さい。
OhElement
内の setParameter
aBr
- an OhBufferedReader
value
OhError
- if an error occurspublic void getParameter(OhBufferedReader aBr) throws OhError
OhElement
内の getParameter
aBr
- an OhBufferedReader
value
OhError
- if an error occurspublic 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
boolean
value
OhError
- if an error occurspublic 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 occurspublic 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 occurspublic void saveTerminalState(java.io.PrintWriter aPw)
Save to the file of the own last state of the subsystems.
OhElement
内の saveTerminalState
aPw
- a PrintWriter
valuepublic void terminalState(java.io.PrintWriter aPw)
このメソッドは、構成要素に最終状態を書き出すように指令を送ります。
Save the last state of the own subsystems and the components.
OhElement
内の terminalState
aPw
- a PrintWriter
valuepublic OperationFlag doShareInfo() throws OhError
OhElement
内の doShareInfo
OperationFlag
value
OhError
- if an error occurspublic void saveSendPortStock(java.io.PrintWriter aPw)
OhElement
内の saveSendPortStock
aPw
- a PrintWriter
valuepublic void printComponents(java.io.PrintWriter aPw, java.lang.String aHead)
Prints out the information on a constituent objects.
aPw
- a PrintWriter
valueaHead
- a String
valuepublic void printComponents(java.io.PrintWriter aPw)
Prints out the information on a constituent objects.
aPw
- a PrintWriter
valuepublic boolean initialOutput() throws OhError
初期状態量を決めた直後に、_currentTime での出力を定義します。 送信端子に時刻と出力値を書き込みます。 _currnet_time での出力が計算できた場合は true を返します。 必要な入力データが得られていないなどして、 _currentTime の出力が計算できなかった場合は false を返します。
しかしながら、大抵の場合は部分系からの初期の出力はないと思われるので、 ここでは常に true を返すように定義しています。
OhElement
内の initialOutput
boolean
value
OhError
- if an error occurspublic boolean initialWork() throws OhError
初期時刻において、全データを取得します。
OhElement
内の initialWork
boolean
value
OhError
- if an error occurspublic OperationFlag doInitialWork() throws OhError
A first-time output.
OhElement
内の doInitialWork
OperationFlag
value
OhError
- if an error occurspublic OhTimePoint getNecessaryTimeFrom(java.lang.Object aRp)
getNecessaryTimeFrom() から getNecessaryTimeTo() までのデータパックが 受信端子 aRp から受信されていなければ、要素は計算を開始することができません。
aRp
- an Object
value
OhTimePoint
valuepublic OhTimePoint getNecessaryTimeTo(java.lang.Object aRp)
getNecessaryTimeFrom() から getNecessaryTimeTo() までのデータパックが 受信端子 aRp から受信されていなければ、要素は計算を開始することができません。
aRp
- an Object
value
OhTimePoint
valuepublic boolean canYouCalculate() throws OhCannotGetDataError, OhError
The check before calculation.
OhElement
内の canYouCalculate
boolean
value
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurspublic long calculateTimeStep() throws OhError
Calculation of the time step.
OhElement
内の calculateTimeStep
long
value
OhError
- if an error occurspublic boolean calculate() throws OhCannotGetDataError, OhError
Calculation for 1 step.
OhElement
内の calculate
boolean
value
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurspublic boolean doYouReachTargetTime(int aNum)
このクラスでは、『管理者』としての OhSubSystem の立場から定義されています。 すなわち、自分の内部に反復計算を行なう要素群がいるということを前提としており、 自分自身が反復計算を行なう場合に対応して定義されているわけではありません。 したがって、自分自身が反復計算を行なう場合は、それが可能であるように再定義して下さい。
aNum
- an int
value
boolean
valuepublic boolean doYouConverge(int aNum) throws OhError
このクラスでは、『管理者』としての OhSubSystem の立場から定義されています。 すなわち、自分の内部に反復計算を行なう要素群がいるということを前提としており、 自分自身が反復計算を行なう場合に対応して定義されているわけではありません。 したがって、自分自身が反復計算を行なう場合は、それが可能であるように再定義して下さい。
aNum
- an int
value
boolean
value
OhError
- if an error occurspublic boolean canYouRenewCurrentTime(int aNum) throws OhError
_componentArray に登録されている要素の _currentTime および _iteratorArray に登録されている要素の _fixedTime のうち、 最も遅れている方を自分の _currentTime とする。
Renewal of the current time.
aNum
- an int
value
boolean
value
OhError
public void rewindCurrentTime(int aNum) throws OhError
This orders to perform "rewindCurrentTime()" to the element group which repeated calculation did not converge.
aNum
- an int
value
OhError
public void flushData(int aNum) throws OhError
aNum
- an int
value
OhError
- if an error occurspublic void renewFixedTime(int aNum) throws OhError
aNum
- an int
value
OhError
- if an error occurspublic void renewTargetTime(int aNum, long aItrs)
aNum
- an int
valueaItrs
- a long
valuepublic void initializeTargetTime() throws OhError
OhElement
内の initializeTargetTime
OhError
- if an error occurspublic long calculateIterationStep(int aNum) throws OhError
This returns the minimum value among the return values of "calculateIterationStep()" of "_iteratorArray[aNum]".
aNum
- an int
value
long
value
OhError
public boolean work() throws OhCannotGetDataError, OhError
Operation function.
OhElement
内の work
boolean
value
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurs
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |