jp.go.aist.dmrc.platform.beans.util.operator
クラス PFComparisonOperator

java.lang.Object
  拡張jp.go.aist.dmrc.platform.beans.util.operator.PFOperator
      拡張jp.go.aist.dmrc.platform.beans.util.operator.PFBinaryOperator
          拡張jp.go.aist.dmrc.platform.beans.util.operator.PFComparisonOperator
すべての実装インタフェース:
PFBooleanResultOperation, PFComponent, PFEventSource, PFProcessTerminateEventSource, java.io.Serializable
直系の既知のサブクラス:
PFComparisonGEOperator, PFComparisonGTOperator, PFComparisonLEOperator, PFComparisonLTOperator

public abstract class PFComparisonOperator
extends PFBinaryOperator
implements PFBooleanResultOperation

比較演算コンポーネントのスーパークラス。

演算処理手順は以下のとおり。

  1. オペランドがPFNumberResultOperation, PFStringResultOperationの オブジェクトの場合、その演算結果をオペランドとする。
  2. 比較演算を行なう。
  3. 演算結果を返す、または処理完了イベントを発生させる。

演算結果は論理値(true, false)である。
ただし、以下のいずれかの場合は演算不可能とし、演算結果をnullとする。

比較規則は以下のとおり。複数にあてはまる場合は、優先順位の高いものが適用される。

  1. 左右オペランドのいずれかがStringの場合、Stringで比較する。
  2. 左右オペランドがともに数値型の場合
    1. 左右オペランドが同じ型でBigDecimal/BigInteger/Double/Long/Floatの場合、その型で比較する。
    2. 左右オペランドのいずれかがDoubleの場合、Doubleで比較する。
    3. 左右オペランドのいずれかがFloatの場合、Floatで比較する。
    4. 左右オペランドのいずれかがBigDecimalの場合、BigDecimalで比較する。
    5. 左右オペランドのいずれかがBigIntegerの場合、BigIntegerで比較する。
    6. 左右オペランドのいずれかがLongの場合、Longで比較する。
    7. 左右オペランドがInteger/Short/Byteの場合、Integerで比較する。
  3. 上記のいずれにもあてはまらない場合、左右オペランドの型で比較する。

Double, Float型で比較するとき、常に (-∞) < n (有限値) < (+∞) が成り立つ。

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

コンストラクタの概要
PFComparisonOperator()
          コンストラクタ。
 
メソッドの概要
 void evaluate()
          比較を行なう。
 void evaluateNumber(java.lang.String string1, java.lang.String string2)
          数値(BigDecimal)での比較を行なう。
 void evaluateString(java.lang.String string1, java.lang.String string2)
          文字列の比較を行なう。
protected  java.lang.Object[] getConvertedOperand()
          型変換後の左オペランドと右オペランドを格納した配列を返す。
 void setLeftNumberOperand(java.lang.String string)
          指定された文字列を数値(BigDecimal)に変換して、左オペランドに設定する。
 void setLeftStringOperand(java.lang.String string)
          指定された文字列を左オペランドに設定する。
 void setNumberOperand(java.lang.String string1, java.lang.String string2)
          指定された文字列を数値(BigDecimal)に変換して、両オペランドに設定する。
 void setRightNumberOperand(java.lang.String string)
          指定された文字列を数値(BigDecimal)に変換して、左オペランドに設定する。
 void setRightStringOperand(java.lang.String string)
          指定された文字列を右オペランドに設定する。
 void setStringOperand(java.lang.String string1, java.lang.String string2)
          指定された文字列を両オペランドに設定する。
 
クラス jp.go.aist.dmrc.platform.beans.util.operator.PFBinaryOperator から継承したメソッド
evaluate, getLeftOperand, getOperand, getRightOperand, setLeftOperand, setOperand, setRightOperand
 
クラス jp.go.aist.dmrc.platform.beans.util.operator.PFOperator から継承したメソッド
addPFProcessTerminateListener, firePFProcessTerminated, getComponentID, getComponentKey, getComponentKeys, getComponentString, getPFProcessTerminateListenerList, localeUpdated, removePFProcessTerminateListener, setComponentID, setComponentKey, setComponentKeys
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース jp.go.aist.dmrc.platform.beans.util.operator.PFBooleanResultOperation から継承したメソッド
getBooleanResult
 
インタフェース jp.go.aist.dmrc.platform.base.PFComponent から継承したメソッド
getComponentName
 

コンストラクタの詳細

PFComparisonOperator

public PFComparisonOperator()
コンストラクタ。

メソッドの詳細

setLeftStringOperand

public void setLeftStringOperand(java.lang.String string)
指定された文字列を左オペランドに設定する。

パラメータ:
string - 文字列
関連項目:
PFBinaryOperator.setLeftOperand(Object)

setRightStringOperand

public void setRightStringOperand(java.lang.String string)
指定された文字列を右オペランドに設定する。

パラメータ:
string - 文字列
関連項目:
PFBinaryOperator.setRightOperand(Object)

setStringOperand

public void setStringOperand(java.lang.String string1,
                             java.lang.String string2)
指定された文字列を両オペランドに設定する。

パラメータ:
string1 - 文字列(左オペランド)
string2 - 文字列(右オペランド)
関連項目:
setLeftStringOperand(String), setRightStringOperand(String)

setLeftNumberOperand

public void setLeftNumberOperand(java.lang.String string)
指定された文字列を数値(BigDecimal)に変換して、左オペランドに設定する。

パラメータ:
string - 数値
関連項目:
PFBinaryOperator.setLeftOperand(Object)

setRightNumberOperand

public void setRightNumberOperand(java.lang.String string)
指定された文字列を数値(BigDecimal)に変換して、左オペランドに設定する。

パラメータ:
string - 数値
関連項目:
PFBinaryOperator.setRightOperand(Object)

setNumberOperand

public void setNumberOperand(java.lang.String string1,
                             java.lang.String string2)
指定された文字列を数値(BigDecimal)に変換して、両オペランドに設定する。

パラメータ:
string1 - 数値(左オペランド)
string2 - 数値(右オペランド)
関連項目:
setLeftNumberOperand(String), setRightNumberOperand(String)

evaluate

public void evaluate()
              throws PFMethodException,
                     PFRuntimeException
比較を行なう。
処理完了イベントが発生します。

定義:
クラス PFOperator 内の evaluate
例外:
PFMethodException - イベント伝播先のメソッド起動時のエラー
PFRuntimeException - 予期しない実行時エラー

evaluateString

public void evaluateString(java.lang.String string1,
                           java.lang.String string2)
                    throws PFMethodException,
                           PFRuntimeException
文字列の比較を行なう。

パラメータ:
string1 - 文字列(左オペランド)
string2 - 文字列(右オペランド)
例外:
PFMethodException - イベント伝播先のメソッド起動時のエラー
PFRuntimeException - 予期しない実行時エラー
関連項目:
setStringOperand(String, String), evaluate()

evaluateNumber

public void evaluateNumber(java.lang.String string1,
                           java.lang.String string2)
                    throws PFMethodException,
                           PFRuntimeException
数値(BigDecimal)での比較を行なう。
文字列から数値に変換できない場合は、比較不可能となる。

パラメータ:
string1 - 数値(左オペランド)
string2 - 数値(右オペランド)
例外:
PFMethodException - イベント伝播先のメソッド起動時のエラー
PFRuntimeException - 予期しない実行時エラー
関連項目:
setNumberOperand(String, String), evaluate()

getConvertedOperand

protected java.lang.Object[] getConvertedOperand()
型変換後の左オペランドと右オペランドを格納した配列を返す。
演算実行時に呼び出される。

戻り値:
左オペランド[0]と右オペランド[1]