jp.go.aist.dmrc.platform.beans.util.calculator
クラス PFMathCalculator

java.lang.Object
  上位を拡張 jp.go.aist.dmrc.platform.beans.util.calculator.PFMathCalculator
すべての実装されたインタフェース:
java.io.Serializable, PFComponent, PFXMLSerializable, PFDataSetEventSource, PFEventSource, PFProcessTerminateEventSource

public class PFMathCalculator
extends java.lang.Object
implements PFComponent, PFProcessTerminateEventSource, PFDataSetEventSource, PFXMLSerializable

関数電卓コンポーネント
 このコンポーネントは、文字列として与えられた数式およびそれらを用いた比較演算や 論理演算に対する、実数値の代入計算を行います。 代入値には、数値、日付、文字列を設定することができ、日付型(Dateクラス)のデータは 1970年1月1日午前零時(GMT)を基点とするミリ秒の数値に置き換えられます。 四則演算の他、剰余、べき乗、開平、三角関数、対数、ラジアン-度変換の 各種演算を扱うことができますが、文字列の演算は結合(+)と比較に限定されます。 数式の長さや含まれる変数の数に制限はありません。 数式中に日付や文字列を定数として記述する場合には、その内容を「'」(クォーテーション) あるいは「"」(ダブルクォーテーション)として囲みます。その際、日付は「年/月/日 時:分:秒」 の形式(時、分、秒は省略可)で記述するものとします。

演算子および関数名とその機能概要

演算子および関数名機能概要
x+y加算(xとyの和)
x-y減算(xとyの差)
x*y乗算(xとyの積)
x/y除算(xのyによる商)
x%y剰余算(xのyによる剰余)
x^yべき乗算(xのy乗)
abs(x)絶対値(xの絶対値)
acos(x)逆余弦(xの逆余弦、返値の単位はラジアン)
asin(x)逆正弦(xの逆正弦、返値の単位はラジアン)
atan(x)逆正接(xの逆正接、返値の単位はラジアン)
atan2(x,y)逆正接(y/xの逆正接、返値の単位はラジアン)
ceil(x)x以上の最小の整数値
cos(x)余弦(xの余弦、xの単位はラジアン)
dateFormat(x,y)書式xで日付yを表現した文字列
exp(x)自然対数の底eのべき乗(eのx乗)
floor(x)x以下の最大の整数値
integrate(f,x,u,n)数値積分(f(x)のuからxまでの積分値。nは区間分割数)
log(x)自然対数(xの自然対数)
max(x,y)最大値(xとyのうち、大きい値)
min(x,y)最小値(xとyのうち、小さい値)
random()0以上1未満の乱数
rint(x)xに最も近い整数値
round(x)xに最も近い整数値
sin(x)正弦(xの正弦、xの単位はラジアン)
sqrt(x)開平(xの平方根)
tan(x)正接(xの正接、xの単位はラジアン)
toDegrees(x)ラジアンから度への変換
toRadians(x)度からラジアンへの変換

比較・論理演算

演算子機能概要
a==b等価演算(aとbの値は等しい)
a!=b等価演算(aとbの値は等しくない)
a>=b比較演算(aとbの値は等しいか、あるいはaの値はbよりも大きい)
a>b比較演算(aの値はbよりも大きい)
a<=b比較演算(aとbの値は等しいか、あるいはaの値はbよりも小さい)
a比較演算(aの値はbよりも小さい)
A&&B論理積(AかつB)
A||B論理和(AまたはB)
!A否定(Aではない)

定数の記述方法

定数意味
Math.PI円周率π(3.1415926...)
Math.E自然対数の底e

コンポーネントから発生するイベント

関連項目:
直列化された形式

フィールドの概要
static int FORMULA_SET
          数式設定時のイベント番号
static int RESULT_ABORTED
          計算打ち切り時のイベント番号
static int RESULT_COMPLETED
          計算完了時のイベント番号
static int RESULT_FALSE
          計算完了時のイベント番号(結果はfalse)
static int RESULT_STRING
          計算完了時のイベント番号(結果は文字列)
static int RESULT_TRUE
          計算完了時のイベント番号(結果はtrue)
 
コンストラクタの概要
PFMathCalculator()
          コンポーネントを生成する。
 
メソッドの概要
 void addPFDataSetListener(PFDataSetListener lis)
          引数で与えられたイベントリスナを登録し、 データ設定イベント発生時に処理を行う対象とする。
 void addPFProcessTerminateListener(PFProcessTerminateListener lis)
          引数で与えられたイベントリスナを登録し、 処理完了イベント発生時に処理を行う対象とする。
 java.math.BigDecimal evaluate()
          数式の値を計算する。
 java.math.BigDecimal evaluate(PFLabeledObjectList assignment)
          代入値をラベル付きリストで設定して、 数式の値を計算する。
 java.math.BigDecimal evaluate(PFObjectTable assignment)
          代入値テーブルを設定して、 数式の値を計算する。
 java.math.BigDecimal evaluateArithmetic()
          数式の値を計算する。
 java.math.BigDecimal evaluateArithmetic(PFLabeledObjectList assignment)
          代入値をラベル付きリストで設定して、 数式の値を計算する。
 java.math.BigDecimal evaluateArithmetic(PFObjectTable assignment)
          代入値テーブルを設定して、 数式の値を計算する。
 java.lang.Boolean evaluateCondition()
          条件式の真偽値を計算する。
 java.lang.Boolean evaluateCondition(PFLabeledObjectList assignment)
          代入値をラベル付きリストで設定して、条件式の真偽値を計算する。
 java.lang.Boolean evaluateCondition(PFObjectTable assignment)
          代入値テーブルを設定して、条件式の真偽値を計算する。
 java.lang.Object evaluateFormula()
          数式あるいは条件式の値を計算する。
 java.lang.Object evaluateFormula(PFLabeledObjectList assignment)
          代入値をラベル付きリストで設定して、数式あるいは条件式の値を計算する。
 java.lang.Object evaluateFormula(PFObjectTable assignment)
          代入値テーブルを設定して、数式あるいは条件式の値を計算する。
 PFObjectTable getAssignment()
          代入値テーブルを取得する。
 int getComponentID()
          コンポーネントIDを取得する。
 java.lang.String getComponentKey()
          コンポーネントキーを取得する。
 PFMultiLocaleString getComponentKeys()
          全ロケール分のコンポーネントキーを返す。
 java.lang.String getComponentName()
          コンポーネント名称を取得する。
 java.lang.String getComponentPublicName()
          コンポーネント公開名を取得する.
 java.lang.String getComponentString()
          コンポーネントの文字列表現を取得する。
 java.math.BigDecimal getE()
          自然対数の底eを取得する
 java.lang.Object getEvalulationResult()
          演算実行結果を取得する
protected  char getExprCharAt(java.lang.StringBuffer expr, int start, int end, int index)
          指定位置の文字を取得する。
 java.lang.String getFormula()
          設定された数式あるいは条件式を取得する。
 java.util.Iterator getPFDataSetListenerList()
          データ設定イベントリスナ配列を取得する。
 java.util.Iterator getPFProcessTerminateListenerList()
          処理完了イベントリスナ配列を取得する。
 java.math.BigDecimal getPI()
          円周率πを取得する。
 java.math.BigDecimal getResult()
          数式の値の計算結果を取得する
 PFObjectList getVariables()
          変数リストを取得する。
 boolean isAllowPullTransfer()
          他PFからのPull型コンポーネント転送要求に対する可否属性を取得する.
 boolean isAllowPushTransfer()
          他PFへのPush型コンポーネント転送要求に対する可否属性を取得する.
 boolean isAllowRemoteInvocation()
          他PFからのコンポーネント連携要求に対する可否属性を取得する.
 void localeUpdated()
          ロケール変更に対応する。
 void readXML(PFXMLLoader in)
          コンポーネントのXML入力.
 void removePFDataSetListener(PFDataSetListener lis)
          引数で与えられたイベントリスナを削除し、 データ設定イベント発生時に処理を行う対象から外す。
 void removePFProcessTerminateListener(PFProcessTerminateListener lis)
          引数で与えられたイベントリスナを削除し、 処理完了イベント発生時に処理を行う対象から外す。
 void setAllowPullTransfer(boolean flag)
          他PFからのPull型コンポーネント転送要求に対する可否属性を設定する.
 void setAllowPushTransfer(boolean flag)
          他PFへのPush型コンポーネント転送要求に対する可否属性を設定する.
 void setAllowRemoteInvocation(boolean flag)
          他PFからのコンポーネント連携要求に対する可否属性を設定する.
 void setAssignment(PFLabeledObjectList assignment)
          代入値を、ラベル付きリストで設定する。
 void setAssignment(PFObjectTable assignment)
          代入値テーブルを設定する。
 void setComponentID(int id)
          コンポーネントIDを設定する。
 void setComponentKey(java.lang.String key)
          コンポーネントキーを設定する。
 void setComponentKeys(PFMultiLocaleString keys)
          全ロケール分のコンポーネントキーを設定する。
 void setComponentPublicName(java.lang.String publicName)
          コンポーネント公開名を設定する.
 void setFormula(java.lang.String formula)
          数式および条件式の設定。
 void setFormulaQuiet(java.lang.String formula)
          数式および条件式の設定。
 void writeXML(PFXMLGenerator out)
          コンポーネントのXML出力.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FORMULA_SET

public static final int FORMULA_SET
数式設定時のイベント番号

関連項目:
定数フィールド値

RESULT_COMPLETED

public static final int RESULT_COMPLETED
計算完了時のイベント番号

関連項目:
定数フィールド値

RESULT_TRUE

public static final int RESULT_TRUE
計算完了時のイベント番号(結果はtrue)

関連項目:
定数フィールド値

RESULT_FALSE

public static final int RESULT_FALSE
計算完了時のイベント番号(結果はfalse)

関連項目:
定数フィールド値

RESULT_STRING

public static final int RESULT_STRING
計算完了時のイベント番号(結果は文字列)

関連項目:
定数フィールド値

RESULT_ABORTED

public static final int RESULT_ABORTED
計算打ち切り時のイベント番号

関連項目:
定数フィールド値
コンストラクタの詳細

PFMathCalculator

public PFMathCalculator()
コンポーネントを生成する。

メソッドの詳細

getComponentName

public java.lang.String getComponentName()
コンポーネント名称を取得する。

定義:
インタフェース PFComponent 内の getComponentName
戻り値:
コンポーネント名

getComponentKey

public java.lang.String getComponentKey()
コンポーネントキーを取得する。

定義:
インタフェース PFComponent 内の getComponentKey
戻り値:
コンポーネントキー

setComponentKey

public void setComponentKey(java.lang.String key)
コンポーネントキーを設定する。

定義:
インタフェース PFComponent 内の setComponentKey
パラメータ:
key - コンポーネントキー

getComponentKeys

public PFMultiLocaleString getComponentKeys()
全ロケール分のコンポーネントキーを返す。

戻り値:
全ロケール分のコンポーネントキー

setComponentKeys

public void setComponentKeys(PFMultiLocaleString keys)
全ロケール分のコンポーネントキーを設定する。

パラメータ:
keys - 全ロケール分のコンポーネントキー

getComponentID

public int getComponentID()
コンポーネントIDを取得する。

定義:
インタフェース PFComponent 内の getComponentID
戻り値:
コンポーネントID

setComponentID

public void setComponentID(int id)
コンポーネントIDを設定する。
コンポーネントIDはプラットフォームPFComponentBusから設定される。 各コンポーネント内では操作しないこと。

定義:
インタフェース PFComponent 内の setComponentID
パラメータ:
id - 設定するコンポーネントID

getComponentString

public java.lang.String getComponentString()
コンポーネントの文字列表現を取得する。
形式:"Component Name" [ ID : "ID" ]

定義:
インタフェース PFComponent 内の getComponentString
戻り値:
文字列表現

getComponentPublicName

public java.lang.String getComponentPublicName()
コンポーネント公開名を取得する.

定義:
インタフェース PFComponent 内の getComponentPublicName
戻り値:
コンポーネント公開名

setComponentPublicName

public void setComponentPublicName(java.lang.String publicName)
                            throws PFComponentException
コンポーネント公開名を設定する.
空文字のみの公開名は、nullに置き換える。数字のみの公開名は許可しない。 また、既存コンポーネントとの重複も認めない.

定義:
インタフェース PFComponent 内の setComponentPublicName
パラメータ:
publicName - 設定するコンポーネント公開名
例外:
PFComponentException - 規約に反する名前が設定されようとした場合

isAllowRemoteInvocation

public boolean isAllowRemoteInvocation()
他PFからのコンポーネント連携要求に対する可否属性を取得する.

定義:
インタフェース PFComponent 内の isAllowRemoteInvocation
戻り値:
コンポーネント連携要求可否属性

setAllowRemoteInvocation

public void setAllowRemoteInvocation(boolean flag)
他PFからのコンポーネント連携要求に対する可否属性を設定する.

定義:
インタフェース PFComponent 内の setAllowRemoteInvocation
パラメータ:
flag - コンポーネント連携要求に対する可否

isAllowPullTransfer

public boolean isAllowPullTransfer()
他PFからのPull型コンポーネント転送要求に対する可否属性を取得する.

定義:
インタフェース PFComponent 内の isAllowPullTransfer
戻り値:
Pull型コンポーネント転送要求可否属性

setAllowPullTransfer

public void setAllowPullTransfer(boolean flag)
他PFからのPull型コンポーネント転送要求に対する可否属性を設定する.

定義:
インタフェース PFComponent 内の setAllowPullTransfer
パラメータ:
flag - Pull型コンポーネント転送要求に対する可否

isAllowPushTransfer

public boolean isAllowPushTransfer()
他PFへのPush型コンポーネント転送要求に対する可否属性を取得する.

定義:
インタフェース PFComponent 内の isAllowPushTransfer
戻り値:
Push型コンポーネント転送要求可否属性

setAllowPushTransfer

public void setAllowPushTransfer(boolean flag)
他PFへのPush型コンポーネント転送要求に対する可否属性を設定する.

定義:
インタフェース PFComponent 内の setAllowPushTransfer
パラメータ:
flag - Push型コンポーネント転送要求に対する可否

getPFProcessTerminateListenerList

public java.util.Iterator getPFProcessTerminateListenerList()
処理完了イベントリスナ配列を取得する。

定義:
インタフェース PFProcessTerminateEventSource 内の getPFProcessTerminateListenerList
戻り値:
イベントリスナイテレータ

addPFProcessTerminateListener

public void addPFProcessTerminateListener(PFProcessTerminateListener lis)
引数で与えられたイベントリスナを登録し、 処理完了イベント発生時に処理を行う対象とする。

定義:
インタフェース PFProcessTerminateEventSource 内の addPFProcessTerminateListener
パラメータ:
lis - 追加対象イベントリスナ

removePFProcessTerminateListener

public void removePFProcessTerminateListener(PFProcessTerminateListener lis)
引数で与えられたイベントリスナを削除し、 処理完了イベント発生時に処理を行う対象から外す。

定義:
インタフェース PFProcessTerminateEventSource 内の removePFProcessTerminateListener
パラメータ:
lis - 削除対象イベントリスナ

getPFDataSetListenerList

public java.util.Iterator getPFDataSetListenerList()
データ設定イベントリスナ配列を取得する。

定義:
インタフェース PFDataSetEventSource 内の getPFDataSetListenerList
戻り値:
イベントリスナイテレータ

addPFDataSetListener

public void addPFDataSetListener(PFDataSetListener lis)
引数で与えられたイベントリスナを登録し、 データ設定イベント発生時に処理を行う対象とする。

定義:
インタフェース PFDataSetEventSource 内の addPFDataSetListener
パラメータ:
lis - 追加対象イベントリスナ

removePFDataSetListener

public void removePFDataSetListener(PFDataSetListener lis)
引数で与えられたイベントリスナを削除し、 データ設定イベント発生時に処理を行う対象から外す。

定義:
インタフェース PFDataSetEventSource 内の removePFDataSetListener
パラメータ:
lis - 削除対象イベントリスナ

localeUpdated

public void localeUpdated()
ロケール変更に対応する。

定義:
インタフェース PFComponent 内の localeUpdated

getResult

public java.math.BigDecimal getResult()
数式の値の計算結果を取得する

戻り値:
計算結果

getE

public java.math.BigDecimal getE()
自然対数の底eを取得する

戻り値:
自然対数の底e

getPI

public java.math.BigDecimal getPI()
円周率πを取得する。

戻り値:
円周率π

getVariables

public PFObjectList getVariables()
変数リストを取得する。 リストは、変数名の辞書式順序でソートされる。

戻り値:
変数リスト

getFormula

public java.lang.String getFormula()
設定された数式あるいは条件式を取得する。

戻り値:
数式あるいは条件式を表現する文字列

setFormula

public void setFormula(java.lang.String formula)
                throws PFSystemException
数式および条件式の設定。データ設定イベントを発生する。

パラメータ:
formula - 数式および条件式を表現する文字列
例外:
PFSystemException

setFormulaQuiet

public void setFormulaQuiet(java.lang.String formula)
数式および条件式の設定。データ設定イベントを発生しない。

パラメータ:
formula - 数式および条件式を表現する文字列

getAssignment

public PFObjectTable getAssignment()
代入値テーブルを取得する。 代入値テーブルは2列のテーブルであり、第0列には変数名、第1列には 代入する数値が記入される。第0列の列型は文字列、第1列の列型は、文字列 もしくは数字である。

[例]

変数名数値
X5
flow13.2
::

戻り値:
代入値テーブル

setAssignment

public void setAssignment(PFObjectTable assignment)
代入値テーブルを設定する。 代入値テーブルは2列のテーブルであり、第0列には変数名、第1列には 代入する数値が記入される。第0列の列型は文字列、第1列の列型は、文字列、 数字もしくは日付である。 日付型(Dateクラス)のデータは、Date.getTime()によって得られる数値 (1970/01/01 00:00:00を基点としたミリ秒)に置き換えられる。

[例]

変数名数値
X5
flow13.2
::

パラメータ:
assignment - 代入値テーブル

evaluate

public java.math.BigDecimal evaluate(PFObjectTable assignment)
                              throws PFException
代入値テーブルを設定して、 数式の値を計算する。 代入値テーブルは2列のテーブルであり、第0列には変数名、第1列には 代入する数値が記入される。第0列の列型は文字列、第1列の列型は、文字列、 数字もしくは日付である。 日付型(Dateクラス)のデータは、Date.getTime()によって得られる数値 (1970/01/01 00:00:00を基点としたミリ秒)に置き換えられる。

[例]

変数名数値
X5
flow13.2
::

パラメータ:
assignment - 代入値テーブル
戻り値:
計算結果
例外:
PFException

setAssignment

public void setAssignment(PFLabeledObjectList assignment)
代入値を、ラベル付きリストで設定する。 ラベル付きリストの各要素のラベルが変数名、データは代入値となる。 日付型(Dateクラス)のデータは、Date.getTime()によって得られる数値 (1970/01/01 00:00:00を基点としたミリ秒)に置き換えられる。

パラメータ:
assignment - 代入値を表すラベル付きリスト

evaluate

public java.math.BigDecimal evaluate(PFLabeledObjectList assignment)
                              throws PFException
代入値をラベル付きリストで設定して、 数式の値を計算する。 ラベル付きリストの各要素のラベルが変数名、データは代入値となる。 日付型(Dateクラス)のデータは、Date.getTime()によって得られる数値 (1970/01/01 00:00:00を基点としたミリ秒)に置き換えられる。

パラメータ:
assignment - 代入値を表すラベル付きリスト
戻り値:
計算結果
例外:
PFException

evaluate

public java.math.BigDecimal evaluate()
                              throws PFException
数式の値を計算する。

戻り値:
計算結果
例外:
PFException

readXML

public void readXML(PFXMLLoader in)
コンポーネントのXML入力.

定義:
インタフェース PFXMLSerializable 内の readXML
パラメータ:
in - XML入力ユーティリティ

writeXML

public void writeXML(PFXMLGenerator out)
              throws java.io.IOException
コンポーネントのXML出力.

定義:
インタフェース PFXMLSerializable 内の writeXML
パラメータ:
out - XML出力ユーティリティ
例外:
java.io.IOException

getExprCharAt

protected char getExprCharAt(java.lang.StringBuffer expr,
                             int start,
                             int end,
                             int index)
                      throws PFComponentException
指定位置の文字を取得する。

パラメータ:
expr - 数式全体を表現する文字列
start - 対象とする数式の開始インデックス(含まれる)
end - 対象とする数式の終了インデックス(含まれない)
戻り値:
指定位置の文字
例外:
PFComponentException

evaluateArithmetic

public java.math.BigDecimal evaluateArithmetic(PFObjectTable assignment)
                                        throws PFException
代入値テーブルを設定して、 数式の値を計算する。 代入値テーブルは2列のテーブルであり、第0列には変数名、第1列には 代入する数値が記入される。第0列の列型は文字列、第1列の列型は、文字列 もしくは数字である。

[例]

変数名数値
X5
flow13.2
::

パラメータ:
assignment - 代入値テーブル
戻り値:
計算結果
例外:
PFException

evaluateArithmetic

public java.math.BigDecimal evaluateArithmetic(PFLabeledObjectList assignment)
                                        throws PFException
代入値をラベル付きリストで設定して、 数式の値を計算する。 ラベル付きリストの各要素のラベルが変数名、データは代入値となる。

パラメータ:
assignment - 代入値を表すラベル付きリスト
戻り値:
計算結果
例外:
PFException

evaluateArithmetic

public java.math.BigDecimal evaluateArithmetic()
                                        throws PFException
数式の値を計算する。

戻り値:
計算結果
例外:
PFException

evaluateCondition

public java.lang.Boolean evaluateCondition(PFObjectTable assignment)
                                    throws PFException
代入値テーブルを設定して、条件式の真偽値を計算する。 代入値テーブルは2列のテーブルであり、第0列には変数名、第1列には 代入する数値が記入される。第0列の列型は文字列、第1列の列型は、文字列 もしくは数字である。

[例]

変数名数値
X5
flow13.2
::

パラメータ:
assignment - 代入値テーブル
戻り値:
計算結果
例外:
PFException

evaluateCondition

public java.lang.Boolean evaluateCondition(PFLabeledObjectList assignment)
                                    throws PFException
代入値をラベル付きリストで設定して、条件式の真偽値を計算する。 ラベル付きリストの各要素のラベルが変数名、データは代入値となる。

パラメータ:
assignment - 代入値を表すラベル付きリスト
戻り値:
計算結果
例外:
PFException

evaluateCondition

public java.lang.Boolean evaluateCondition()
                                    throws PFException
条件式の真偽値を計算する。

戻り値:
計算結果
例外:
PFException

evaluateFormula

public java.lang.Object evaluateFormula(PFObjectTable assignment)
                                 throws PFException
代入値テーブルを設定して、数式あるいは条件式の値を計算する。 代入値テーブルは2列のテーブルであり、第0列には変数名、第1列には 代入する数値が記入される。第0列の列型は文字列、第1列の列型は、文字列 もしくは数字である。

[例]

変数名数値
X5
flow13.2
::

パラメータ:
assignment - 代入値テーブル
戻り値:
計算結果
例外:
PFException

evaluateFormula

public java.lang.Object evaluateFormula(PFLabeledObjectList assignment)
                                 throws PFException
代入値をラベル付きリストで設定して、数式あるいは条件式の値を計算する。 ラベル付きリストの各要素のラベルが変数名、データは代入値となる。

パラメータ:
assignment - 代入値を表すラベル付きリスト
戻り値:
計算結果
例外:
PFException

evaluateFormula

public java.lang.Object evaluateFormula()
                                 throws PFException
数式あるいは条件式の値を計算する。

戻り値:
計算結果
例外:
PFException

getEvalulationResult

public java.lang.Object getEvalulationResult()
演算実行結果を取得する

戻り値:
演算実行結果