de.mvcsys.rsql
Class RsqlDate

java.lang.Object
  |
  +--de.mvcsys.rsql.RsqlDate

public class RsqlDate
extends Object

Klasse zur Darstellung von Datum/Timestamp als Zeichenketten. Es wird die rein numerische und die SQL-Darstellung unterstützt Die einzelnen Subfelder sind zugreifbar, für Berechnungen wird ein java.util.Calendar-Objekt gespeichert.


Field Summary
protected static SimpleDateFormat defaultFormatter
          Formatierungshilfe (Default)
static int F_DAY
          Erste Stelle ist der Tag
static int F_FRACTION
          Erste Stelle ist der Bruchteil
static int F_HOUR
          Erste Stelle ist die Stunde
static int F_MINUTE
          Erste Stelle ist die Minute
static int F_MONTH
          Erste Stelle ist der Monat
static int F_SECOND
          Erste Stelle ist die Sekunde
static int F_YEAR
          Erste Stelle ist das Jahr
protected  int first
          1.
protected static DecimalFormat microFormatter
          Formatierungshilfe (Microsekunden)
protected  int micros
          Mikrosekunden
protected  int precision
          Anzahl der Nachkommastellen der Sekunden.
protected  int size
          Anzahl der Stellen (Ziffern ohne Trennzeichen)
protected static SimpleDateFormat sqlFormatter
          Formatierungshilfe (SQL-Format)
protected static int[] sqlOffsets
          Start-Offsets für SQL-Darstellung
protected  int sqlSize
          Anzahl der Stellen (Ziffern mit Trennzeichen)
protected  String sqlText
          String im Format "yyyy-MM-dd:HH:mm:ss..."
protected  String text
          String im Format "yyyyMMddHHmmss..."
protected static SimpleDateFormat textFormatter
          Formatierungshilfe (internes Format)
protected static int[] textOffsets
          Start-Offsets für Text-Darstellung
protected  SimpleDateFormat toStringFormatter
          Formatierungshilfe (für toString())
protected  Calendar value
          Wert als Calendar-Object
 
Constructor Summary
RsqlDate()
          Default-Konstruktor.
RsqlDate(byte[] value, int offset, int size)
          Konstruktor mit Byte-Array, Länge und Skalierung.
RsqlDate(Date value)
          Konstruktor mit Date-Objekt.
RsqlDate(Date value, int precision)
          Konstruktor mit Date-Objekt und Precision.
RsqlDate(Date value, int micros, int precision)
          Konstruktor mit Date-Objekt, Mikrosekunden und precision.
RsqlDate(long value)
          Konstruktor mit Juliantimestamp.
RsqlDate(String value)
          Konstruktor mit String.
RsqlDate(String value, int first)
          Konstruktor mit String.
 
Method Summary
 void dump()
          Debug-Ausgabe des Objekts
 void getBytes(byte[] dest, int offset)
          Gebe den Zahlenstring als Bytes zurück
 int getPrecision()
          Ermittle die Skalierung
 int getSize()
          Ermittle die Anzahl der Stellen
 void getSqlBytes(byte[] dest, int offset)
          Gebe den SQL-Text als Bytes zurück
 int getSqlSize()
          Ermittle die Anzahl der Stellen des SQL-Textes
 String getSqlText()
          Gebe den SQL-Text zurück
 String getText()
          Gebe den Zahlenstring zurück
 Date getTime()
          Ermittle die Zeit
 Calendar getValue()
          Ermittle den Wert
protected  void init(Date date, int micros, int precision)
          Worker für Konstruktor
protected  void init(String string, int first)
          Worker für Konstruktor
static void main(String[] args)
          Test-Hauptprogramm
 void setFirst(int first)
          Setze die erste Stelle
 void setFormat(String format)
          Setze den Format-String für toString() Beispiel "yyyy-MM-dd:HH:mm:ss"
 void setValue(byte[] value, int offset)
          Setze den Wert aus einem Byte-Array
 void setValue(byte[] value, int offset, int size)
          Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird übergeben
 void setValue(Date value)
          Setze den Wert aus einem Date-Objekt.
 void setValue(Date value, int micros)
          Setze den Wert aus einem Date-Objekt und Mikrosekunden
 void setValue(String value)
          Setze den Wert aus einem Zahlenstring Wenn der String mit 4 Ziffern und einem "-" beginnt, dann wird ein SQL-Timestamp angenommen Besteht der String nur aus Zahlen, dann hat er das Format von text
 String toString()
          Implementierung von Object.toString()
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

defaultFormatter

protected static SimpleDateFormat defaultFormatter
Formatierungshilfe (Default)

F_DAY

public static final int F_DAY
Erste Stelle ist der Tag

F_FRACTION

public static final int F_FRACTION
Erste Stelle ist der Bruchteil

F_HOUR

public static final int F_HOUR
Erste Stelle ist die Stunde

F_MINUTE

public static final int F_MINUTE
Erste Stelle ist die Minute

F_MONTH

public static final int F_MONTH
Erste Stelle ist der Monat

F_SECOND

public static final int F_SECOND
Erste Stelle ist die Sekunde

F_YEAR

public static final int F_YEAR
Erste Stelle ist das Jahr

first

protected int first
1. Feld (Jahr, Monat, Tag, Stunde, Minute, Sekunde oder Fraction)

microFormatter

protected static final DecimalFormat microFormatter
Formatierungshilfe (Microsekunden)

micros

protected int micros
Mikrosekunden

precision

protected int precision
Anzahl der Nachkommastellen der Sekunden.

size

protected int size
Anzahl der Stellen (Ziffern ohne Trennzeichen)

sqlFormatter

protected static SimpleDateFormat sqlFormatter
Formatierungshilfe (SQL-Format)

sqlOffsets

protected static final int[] sqlOffsets
Start-Offsets für SQL-Darstellung

sqlSize

protected int sqlSize
Anzahl der Stellen (Ziffern mit Trennzeichen)

sqlText

protected String sqlText
String im Format "yyyy-MM-dd:HH:mm:ss..."

text

protected String text
String im Format "yyyyMMddHHmmss..."

textFormatter

protected static SimpleDateFormat textFormatter
Formatierungshilfe (internes Format)

textOffsets

protected static final int[] textOffsets
Start-Offsets für Text-Darstellung

toStringFormatter

protected SimpleDateFormat toStringFormatter
Formatierungshilfe (für toString())

value

protected Calendar value
Wert als Calendar-Object
Constructor Detail

RsqlDate

public RsqlDate()
Default-Konstruktor. Erzeugt einen Timestamp mit der aktuellen Zeit und Precision 6

RsqlDate

public RsqlDate(byte[] value,
                int offset,
                int size)
         throws ParseException,
                StringIndexOutOfBoundsException
Konstruktor mit Byte-Array, Länge und Skalierung. Der Byte-Array wird als String interpretiert.
Parameters:
value - Byte-Array mit Zahlenstring
offset - Offset innerhalb des Arrays
size - Anzahl der Stellen
Throws:
ParseException - Ungültige Zeichen im Array
StringIndexOutOfBoundsException - Array ist zu kurz

RsqlDate

public RsqlDate(Date value)
Konstruktor mit Date-Objekt.
Parameters:
value - Datum/Timestamp als Date-Objekt

RsqlDate

public RsqlDate(Date value,
                int precision)
         throws IllegalArgumentException
Konstruktor mit Date-Objekt und Precision.
Parameters:
value - Datum/Timestamp als Date-Objekt
precision - Nachkommastellen der Sekunden
Throws:
IllegalArgumentException - Überlauf in precision

RsqlDate

public RsqlDate(Date value,
                int micros,
                int precision)
         throws IllegalArgumentException
Konstruktor mit Date-Objekt, Mikrosekunden und precision.
Parameters:
value - Datum/Timestamp als Date-Objekt
micros - Mikrosekunden ganze Zahl
precision - Nachkommastellen der Sekunden
Throws:
IllegalArgumentException - Überlauf in precision

RsqlDate

public RsqlDate(long value)
         throws IllegalArgumentException
Konstruktor mit Juliantimestamp.
Parameters:
value - Juliantimestamp oder ms seit 1970. Die Unterscheidung erfolgt nach dem Wert
Throws:
IllegalArgumentException - Überlauf in precision

RsqlDate

public RsqlDate(String value)
         throws ParseException
Konstruktor mit String. Wenn der String mit 4 Ziffern und einem "-" beginnt, dann wird ein SQL-Timestamp angenommen Besteht der String nur aus Zahlen, dann hat er das Format von
text
Parameters:
value - Wert als Zeichenkette
Throws:
ParseException - Ungültiger String

RsqlDate

public RsqlDate(String value,
                int first)
         throws ParseException
Konstruktor mit String. Wenn der String mit 4 Ziffern und einem "-" beginnt, dann wird ein SQL-Timestamp angenommen Besteht der String nur aus Zahlen, dann hat er das Format von
text
Parameters:
value - Wert als Zeichenkette
first - F_...-Konstante für den Beginn
Throws:
ParseException - Ungültiger String
Method Detail

dump

public void dump()
Debug-Ausgabe des Objekts

getBytes

public void getBytes(byte[] dest,
                     int offset)
Gebe den Zahlenstring als Bytes zurück

getPrecision

public int getPrecision()
Ermittle die Skalierung
Returns:
Die Präzision als ganze Zahl

getSize

public int getSize()
Ermittle die Anzahl der Stellen
Returns:
Die Anzahl der Stellen

getSqlBytes

public void getSqlBytes(byte[] dest,
                        int offset)
Gebe den SQL-Text als Bytes zurück

getSqlSize

public int getSqlSize()
Ermittle die Anzahl der Stellen des SQL-Textes
Returns:
Die Anzahl der Stellen

getSqlText

public String getSqlText()
Gebe den SQL-Text zurück
Returns:
Der Wert im SQL-Format "yyyy-MM-dd:HH:mm:ss..."

getText

public String getText()
Gebe den Zahlenstring zurück
Returns:
Der Zahlenstring im Format "yyyyMMddHHmmss..."

getTime

public Date getTime()
Ermittle die Zeit
Returns:
getValue().getTime()

getValue

public Calendar getValue()
Ermittle den Wert
Returns:
Das Calendar-Objekt

init

protected void init(Date date,
                    int micros,
                    int precision)
             throws IllegalArgumentException
Worker für Konstruktor
Parameters:
value - Wert als Date-Objekt
micros - Micro-Sekunden
precision - Skalierung (positiv oder negativ)
Throws:
IllegalArgumentException - Überlauf in precision

init

protected void init(String string,
                    int first)
             throws ParseException
Worker für Konstruktor
Parameters:
value - Wert als String
first - Anfang der Zeichenkette
Throws:
ParseException - Ungültige Zeichen im String

main

public static void main(String[] args)
                 throws ParseException
Test-Hauptprogramm

setFirst

public void setFirst(int first)
Setze die erste Stelle
Parameters:
first - eine der F_...-Konstanten

setFormat

public void setFormat(String format)
Setze den Format-String für toString() Beispiel "yyyy-MM-dd:HH:mm:ss"
Parameters:
format - FormatString (siehe java.text.SimpleDateFormat)

setValue

public void setValue(byte[] value,
                     int offset)
              throws ParseException
Setze den Wert aus einem Byte-Array
Parameters:
value - Wert als Byte-Array
offset - Offset innerhalb des Arrays
Throws:
ParseException - Ungültige Zeichen im Array

setValue

public void setValue(byte[] value,
                     int offset,
                     int size)
              throws ParseException
Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird übergeben
Parameters:
value - Unskalierter Wert als Byte-Array
offset - Offset innerhalb des Arrays
size - Länge innerhalb des Arrays
Returns:
Unskalierter Wert als ganze Zahl
Throws:
ParseException - Ungültige Zeichen im Array

setValue

public void setValue(Date value)
Setze den Wert aus einem Date-Objekt.
Parameters:
value - Datum/Timestamp als Date-Objekt

setValue

public void setValue(Date value,
                     int micros)
Setze den Wert aus einem Date-Objekt und Mikrosekunden
Parameters:
value - Datum/Timestamp als Date-Objekt

setValue

public void setValue(String value)
              throws ParseException
Setze den Wert aus einem Zahlenstring Wenn der String mit 4 Ziffern und einem "-" beginnt, dann wird ein SQL-Timestamp angenommen Besteht der String nur aus Zahlen, dann hat er das Format von
text
Parameters:
value - Wert als Zeichenkette
Throws:
ParseException - Ungültiger String

toString

public String toString()
Implementierung von Object.toString()
Overrides:
toString in class Object
Returns:
Der Wert im Standard-Format
See Also:
setFormat(String)


Copyright ¸ 2002 MvC Systemsoftware.