ohymosj
クラス OhOutputFile

java.lang.Object
  拡張ohymosj.OhObject
      拡張ohymosj.OhPort
          拡張ohymosj.OhReceivePort
              拡張ohymosj.OhOutputPort
                  拡張ohymosj.OhOutputFile
直系の既知のサブクラス:
OhOutputFileDouble, OhOutputFileFloat, OhOutputFileInt, OhOutputFileLong

public abstract class OhOutputFile
extends OhOutputPort

出力ファイル用受信端子モデルを表すクラスです。

全体系内で受信したデータパックをファイルに記録します。

抽象クラスです。 OhOutputPort クラスから派生され、 OhOutputFileDouble, OhOutputFileInt, OhOutputFileLong, OhOutputFileFloat, クラスを派生します。

OhOutputFile; Model for output ports which receive datapacks and print them in a file.

Class OhOutputFile stores "output file name" in OhObject._objectName. Methods to output received datapacks to the output file are defined as its methods.

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

フィールドの概要
protected  java.lang.String _commentString
           ファイルに書き出すコメント文字列です。
protected  OhTimePoint _lastDataTime
           最終出力データのデータ記録時刻です。
protected  int _lineLength
           出力データ文字列の最大長さです。
 
クラス ohymosj.OhReceivePort から継承したフィールド
_sender
 
クラス ohymosj.OhObject から継承したフィールド
_className, _objectName, _objectNumber, _owner, NEWLINE
 
コンストラクタの概要
OhOutputFile()
           デフォルトコンストラクタです。
OhOutputFile(java.lang.String aFileName)
           基底クラス OhOutputPort のデフォルトコンストラクタを用い、 OhOutputFile.init(String) を用いて、 メンバ変数を以下の通り初期化します。
OhOutputFile(java.lang.String aFileName, int aLineLength)
           基底クラス OhOutputPort のデフォルトコンストラクタを用い、 OhOutputFile.init(String, int) を用いて、 メンバ変数を以下の通り初期化します。
 
メソッドの概要
 void cPrint(java.io.PrintWriter aPw, java.lang.String aHead)
           オブジェクト情報(所有者の情報を含まない)を出力します。
abstract  java.lang.String dataType()
           出力データパックのデータ値の型を文字列として返します。
 OhTimePoint getLastDataTime()
           最終出力データのデータ記録時刻 _lastDataTime を返します。
 int getLineLength()
           出力データ文字列の最大長さ _lineLength を返します。
 OhTimePoint getNecessaryTimeFrom()
           データ必要時刻を返します。
 OhTimePoint getNecessaryTimeTo()
           データ必要時刻を返します。
 boolean init(java.lang.String aFileName)
           オブジェクト名(ファイル名)を初期化し、 出力データ文字列の最大長さ(_lineLength)を 128 に、オブジェクト番号を 0 に設定します。
 boolean init(java.lang.String aFileName, int aLineLength)
           オブジェクト名(ファイル名)、出力データ文字列の最大長さ(_lineLength)を初期化し、 オブジェクト番号を 0 に設定します。
abstract  void makeStringData(java.lang.String aStr, java.lang.Object aDataPack)
           出力データ1行分の作成を行います。
 void oPrint(java.io.PrintWriter aPw, java.lang.String aHead)
           オブジェクト情報(所有者の情報を含む)を出力します。
 void outputData()
           出力データを書き込みます。
 void setCommentString(java.lang.String aCmt)
           ファイルに書き出すコメント文字列 _commentString を aCmt に設定します。
 boolean writeHeader()
           出力データ情報を書き込みます。
 
クラス ohymosj.OhReceivePort から継承したメソッド
areYouReady, calReq, canYouGetData, canYouGetData, canYouSwitch, getDataPack, getDataPack, getDataPackArray, getNewestDataTime, getNumberOfDataPacks, getOldestDataTime, printConnection, reduceDataPackStock, setDataPackArray, setSender
 
クラス ohymosj.OhPort から継承したメソッド
create, getDataPack, getDataPack, registerReceiver
 
クラス 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
 

フィールドの詳細

_lineLength

protected int _lineLength
出力データ文字列の最大長さです。

この長さは、このオブジェクトのコンストラクタで指定したものです。

The maximum length of an output data string.


_lastDataTime

protected OhTimePoint _lastDataTime
最終出力データのデータ記録時刻です。

Data record time of the last output data.


_commentString

protected java.lang.String _commentString
ファイルに書き出すコメント文字列です。

The comment string written out to a file.

コンストラクタの詳細

OhOutputFile

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

デフォルトコンストラクタは OhOutputFile.init(String, int) を実行しません。 その結果、以下の設定となります。

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


    OhOutputFile

    public OhOutputFile(java.lang.String aFileName,
                        int aLineLength)
                 throws OhError
    基底クラス OhOutputPort のデフォルトコンストラクタを用い、 OhOutputFile.init(String, int) を用いて、 メンバ変数を以下の通り初期化します。

  • _className : "OhOutputFile"
  • _objectName : aFileName
  • _objectNumber : 0
  • _lineLength : aLineLength
  • _lastDataTime : OhTimePoint.OhTimePointMin
  • _commentString : null
  • パラメータ:
    aFileName - a String value
    aLineLength - an int value

    OhOutputFile

    public OhOutputFile(java.lang.String aFileName)
                 throws OhError
    基底クラス OhOutputPort のデフォルトコンストラクタを用い、 OhOutputFile.init(String) を用いて、 メンバ変数を以下の通り初期化します。

  • _className : "OhOutputFile"
  • _objectName : aFileName
  • _objectNumber : 0
  • _lineLength : -1
  • _lastDataTime : OhTimePoint.OhTimePointMin
  • _commentString : null
  • パラメータ:
    aFileName - a String value
    例外:
    OhError - if an error occurs
    メソッドの詳細

    dataType

    public abstract java.lang.String dataType()
    出力データパックのデータ値の型を文字列として返します。

    抽象メソッドです。

    This is an abstract method. Returns a string which expresses the type of datapacks received by the current object.

    定義:
    クラス OhOutputPort 内の dataType
    戻り値:
    a String value

    makeStringData

    public abstract void makeStringData(java.lang.String aStr,
                                        java.lang.Object aDataPack)
    出力データ1行分の作成を行います。

    抽象メソッドです。

    出力ファイル1行には、1個のデータパックのデータ内容を記述します。

    Writes the content of datapack aDataPack into the area to which aStr points. The space which aStr points to must be large enough to store the content of the datapack.

    Since this is an abstract method, implementation of this function is compulsory in derived classes.

    パラメータ:
    aStr - a String value
    aDataPack - an Object value

    init

    public boolean init(java.lang.String aFileName,
                        int aLineLength)
                 throws OhError
    オブジェクト名(ファイル名)、出力データ文字列の最大長さ(_lineLength)を初期化し、 オブジェクト番号を 0 に設定します。

    _lineLength が 0 より大きい場合、二重設定と判断して false を返します。 _lineLength が 0 以下ならば、_lineLength を aLineLength に設定して true を返します。

    Initialization.

    オーバーライド:
    クラス OhOutputPort 内の init
    パラメータ:
    aFileName - a String value
    aLineLength - an int value
    戻り値:
    a boolean value
    例外:
    OhError

    init

    public boolean init(java.lang.String aFileName)
                 throws OhError
    オブジェクト名(ファイル名)を初期化し、 出力データ文字列の最大長さ(_lineLength)を 128 に、オブジェクト番号を 0 に設定します。

    _lineLength が 0 より大きい場合、二重設定と判断して false を返します。

    Initialization.

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

    getLineLength

    public int getLineLength()
    出力データ文字列の最大長さ _lineLength を返します。

    この長さは、このオブジェクトのコンストラクタで指定したものです。

    Returns "_lineLength".

    戻り値:
    an int value

    getLastDataTime

    public OhTimePoint getLastDataTime()
    最終出力データのデータ記録時刻 _lastDataTime を返します。

    Returns "_lastDataTime".

    戻り値:
    an OhTimePoint value

    setCommentString

    public void setCommentString(java.lang.String aCmt)
    ファイルに書き出すコメント文字列 _commentString を aCmt に設定します。

    Copys the string "aCmt" to the field "_commentString". The string copied to "_commentString" will be printed out into the output file, while the method "writeHeader()" is executed. See the source code of "writeHeader()".

    パラメータ:
    aCmt - a String value

    writeHeader

    public boolean writeHeader()
                        throws java.io.IOException
    出力データ情報を書き込みます。

    出力ファイルのヘッダとして、 収録データパックを送信してきた送信端子に関する情報を記入します。

    また、データ補間型配列の値を表示します。

    【例】

       # tplkin.oa 
       # --------------------------------------------------------------------
       #   OhSendDouble sp 0 
       #       _owner > PowerLawKinematicWave stream 0
       #       _owner >> OhScfTotalSystem totalSystem 0
       # --------------------------------------------------------------------
       # DataConnectionType = 0:BROKENLINE 1:STEP 2:PULSE 3:NOINTP  
       #& dctVec 1  0
     
    ヘッダ部分には行頭に # を書き込み、コメントアウトするので、 この出力ファイルを再び入力ファイルとして用いることができます。

    出力ファイルがオープンできないと例外を送出します。

    ヘッダ書式を変更する場合は、派生クラスで再定義して下さい。

     [RETURN]
      ・true --> 正常に記入できた場合。
      ・false -> 出力ファイルがオープンできなかった場合。
     

    Writes a header part to output file. The header contains

    If the output file cannot be opened, this method returns "false".

    戻り値:
    a boolean value
    例外:
    java.io.IOException - if an error occurs

    outputData

    public void outputData()
                    throws java.io.IOException
    出力データを書き込みます。

    まず、出力ファイル _objectName を追加書きモードでオープンし、 オープンできない場合は return します。

    次に、受信データパック配列 _dataPackArray の先頭に格納されているデータパックから順番に OhOutputFile.makeStringData(String, Object) を用いてデータ文字列を作成し、出力ファイルに記入します。

    ※注意※

    受信データパックはこのメソッドの中で取得されます。 モデル OhOutputFile は受信端子の派生モデルであって、 データパックをストックする機能はありません。

    Writing of output data.

    定義:
    クラス OhOutputPort 内の outputData
    例外:
    java.io.IOException - if an error occurs

    getNecessaryTimeFrom

    public OhTimePoint getNecessaryTimeFrom()
    データ必要時刻を返します。

    受信源の送信端子に getNecessaryTimeFrom() 以降 getNecessaryTimeTo 以前のデータパックを消去しないように指示するために定義しました。

     [RETURN]
      ・OhTimePoint データ必要時刻
     

    Returns necessary data time.

    オーバーライド:
    クラス OhReceivePort 内の getNecessaryTimeFrom
    戻り値:
    an OhTimePoint value

    getNecessaryTimeTo

    public OhTimePoint getNecessaryTimeTo()
    データ必要時刻を返します。

    受信源の送信端子に getNecessaryTimeFrom() 以降 getNecessaryTimeTo 以前のデータパックを消去しないように指示するために定義しました。

     [RETURN]
      ・OhTimePoint データ必要時刻
     

    Returns necessary data time.

    オーバーライド:
    クラス OhReceivePort 内の getNecessaryTimeTo
    戻り値:
    an OhTimePoint value

    cPrint

    public void cPrint(java.io.PrintWriter aPw,
                       java.lang.String aHead)
    オブジェクト情報(所有者の情報を含まない)を出力します。

    出力ファイル名とこの端子の受信元送信端子の情報を ストリーム aPw(引数)に出力します。

      [in] aPw  : オブジェクト情報を出力するストリーム
      [in] aHead: コメント文字列
     

    Outputs an object information.

    オーバーライド:
    クラス OhPort 内の cPrint
    パラメータ:
    aPw - a PrintWriter value
    aHead - a String value

    oPrint

    public void oPrint(java.io.PrintWriter aPw,
                       java.lang.String aHead)
    オブジェクト情報(所有者の情報を含む)を出力します。

    出力ファイル名とこの端子の受信元送信端子の情報を ストリーム aPw(引数)に出力します。

      [in] aPw  : オブジェクト情報を出力するストリーム
      [in] aHead: コメント文字列
     

    Outputs an object information. The information includes the "_owner"'s information.

    オーバーライド:
    クラス OhObject 内の oPrint
    パラメータ:
    aPw - a PrintWriter value
    aHead - a String value