|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object jp.go.aist.dmrc.platform.beans.util.calculator.PFMathCalculator
public class PFMathCalculator
関数電卓コンポーネント
このコンポーネントは、文字列として与えられた数式およびそれらを用いた比較演算や
論理演算に対する、実数値の代入計算を行います。
代入値には、数値、日付、文字列を設定することができ、日付型(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 |
コンポーネントから発生するイベント
トリガ | 設定データ | イベント番号 |
---|---|---|
setFormula()の呼び出し | 設定された数式String | 0 |
トリガ | 結果データ | イベント番号 |
---|---|---|
数式の値の計算実行 (evaluate(), evaluateArithmetic(), evaluateFormula()の実行) |
計算結果(数値)Number | 0 |
条件式の真偽値計算実行 (evaluateCondition(), evaluateFormula()の実行) |
計算結果(true)Boolean | 1 |
条件式の真偽値計算実行 (evaluateCondition(), evaluateFormula()の実行) |
計算結果(false)Boolean | 2 |
文字列演算実行 (evaluateFormula()の実行) |
計算結果(false)String | 3 |
計算実行 (evaluate(), evaluateArithmetic(), evaluateCondition(), evaluateFormula()の実行) |
null | -1 |
フィールドの概要 | |
---|---|
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 |
フィールドの詳細 |
---|
public static final int FORMULA_SET
public static final int RESULT_COMPLETED
public static final int RESULT_TRUE
public static final int RESULT_FALSE
public static final int RESULT_STRING
public static final int RESULT_ABORTED
コンストラクタの詳細 |
---|
public PFMathCalculator()
メソッドの詳細 |
---|
public java.lang.String getComponentName()
PFComponent
内の getComponentName
public java.lang.String getComponentKey()
PFComponent
内の getComponentKey
public void setComponentKey(java.lang.String key)
PFComponent
内の setComponentKey
key
- コンポーネントキーpublic PFMultiLocaleString getComponentKeys()
public void setComponentKeys(PFMultiLocaleString keys)
keys
- 全ロケール分のコンポーネントキーpublic int getComponentID()
PFComponent
内の getComponentID
public void setComponentID(int id)
PFComponentBus
から設定される。
各コンポーネント内では操作しないこと。
PFComponent
内の setComponentID
id
- 設定するコンポーネントIDpublic java.lang.String getComponentString()
PFComponent
内の getComponentString
public java.lang.String getComponentPublicName()
PFComponent
内の getComponentPublicName
public void setComponentPublicName(java.lang.String publicName) throws PFComponentException
PFComponent
内の setComponentPublicName
publicName
- 設定するコンポーネント公開名
PFComponentException
- 規約に反する名前が設定されようとした場合public boolean isAllowRemoteInvocation()
PFComponent
内の isAllowRemoteInvocation
public void setAllowRemoteInvocation(boolean flag)
PFComponent
内の setAllowRemoteInvocation
flag
- コンポーネント連携要求に対する可否public boolean isAllowPullTransfer()
PFComponent
内の isAllowPullTransfer
public void setAllowPullTransfer(boolean flag)
PFComponent
内の setAllowPullTransfer
flag
- Pull型コンポーネント転送要求に対する可否public boolean isAllowPushTransfer()
PFComponent
内の isAllowPushTransfer
public void setAllowPushTransfer(boolean flag)
PFComponent
内の setAllowPushTransfer
flag
- Push型コンポーネント転送要求に対する可否public java.util.Iterator getPFProcessTerminateListenerList()
PFProcessTerminateEventSource
内の getPFProcessTerminateListenerList
public void addPFProcessTerminateListener(PFProcessTerminateListener lis)
PFProcessTerminateEventSource
内の addPFProcessTerminateListener
lis
- 追加対象イベントリスナpublic void removePFProcessTerminateListener(PFProcessTerminateListener lis)
PFProcessTerminateEventSource
内の removePFProcessTerminateListener
lis
- 削除対象イベントリスナpublic java.util.Iterator getPFDataSetListenerList()
PFDataSetEventSource
内の getPFDataSetListenerList
public void addPFDataSetListener(PFDataSetListener lis)
PFDataSetEventSource
内の addPFDataSetListener
lis
- 追加対象イベントリスナpublic void removePFDataSetListener(PFDataSetListener lis)
PFDataSetEventSource
内の removePFDataSetListener
lis
- 削除対象イベントリスナpublic void localeUpdated()
PFComponent
内の localeUpdated
public java.math.BigDecimal getResult()
public java.math.BigDecimal getE()
public java.math.BigDecimal getPI()
public PFObjectList getVariables()
public java.lang.String getFormula()
public void setFormula(java.lang.String formula) throws PFSystemException
formula
- 数式および条件式を表現する文字列
PFSystemException
public void setFormulaQuiet(java.lang.String formula)
formula
- 数式および条件式を表現する文字列public PFObjectTable getAssignment()
[例]
変数名 | 数値 |
---|---|
X | 5 |
flow1 | 3.2 |
: | : |
public void setAssignment(PFObjectTable assignment)
[例]
変数名 | 数値 |
---|---|
X | 5 |
flow1 | 3.2 |
: | : |
assignment
- 代入値テーブルpublic java.math.BigDecimal evaluate(PFObjectTable assignment) throws PFException
[例]
変数名 | 数値 |
---|---|
X | 5 |
flow1 | 3.2 |
: | : |
assignment
- 代入値テーブル
PFException
public void setAssignment(PFLabeledObjectList assignment)
assignment
- 代入値を表すラベル付きリストpublic java.math.BigDecimal evaluate(PFLabeledObjectList assignment) throws PFException
assignment
- 代入値を表すラベル付きリスト
PFException
public java.math.BigDecimal evaluate() throws PFException
PFException
public void readXML(PFXMLLoader in)
PFXMLSerializable
内の readXML
in
- XML入力ユーティリティpublic void writeXML(PFXMLGenerator out) throws java.io.IOException
PFXMLSerializable
内の writeXML
out
- XML出力ユーティリティ
java.io.IOException
protected char getExprCharAt(java.lang.StringBuffer expr, int start, int end, int index) throws PFComponentException
expr
- 数式全体を表現する文字列start
- 対象とする数式の開始インデックス(含まれる)end
- 対象とする数式の終了インデックス(含まれない)
PFComponentException
public java.math.BigDecimal evaluateArithmetic(PFObjectTable assignment) throws PFException
[例]
変数名 | 数値 |
---|---|
X | 5 |
flow1 | 3.2 |
: | : |
assignment
- 代入値テーブル
PFException
public java.math.BigDecimal evaluateArithmetic(PFLabeledObjectList assignment) throws PFException
assignment
- 代入値を表すラベル付きリスト
PFException
public java.math.BigDecimal evaluateArithmetic() throws PFException
PFException
public java.lang.Boolean evaluateCondition(PFObjectTable assignment) throws PFException
[例]
変数名 | 数値 |
---|---|
X | 5 |
flow1 | 3.2 |
: | : |
assignment
- 代入値テーブル
PFException
public java.lang.Boolean evaluateCondition(PFLabeledObjectList assignment) throws PFException
assignment
- 代入値を表すラベル付きリスト
PFException
public java.lang.Boolean evaluateCondition() throws PFException
PFException
public java.lang.Object evaluateFormula(PFObjectTable assignment) throws PFException
[例]
変数名 | 数値 |
---|---|
X | 5 |
flow1 | 3.2 |
: | : |
assignment
- 代入値テーブル
PFException
public java.lang.Object evaluateFormula(PFLabeledObjectList assignment) throws PFException
assignment
- 代入値を表すラベル付きリスト
PFException
public java.lang.Object evaluateFormula() throws PFException
PFException
public java.lang.Object getEvalulationResult()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |