janus.util
Class NumberString

java.lang.Object
  extended by java.lang.Number
      extended by janus.util.NumberString
All Implemented Interfaces:
Serializable

public class NumberString
extends Number
implements Serializable

Klasse zur Darstellung von Zahlen als Zeichenketten. Der Wert ist eine ganze Zahl, die durch eine Skalierung modifiziert wird. Die Skalierung ist die Position eines gedachten Dezimalpunktes, von rechts aus betrachtet. Eine negative Skalierung bedeutet, daß der angenommene Wert größer ist, als die gespeicherte Zahl. Der Wert wird für Berechnungen als long gespeichert.

See Also:
Serialized Form

Field Summary
protected  double factor
          Skalierungsfaktor 10**(-scale)
protected  int scale
          Skalierung, positiv oder negativ möglich.
protected  int size
          Anzahl der Stellen
protected  StringBuffer text
          Zahl als ganzahliger Text mit führenden Nullen
protected  long value
          Ganzahliger Wert ohne Skalierung
 
Constructor Summary
NumberString(byte[] value, int offset, int size, int scale)
          Konstruktor mit Byte-Array, Länge und Skalierung.
NumberString(byte[] value, int offset, int size, int scale, char decimal)
          Konstruktor mit Byte-Array, Länge, Skalierung und Dezimalpunkt Der Byte-Array wird als String einer ganzen Zahl interpretiert.
NumberString(double value, int size, int scale)
          Konstruktor mit Fließkommazahl, Länge und Skalierung.
NumberString(double value, int size, int scale, char decimal)
          Konstruktor mit Fließkommazahl, Länge, Skalierung und Dezimalpunkt.
NumberString(int size)
          Konstruktor mit Längenparameter.
NumberString(long value, int size)
          Konstruktor mit Wert und Längenparameter.
NumberString(long value, int size, int scale)
          Konstruktor mit ganzer Zahl, Länge und Skalierung.
NumberString(long value, int size, int scale, char decimal)
          Konstruktor mit ganzer Zahl, Länge, Skalierung und Dezimalpunkt.
NumberString(String value, int size, int scale)
          Konstruktor mit String, Länge und Skalierung.
NumberString(String value, int size, int scale, char decimal)
          Konstruktor mit String, Länge, Skalierung und Dezimalpunkt.
 
Method Summary
 double doubleValue()
          Implementierung von Number.doubleValue().
 void dump()
          Debug-Ausgabe des Objekts
 float floatValue()
          Implementierung von Number.floatValue().
 void getBytes(byte[] dest, int offset)
          Gebe den Zahlenstring als Bytes zurück
 char getDecimal()
          Gebe den Dezimalpunkt zurück
 double getFactor()
          Gebe den Skalierungsfaktor zurück
 long getLongValue()
          Ermittle den Wert
 int getScale()
          Ermittle die Skalierung
 long getSize()
          Ermittle die Anzahl der Stellen
 String getText()
          Gebe den Zahlenstring zurück
protected  void init(long value, int size, int scale, char decimal)
          Worker für Konstruktor
 int intValue()
          Implementierung von Number.intValue().
 long longValue()
          Implementierung von Number.longValue().
static void main(String[] args)
          Test-Hauptprogramm
static StringBuffer nulls(int size)
          Hilfsfunktion zum Füllen des Puffers mit '0'.
 void setDecimal(char decimal)
          Setze den Dezimalpunkt
 void setLongValue(byte[] value, int offset)
          Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird durch die Größe des eigenen Objekts bestimmt
 void setLongValue(byte[] value, int offset, int size)
          Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird übergeben
 void setLongValue(long value)
          Setze den Wert aus einer ganzen Zahl
 void setLongValue(String s)
          Setze den Wert aus einem Zahlenstring
 void setValue(byte[] value, int offset)
          Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird durch die Größe des eigenen Objekts bestimmt
 void setValue(byte[] value, int offset, int size)
          Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird übergeben
 void setValue(double value)
          Setze den Wert aus einer Kommazahl
 void setValue(long value)
          Setze den Wert aus einer ganzen Zahl
 void setValue(String value)
          Setze den Wert aus einem Zahlenstring Der String stellt eine Fließkommazahl dar
 String toString()
          Implementierung von Object.toString() Gibt gebrochene Zahlen mit decimal als Dezimaltrennzeichen aus.
 
Methods inherited from class java.lang.Number
byteValue, shortValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

factor

protected double factor
Skalierungsfaktor 10**(-scale)


scale

protected int scale
Skalierung, positiv oder negativ möglich.


size

protected int size
Anzahl der Stellen


text

protected StringBuffer text
Zahl als ganzahliger Text mit führenden Nullen


value

protected long value
Ganzahliger Wert ohne Skalierung

Constructor Detail

NumberString

public NumberString(byte[] value,
                    int offset,
                    int size,
                    int scale)
             throws ArithmeticException,
                    NumberFormatException,
                    StringIndexOutOfBoundsException
Konstruktor mit Byte-Array, Länge und Skalierung. Der Byte-Array wird als String einer ganzen Zahl interpretiert.

Parameters:
value - Byte-Array mit Zahlenstring
offset - Offset innerhalb des Arrays
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf
NumberFormatException - Ungültige Zeichen im Array
StringIndexOutOfBoundsException - Array ist zu kurz

NumberString

public NumberString(byte[] value,
                    int offset,
                    int size,
                    int scale,
                    char decimal)
             throws ArithmeticException,
                    NumberFormatException,
                    StringIndexOutOfBoundsException
Konstruktor mit Byte-Array, Länge, Skalierung und Dezimalpunkt Der Byte-Array wird als String einer ganzen Zahl interpretiert.

Parameters:
value - Byte-Array mit Zahlenstring
offset - Offset innerhalb des Arrays
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf
NumberFormatException - Ungültige Zeichen im Array
StringIndexOutOfBoundsException - Array ist zu kurz

NumberString

public NumberString(double value,
                    int size,
                    int scale)
             throws ArithmeticException
Konstruktor mit Fließkommazahl, Länge und Skalierung. Die Kommazahl wird in eine ganze Zahl umgerechnet.

Parameters:
value - Wert als Kommazahl
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf

NumberString

public NumberString(double value,
                    int size,
                    int scale,
                    char decimal)
             throws ArithmeticException
Konstruktor mit Fließkommazahl, Länge, Skalierung und Dezimalpunkt. Die Kommazahl wird in eine ganze Zahl umgerechnet.

Parameters:
value - Wert als Kommazahl
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
decimal - Deziamlpunkt
Throws:
ArithmeticException - Überlauf

NumberString

public NumberString(int size)
             throws ArithmeticException
Konstruktor mit Längenparameter. Wert und Skalierung werden auf 0 gesetzt.

Parameters:
size - Anzahl der Stellen
Throws:
ArithmeticException - Überlauf (kann nicht vorkommen)

NumberString

public NumberString(long value,
                    int size)
             throws ArithmeticException
Konstruktor mit Wert und Längenparameter. Die Skalierung wird auf 0 gesetzt.

Parameters:
value - Wert als ganze Zahl
size - Anzahl der Stellen
Throws:
ArithmeticException - Überlauf

NumberString

public NumberString(long value,
                    int size,
                    int scale)
             throws ArithmeticException
Konstruktor mit ganzer Zahl, Länge und Skalierung.

Parameters:
value - Wert als ganze Zahl
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf

NumberString

public NumberString(long value,
                    int size,
                    int scale,
                    char decimal)
             throws ArithmeticException
Konstruktor mit ganzer Zahl, Länge, Skalierung und Dezimalpunkt.

Parameters:
value - Wert als ganze Zahl
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
decimal - Deziamlpunkt
Throws:
ArithmeticException - Überlauf

NumberString

public NumberString(String value,
                    int size,
                    int scale)
             throws ArithmeticException,
                    NumberFormatException
Konstruktor mit String, Länge und Skalierung. Der String stellt eine Fließkommazahl dar. Der Dezimalpunkt wird dem String entnommen.

Parameters:
value - Wert als Zahlenstring
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf
NumberFormatException - Ungültige Zeichen im String

NumberString

public NumberString(String value,
                    int size,
                    int scale,
                    char decimal)
             throws ArithmeticException,
                    NumberFormatException
Konstruktor mit String, Länge, Skalierung und Dezimalpunkt. Der String stellt eine Fließkommazahl dar. Der Dezimalpunkt wird dem String entnommen.

Parameters:
value - Wert als Zahlenstring
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf
NumberFormatException - Ungültige Zeichen im String
Method Detail

doubleValue

public double doubleValue()
Implementierung von Number.doubleValue().

Specified by:
doubleValue in class Number
Returns:
Liefert den skalierten Wert.

dump

public void dump()
Debug-Ausgabe des Objekts


floatValue

public float floatValue()
Implementierung von Number.floatValue().

Specified by:
floatValue in class Number
Returns:
Liefert den skalierten Wert.

getBytes

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

Parameters:
dest - Der Zahlenstring mit führenden Nullen als Byte-Array

getDecimal

public char getDecimal()
Gebe den Dezimalpunkt zurück

Returns:
Der Dezimalpunkt (normalerweise '.' oder ',')

getFactor

public double getFactor()
Gebe den Skalierungsfaktor zurück

Returns:
Der Skalierungsfaktor 10**(-scale)

getLongValue

public long getLongValue()
Ermittle den Wert

Returns:
Der unskalierte Wert

getScale

public int getScale()
Ermittle die Skalierung

Returns:
Die Skalierung als ganze Zahl

getSize

public long getSize()
Ermittle die Anzahl der Stellen

Returns:
Die Anzahl der Stellen

getText

public String getText()
Gebe den Zahlenstring zurück

Returns:
Der Zahlenstring mit führenden Nullen

init

protected void init(long value,
                    int size,
                    int scale,
                    char decimal)
             throws ArithmeticException
Worker für Konstruktor

Parameters:
value - Wert als ganze Zahl
size - Anzahl der Stellen
scale - Skalierung (positiv oder negativ)
Throws:
ArithmeticException - Überlauf

intValue

public int intValue()
Implementierung von Number.intValue().

Specified by:
intValue in class Number
Returns:
Liefert den unskalierten Wert.

longValue

public long longValue()
Implementierung von Number.longValue().

Specified by:
longValue in class Number
Returns:
Liefert den unskalierten Wert.

main

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


nulls

public static StringBuffer nulls(int size)
Hilfsfunktion zum Füllen des Puffers mit '0'.


setDecimal

public void setDecimal(char decimal)
Setze den Dezimalpunkt

Parameters:
decimal - Das Zeichen, das als Dezimalpunkt verwendet wird

setLongValue

public void setLongValue(byte[] value,
                         int offset)
                  throws NumberFormatException
Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird durch die Größe des eigenen Objekts bestimmt

Parameters:
value - Unskalierter Wert als Byte-Array
offset - Offset innerhalb des Arrays
Throws:
NumberFormatException - Ungültige Zeichen im Array

setLongValue

public void setLongValue(byte[] value,
                         int offset,
                         int size)
                  throws NumberFormatException
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
Throws:
NumberFormatException - Ungültige Zeichen im Array

setLongValue

public void setLongValue(long value)
Setze den Wert aus einer ganzen Zahl

Parameters:
value - Unskalierter Wert als ganze Zahl

setLongValue

public void setLongValue(String s)
                  throws NumberFormatException
Setze den Wert aus einem Zahlenstring

Parameters:
s - Unskalierter Wert als Zahlenstring
Throws:
NumberFormatException - Ungültige Zeichen im String

setValue

public void setValue(byte[] value,
                     int offset)
              throws NumberFormatException
Setze den Wert aus einem Zahlen-Byte-Array Die Länge wird durch die Größe des eigenen Objekts bestimmt

Parameters:
value - Unskalierter Wert als Byte-Array
offset - Offset innerhalb des Arrays
Throws:
NumberFormatException - Ungültige Zeichen im Array

setValue

public void setValue(byte[] value,
                     int offset,
                     int size)
              throws NumberFormatException
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
Throws:
NumberFormatException - Ungültige Zeichen im Array

setValue

public void setValue(double value)
Setze den Wert aus einer Kommazahl

Parameters:
value - Skalierter Wert als Kommazahl

setValue

public void setValue(long value)
Setze den Wert aus einer ganzen Zahl

Parameters:
value - Unskalierter Wert als ganze Zahl

setValue

public void setValue(String value)
              throws NumberFormatException
Setze den Wert aus einem Zahlenstring Der String stellt eine Fließkommazahl dar

Parameters:
value - Skalierter Wert als Zahlenstring
Throws:
NumberFormatException - Ungültige Zeichen im String

toString

public String toString()
Implementierung von Object.toString() Gibt gebrochene Zahlen mit decimal als Dezimaltrennzeichen aus.

Overrides:
toString in class Object
Returns:
Der skalierte Wert als Text


Copyright © 2008 MvC Systemsoftware.