to.tetramorph.starbase
クラス Function

java.lang.Object
  上位を拡張 to.tetramorph.starbase.Function

public final class Function
extends Object

HSQLDBのSQL文からストアドプロシージャとして呼び出すための占星術用関数群。 すべてstaticメソッド。このクラスはプラグイン側で使用しても問題はありませんが、 ユリウス日などを求めるのであればJDayを使うことをおすすめします。
SQL側では別名を付与してやると使いやすい

 CREATE ALIAS SIGN FOR "to.tetramorph.starbase.Function.getSign";
 CREATE ALIAS ANGLE FOR "to.tetramorph.starbase.Function.getAngle";
 CREATE ALIAS ASPECT FOR "to.tetramorph.starbase.Function.isAspect";
 CREATE ALIAS JULDAY FOR "to.tetramorph.starbase.Function.getJDay"
 


メソッドの概要
static Double getAngle(Double angle)
          サインの中の角度を返す。
static Double getJDay(String era, Date date, Time time, String timeZone, String defaultTime)
          ERA,日付,時刻,タイムゾーンからユリウス日を返す。
protected static int getJDayCounter()
          getJDay()が呼び出されるごとにカウントアップする変数の値を返す。
static String getSign(Double angle)
          黄経(0-360)を入力に対して星座名を返す。
static Boolean isAspect(Double p1, Double p2, Double angle, Double orb)
          二体の天体黄経p1,p2が、angleで指定されたアスペクトを形成しているか判定する orbは許容誤差を指定する。
static Boolean isNoAspect(Double p0, Double p1, Double p2, Double p3, Double p4, Double p5, Double p6, Double p7, Double p8, Double p9, Double orb)
          p0の天体に対してp1-p9までの天体とアスペクトの有無を検査して、 p0が他の全天体とノーアスペクトのときはtrueを、アスペクトがあるときはfalse を返す。
static void main(String[] args)
           
protected static void setJDayCounter(int value)
          getJDay()が呼び出されるごとにカウントアップする変数に値をセットする。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getSign

public static String getSign(Double angle)
黄経(0-360)を入力に対して星座名を返す。360度以上の値を入れても、360度以内に 丸めて計算する。nullを入力するとnullを返す。負の値を入力するとエラー。


getAngle

public static Double getAngle(Double angle)
サインの中の角度を返す。値の範囲は(0 >= 値 < 30)となる。 nullを入れるとnullを返す。


isAspect

public static Boolean isAspect(Double p1,
                               Double p2,
                               Double angle,
                               Double orb)
二体の天体黄経p1,p2が、angleで指定されたアスペクトを形成しているか判定する orbは許容誤差を指定する。各入力パラメターの1つでもnullが入ると このメソッドはnullを返す。


isNoAspect

public static Boolean isNoAspect(Double p0,
                                 Double p1,
                                 Double p2,
                                 Double p3,
                                 Double p4,
                                 Double p5,
                                 Double p6,
                                 Double p7,
                                 Double p8,
                                 Double p9,
                                 Double orb)
p0の天体に対してp1-p9までの天体とアスペクトの有無を検査して、 p0が他の全天体とノーアスペクトのときはtrueを、アスペクトがあるときはfalse を返す。アスペクトはメジャーアスペクト(0,60,90,120,180)のみを検査する。 その際のオーブは引数orbで指定する。 p0がnullなら、このメソッドはかならずtrueを返す。非存在の位置にアスペクト など発生しないから、それはノーアスである。 p1-p9までの天体のうちnullのものは検査の際無視する。つまり外惑星3つを nullにしておけば、その枠内で計算される。 orbにnullを指定すると、デフォルトで4度のオーブとみなす。
 【実例】
 例えば太陽がノーアスかどうかを検査したいとき、p0には太陽黄経を指定。
 p1からp9までは月、水星、金星、、、冥王星までの黄経を指定。
 アスペクトを認めるオーブ角をorbで指定。
 【実例2】
 火星がノーアスかどうか、古典7惑星のシステムで検査したいときは、
 p0に火星黄経を指定。p1-p6まで太陽、月、水星、金星、木星、土星を指定。
 天体の順序はどうでも良い。p7-p9まではnullを指定。
 アスペクトを認めるオーブ角をorbで指定。


main

public static void main(String[] args)

getJDay

public static Double getJDay(String era,
                             Date date,
                             Time time,
                             String timeZone,
                             String defaultTime)
ERA,日付,時刻,タイムゾーンからユリウス日を返す。

パラメータ:
era - ADまたはBCを指定。
date - 日付
time - 時刻
timeZone - タイムゾーンID
defaultTime - 時刻がnullの場合に採用する地方時(hh:mm:dd)

setJDayCounter

protected static void setJDayCounter(int value)
getJDay()が呼び出されるごとにカウントアップする変数に値をセットする。 これはデフォルトタイムの変更が起き、UPDATE文でユリウス日を更新する際に、 進行状況を外から監視するために使用する。 UPDATE発行前にゼロをセットして、別のスレッドから値を監視する。 ただしこの方法はHSQLDBが同じJVM上で動いてなければstatic変数といえども 絶縁されてしまうので使えない。つまり別窓でHSQLDBを起動している開発中の 環境では使えない。


getJDayCounter

protected static int getJDayCounter()
getJDay()が呼び出されるごとにカウントアップする変数の値を返す。 これはUPDATE文でユリウス日を更新する際に、進行状況を外から監視するために 使用する。