Klassen des Pakets AstroOL: Zur Doku-Startseite Zurück zur Homepage

Interface ICalculator

Javadoc von ICalculator   ICalculator.java herunterladen

package AstroOL;


/** Durchführung astrologischer Berechnungen. Dieses Interface legt die Schnittstellen
gängiger astrologischer Rechenaufgaben fest. Der Object Layer enthält derzeit drei
Implementierungen dieses Interfaces, von denen zwei auf der Swiss Ephemeris basieren
und die dritte eine niedriggenaue Ephemeride für den Offlinegebrauch darstellt. */
public interface ICalculator {


/** Angabe der URL eines Web-Service, der Horoskopberechnungen ausführen kann.
Es kann sich um ein Servlet handeln, ebenso gut aber auch um ein Perl-Skript oder
irgendeinen andere Art von Webdienst.
<p> Für die Implementierung des Interface ICalculator durch die Klasse Calculator
haben die Requestparameter des Services die folgende Bedeutung:
<ul>
<li><b>planets</b> Es soll eine Planetenberechnung durchgeführt werden
<li><b>houses</b> Es soll eine Häuserberechnung durchgeführt werden
<li><b>jd</b> Julianisches Datum des Zeitpunkts in ET
<li><b>lon</b> Geographische Länge, gezählt nach Osten
<li><b>lat</b> Geographische Breite, Norden zählt positiv.
</ul>
<p>
Das Ergebnis muss eine Antwort in <b><code>text/plain</code></b> sein (nicht HTML),
die aus mehreren Zeilen besteht. Die Zeilen beginnen mit den Schlüsselwörtern
<code>houses:</code>, <code>planets:</code>, <code>error:</code> oder <code>warning:</code>.
Hinter <code>houses:</code> und <code>planets:</code> sind die ekliptikalen Längen
der zwölf Häser bzw. der zehn Planeten im Dezimalformat als komma-separierte Liste
aufgeführt. Die Zeilen <code>error:</code> oder <code>warning:</code> enthalten
etwaige Warnungen oder Fehlermeldungen.
<p> Dieses Format ist natürlich für andere Implementierungen des Interface nicht
bindend. Es ist lediglich darauf zu achten, dass das Format, mit dem der Webservice seine
Antwort zurückliefert, zu dem Format passt, das von der Implementierung des Interface
entgegengenommen wird.
*/
  public void setServletURL(String servletURL);

/** Abfrage der URL, unter welcher die Planetenberechnung abrufbar ist */
  public String getServletURL( );



/** Berechnung der Planeten und Häuser. Eine Sammelmethode für den schnellen Zugriff
auf die üblichsten astrologischen Daten: Die ekliptikalen Planeten- und Hauspositionen.
@param jd_ut julianisches Datum in Weltzeit (nicht Ephemeridenzeit)
@param lon geographische Länge des Ortes (für Hausberechnungen)
@param lat geographische (nicht geozentrische) Breite des Ortes (für Hausberechnungen)
@param pl die Referenz auf ein Array von doppeltgenauen Gleitkommazahlen
mit mindestens zehn Elementen; die ersten zehn Elemente werden mit den
geozentrischen ekliptikalen Planetenpositionen in der Reihenfolge SO, MO, ME, VE, MA, JU, SA, UR, NE und PL
gefüllt.
@param h die Referenz auf ein Array von doppeltgenauen Gleitkommazahlen
mit mindestens dreizehn Elementen. Das erste Element (mit Index 0) bleibt leer. Das Element h[i]
wird für i = 1 bis 12 mit dem Wert der i. Hausspitze gefüllt. Die Wahl oder gar Wählbarkeit
des Häsersystems ist im Interface nicht festgelegt und stellt somit ein Implementierungsdetail dar.
@returns wahr, wenn die Berechnung erfolgreich ausgeführt werden konnte. Sonst falsch.
*/
  public boolean getPlanetsAndHouses( double jd_ut,
                                      double lon,
                                      double lat,
	                                  double[] pl,
                                      double[] h ) ;

/** Berechnung des geozentrischen Ortes und der Geschwindigkeit eines einzelnen Planeten zur
wahren Ekliptik des Datums.
@param jd_ut julianisches Datum in Weltzeit (nicht Ephemeridenzeit)
@param planet Nummer des Planeten. Es gilt die Reihenfolge SO, MO, ME, VE, MA, JU, SA, UR, NE und PL,
wobei SO die Nummer Null hat.
@param serr Fehler- oder Warnmeldung im Klartext.
Kann auch mehrere Meldungen, getrennt durch Zeilenvorschübe, enthalten.
@returns die Referenz auf ein Array von sechs doppeltgenauen Gleitkommazahlen. Bei Rückgabe
ist der Array in dieser Reihenfolge mit folgenden Werten gefüllt:
<ul>
<li> Ekliptikale Länge in Grad
<li> Ekliptikale Breite in Grad
<li> Abstand vom Erdmittelpunkt in Astronomischen Einheiten (AU)
<li> Momentane Änderung der Länge in Grad pro Tag
<li> Momentane Änderung der Breite in Grad pro Tag
<li> Momentane Änderung des Abstands in AU pro Tag
</ul>
*/
  public double[] getPlanet( double jd_ut,
                             int planet,
                             StringBuffer serr) ;


/** Berechnung einer einzelnen Häserspitze.
@param jd_ut julianisches Datum in Weltzeit (nicht Ephemeridenzeit)
@param lon geographische Länge des Ortes (für Hausberechnungen)
@param lat geographische (nicht geozentrische) Breite des Ortes (für Hausberechnungen)
@param die zu berechnende Häuserspitze. Das Interface schreibt nur vor, daß die
ganzzahligen Werte 1 bis 12 den Spitzen der Häser 1 bis 12 entsprechen. Die implementierenden
Klassen Calculator und LowPrecCalculator interpretieren Zwischenwerte als mundane Position.
@returns die ekliptikale Länge der Häserspitze. */
  public double getHouse( double jd_ut,
                          double lon,
                          double lat,
                          double houseNumber,
                          StringBuffer serr) ;

}



Zum Seitenanfang Lizenzbedingungen Der Quellcode wird mit dem GNU source-highlight 1.7 dargestellt