|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectohymosj.OhObject
ohymosj.OhPort
ohymosj.OhSenderPort
ohymosj.OhSendPort
ohymosj.OhInputPort
ohymosj.OhInputFile
入力ファイル用送信端子モデルは、
送信端子のみを持つ要素モデルであると解釈することもできます。
すなわち、このモデルは、ファイルからデータを読み込み、
データパックに変換して送信端子にデータパックをストックします。
実際には、入力ファイル用送信端子モデルは、
要素モデルの1つとしてモデル化されずに、
送信端子モデルの派生モデルとして実現されています。
すなわち、送信端子モデルにファイル読み取り機能を追加して、
入力ファイル用送信端子モデルが作成されています。
その関係は次のようです。
クラス OhInputFile では、
・入力ファイル名 : OhObject._objectName
を記憶し、
・入力ファイルからのデータパック送信機能
を定義しました。
パラメタファイルや初期値データファイルなどは、クラス
OhTotalSystem のオブジェクトが
OhTotalSystem.readParameterFile() や
OhTotalSystem.readInitialStateFile() などを
利用して読み取り作業をします。
したがって、パラメタや初期値などは、端子を通して供給されるわけではありません。
OhInputFile が扱う入力ファイルとは、
時間的に変化するデータを収録しているファイルです。
クラス OhInputFile のメソッド
OhInputFile.inputData() は、
データ補間型配列を指定する行(#& dctVec で始まる行)を
ファイルから読み取る機能を持っています。
・入力ファイルの最終更新時刻 : _fileTimeAtInput
OhInputFile; Abstract class of port models of input files.
An object of "OhInputFile" class
フィールドの概要 | |
protected long |
_fileTimeAtInput
|
クラス ohymosj.OhSendPort から継承したフィールド |
_dataPackArray, _dctVec, _numberOfDataPacks, _protectPastDataFlag |
クラス ohymosj.OhSenderPort から継承したフィールド |
_bufferList, _commentString, _numberOfReceivers, _receiverArray |
クラス ohymosj.OhObject から継承したフィールド |
_className, _objectName, _objectNumber, _owner, NEWLINE |
コンストラクタの概要 | |
OhInputFile()
|
|
OhInputFile(java.lang.String aFileName)
|
メソッドの概要 | |
void |
calReq()
|
void |
cPrint(java.io.PrintWriter aPw,
java.lang.String aHead)
|
abstract java.lang.String |
dataType()
|
java.util.Vector |
getDctVec(java.lang.String aStr)
|
boolean |
init(java.lang.String aFileName)
|
void |
inputData()
|
abstract java.lang.Object |
makeDataPack(java.lang.String aLineData)
|
void |
oPrint(java.io.PrintWriter aPw,
java.lang.String aHead)
|
クラス ohymosj.OhInputPort から継承したメソッド |
init |
クラス ohymosj.OhSenderPort から継承したメソッド |
getCommentString, getNecessaryTimeFrom, getNecessaryTimeTo, printConnection, registerReceiver, setCommentString |
クラス ohymosj.OhPort から継承したメソッド |
canYouGetData, create, getDataPack, getDataPack, setSender |
クラス ohymosj.OhObject から継承したメソッド |
getAbsName, getClassName, getObjectName, getObjectNumber, getOwner, getTopOwner, objCompare, objCompare, objCompare, setOwner |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
protected long _fileTimeAtInput
新しいデータが取得されたときに、同じ名前の入力ファイルファイルに追加書きするか、 上書きするかを選べるように想定しています。 そのために、データを読み込んだときに、ファイルの最終更新時刻を記録しておき、 次にファイルを読む必要が生じたときに、ファイルの最終更新時刻を見て、 ファイルが更新されたか検査するようにします。
Final update time of the input file.
コンストラクタの詳細 |
public OhInputFile() throws OhError
デフォルトコンストラクタは OhInputFile.init(String, int) を実行しません。 その結果、以下の設定となります。
その他のメンバ変数に対する処理は引数つきコンストラクタと同じです。 この場合、OhInputFile.init(String, int) を 用いてメンバ変数を初期化して下さい。
OhError
- if an error occurs
public OhInputFile(java.lang.String aFileName) throws OhError
aFileName
- a String
value
OhError
- if an error occurs
メソッドの詳細 |
public abstract java.lang.String dataType()
抽象メソッドです。
Returns the string showing the type of the sending datapacks.
OhInputPort
内の dataType
String
valuepublic abstract java.lang.Object makeDataPack(java.lang.String aLineData)
抽象メソッドです。
文字列データからデータパックを作成します。 抽象メソッドです。 派生クラスで実装することが要求されています。
1行分文字列データを1個のデータパックに変換するメソッドを 派生クラスで定義して下さい。
標準的な派生クラスでは、 送信データパック型に応じて次の手続きを定義して下さい。
(1) 送信用データパックの記憶領域をヒープに生成する。 (2) 文字列 aLineData からデータ記録時刻、データ値を読み取る。 (3) (2) で読み取った値を (1) のデータパックのメンバに代入する。 (4) (1) のデータパックを Object 型にキャストして返す。抽象メソッドなので派生クラスで必ず定義して下さい。
[ARGUMENT] ・aLineData -> 入力データ1行分の文字列 [RETURN] ・Object : 送信データパックを Object 型にキャストしたもの。
Makes datapacks from string data.
aLineData
- a String
value
Object
valuepublic boolean init(java.lang.String aFileName) throws OhError
Initialization.
aFileName
- a String
value
boolean
value
OhError
- if an error occurspublic java.util.Vector getDctVec(java.lang.String aStr) throws OhError
Changes into data connection type vector from the string "aStr", and returns it.
aStr
- a String
value
Vector
value
OhError
- if an error occurspublic void inputData() throws OhError
ファイルを読み取るとき、行頭が # の場合、 その行をコメント行と見なします。
ただし、行頭が # でも、その後に & が来ると、すなわち #& で始まる行は、 コメントではなく、特殊なデータが記載されているものとします。
現在(2004/01/16)のところ、 DataConnectionType Vector を指定する場合があるだけです。
# DataConnectionType = {0:BROKENLINE, 1:STEP, 2:PULSE, 3:NOINTP} #& dctvec 2 0 1のように書いてあると、DataConnectionType Vector を 指定するものと見なします。 この例は、データが2成分あって、第1成分は BROKENLINE 、 第2成分は STEP であることを意味します。 何も指示がされない普通の場合は、
#& dctvec 1 0とあるのと同じです。
ファイル末尾まで処理が終了したら、 OhSendPort.dataPackStock(Object) を 用いて _dataPackArray を作成します。
ただし、入力ファイルの最終変更時刻が _fileTimeAtInput 以前の場合は何もせず return します。 コンストラクタで _fileTimeAtInput は Long.MIN_VALUE に設定されるので 初回の入力は必ず実行されます。
OhInputPort
内の inputData
OhError
- if an error occurspublic void calReq() throws OhCannotGetDataError, OhError
When the input port receives a calculation request, throw OhCannotGetDataError. This will be caught in the catch block in OhTotalSystem.work().
OhInputPort
内の calReq
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurspublic void cPrint(java.io.PrintWriter aPw, java.lang.String aHead)
入力ファイル名とこの端子の送信元受信端子の情報をストリーム aPw に出力します。
[ARGUMENT] ・aPw ---> オブジェクト情報を出力するストリーム。 ・aHead -> コメント文字列。
The information on an input file name and the sending agency receiving port of this port is outputted to File "aPw".
OhPort
内の cPrint
aPw
- a PrintWriter
valueaHead
- a String
valuepublic void oPrint(java.io.PrintWriter aPw, java.lang.String aHead)
入力ファイル名とこの端子の送信元受信端子の情報をストリーム aPw に出力します。
[ARGUMENT] ・aPw ---> オブジェクト情報を出力するストリーム。 ・aHead -> コメント文字列。
OhObject
内の oPrint
aPw
- a PrintWriter
valueaHead
- a String
value
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |