com.sanpudo.formula
クラス FormulaEvaluator

java.lang.Object
  上位を拡張 com.sanpudo.formula.FormulaEvaluator

public class FormulaEvaluator
extends Object

指定された数式を評価するクラス。

作成者:
Sanpudo.

コンストラクタの概要
FormulaEvaluator()
          コンストラクタ。
FormulaEvaluator(int scale)
          BigDecimalの小数点以下桁数を指定したコンストラクタ。
FormulaEvaluator(RoundPoint rondPoint, int scale, RoundingMode rMode)
          BigDecimalの小数点以下桁数と端数処理を指定したコンストラクタ。
 
メソッドの概要
 BigDecimal bdEvaluate(String formula)
          指定された数式を評価したBigDecimalの値を返す。
 void checkUserFunction(String funcName, int numberOfArgs, String formula)
          指定した式をユーザ定義関数として登録可能かチェックする。
 void defineUserConstant(String name, String value)
          ユーザ定義定数を登録する。
 void defineUserConstant(String name, String value, boolean override)
          ユーザ定義定数を登録する。
 void defineUserFunction(FunctionImplementation func)
          ユーザ定義関数を定義したオブジェクトを登録する。
 void defineUserFunction(String funcName, int numberOfArgs, String formula)
          指定した式をユーザ定義関数として登録する。
 double dEvaluate(String formula)
          指定された数式を評価したdoubleの値を返す。
 Map<String,String> getConstants()
          定義済みの定数(システム定義およびユーザ定義)の一覧をマップで返す。
 RoundingMode getRoundingMode()
          現在の端数処理方法の設定を返す。
 RoundPoint getRoundPoint()
          現在の端数処理時点の設定を返す。
 int getScale()
          現在の小数点以下桁数の設定を返す。
 void loadUserFunction(String className)
          指定した名前のクラスのインスタンスを生成しユーザ定義関数として登録する。
 void parse(String formula)
          指定された数式の構文をチェックする。
 void setRounding(int scale, RoundingMode rMode)
          BigDecimal計算における小数点以下の桁数と端数処理方法を変更する。
 void setRounding(RoundPoint roundPoint, int scale, RoundingMode rMode)
          BigDecimal計算における端数処理のコンテクスト(端数処理タイミング、小数点以下の桁数および端数処理方法)を変更する。
 void setScale(int scale)
          BigDecimal計算における小数点以下の桁数を変更する。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

FormulaEvaluator

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


FormulaEvaluator

public FormulaEvaluator(int scale)
BigDecimalの小数点以下桁数を指定したコンストラクタ。

パラメータ:
scale - BigDecimalの小数点以下桁数

FormulaEvaluator

public FormulaEvaluator(RoundPoint rondPoint,
                        int scale,
                        RoundingMode rMode)
                 throws FormulaEvaluatorException
BigDecimalの小数点以下桁数と端数処理を指定したコンストラクタ。

パラメータ:
roundPoint - BigDecimalの端数処理時点
scale - BigDecimalの小数点以下桁数
rMode - BigDecimalの端数処理方法
例外:
FormulaEvaluatorException
メソッドの詳細

parse

public void parse(String formula)
           throws FormulaEvaluatorException
指定された数式の構文をチェックする。不正であればFormulaEvaluatorExceptionをスローする。 正しければ何もしない。

パラメータ:
formula - 式
例外:
FormulaEvaluatorException - 式が不正である

dEvaluate

public double dEvaluate(String formula)
                 throws FormulaEvaluatorException
指定された数式を評価したdoubleの値を返す。

パラメータ:
formula - 式
戻り値:
評価結果
例外:
FormulaEvaluatorException - 式が不正である

bdEvaluate

public BigDecimal bdEvaluate(String formula)
                      throws FormulaEvaluatorException
指定された数式を評価したBigDecimalの値を返す。

パラメータ:
formula - 式
戻り値:
評価結果
例外:
FormulaEvaluatorException - 式が不正である

setRounding

public void setRounding(int scale,
                        RoundingMode rMode)
BigDecimal計算における小数点以下の桁数と端数処理方法を変更する。

パラメータ:
scale - BigDecimalの小数点以下桁数
rMode - BigDecimalの端数処理方法

setScale

public void setScale(int scale)
BigDecimal計算における小数点以下の桁数を変更する。

パラメータ:
scale - BigDecimalの小数点以下桁数

setRounding

public void setRounding(RoundPoint roundPoint,
                        int scale,
                        RoundingMode rMode)
                 throws FormulaEvaluatorException
BigDecimal計算における端数処理のコンテクスト(端数処理タイミング、小数点以下の桁数および端数処理方法)を変更する。

パラメータ:
roundPoint - BigDecimalの端数処理時点
scale - BigDecimalの小数点以下桁数
rMode - BigDecimalの端数処理方法
例外:
FormulaEvaluatorException

defineUserConstant

public void defineUserConstant(String name,
                               String value,
                               boolean override)
                        throws FormulaEvaluatorException
ユーザ定義定数を登録する。overrideがfalseの場合はシステム定義済み定数と同名の定数を登録しようとすると FormulaEvaluatorExceptionをスローする。

パラメータ:
name - 定数名
value - 定数の値
override - trueの場合、システム定義定数と同名の定数の登録を許可する
例外:
FormulaEvaluatorException - overrideがfalseでシステム定義定数と同名の定数の登録

defineUserConstant

public void defineUserConstant(String name,
                               String value)
                        throws FormulaEvaluatorException
ユーザ定義定数を登録する。システム定義済み定数と同名の定数を登録しようとすると FormulaEvaluatorExceptionをスローする。

パラメータ:
name - 定数名
value - 定数の値
例外:
FormulaEvaluatorException - システム定義定数と同名の定数の登録

getConstants

public Map<String,String> getConstants()
定義済みの定数(システム定義およびユーザ定義)の一覧をマップで返す。 マップのキーは変数名、値は変数の値の文字列表現である。

戻り値:
定義済みの定数(システム定義およびユーザ定義)の一覧

defineUserFunction

public void defineUserFunction(FunctionImplementation func)
                        throws FormulaEvaluatorException,
                               FunctionException
ユーザ定義関数を定義したオブジェクトを登録する。 システム定義済み関数と同名の定数を登録しようとすると FormulaEvaluatorExceptionをスローする。不正な関数名を定義するとFunctionExceptionをスローする。

パラメータ:
func - ユーザ定義関数を定義したオブジェクト
例外:
FormulaEvaluatorException - システム定義済み関数と同盟の関数を登録
FunctionException - 関数の名が不正

checkUserFunction

public void checkUserFunction(String funcName,
                              int numberOfArgs,
                              String formula)
                       throws FormulaEvaluatorException
指定した式をユーザ定義関数として登録可能かチェックする。 不正の場合FormulaEvaluatorExceptionをスローする。正しい場合何もしない。

パラメータ:
funcName - 関数名
numberOfArgs - 引数の個数
formula - 関数の式
例外:
FormulaEvaluatorException - 不正(ユーザ定義関数として登録できない)

defineUserFunction

public void defineUserFunction(String funcName,
                               int numberOfArgs,
                               String formula)
                        throws FormulaEvaluatorException
指定した式をユーザ定義関数として登録する。 不正な式、あるいはシステム定義済み関数と同名の定数を登録しようとすると FormulaEvaluatorExceptionをスローする。

パラメータ:
funcName - 関数名
numberOfArgs - 引数の個数
formula - 関数の式
例外:
FormulaEvaluatorException - 不正(ユーザ定義関数として登録できない)

loadUserFunction

public void loadUserFunction(String className)
                      throws FormulaEvaluatorException
指定した名前のクラスのインスタンスを生成しユーザ定義関数として登録する。

パラメータ:
className - ユーザ定義関数を定義したクラスのクラス名
例外:
FormulaEvaluatorException - 不正(ユーザ定義関数として登録できない)

getScale

public int getScale()
現在の小数点以下桁数の設定を返す。

戻り値:
現在のBigDecimalの小数点以下桁数

getRoundingMode

public RoundingMode getRoundingMode()
現在の端数処理方法の設定を返す。

戻り値:
現在のBigDecimalの端数処理方法

getRoundPoint

public RoundPoint getRoundPoint()
現在の端数処理時点の設定を返す。

戻り値:
現在のBigDecimalの端数処理時点