javax.units
Class Prefix

java.lang.Object
  extended byjavax.units.Prefix
All Implemented Interfaces:
java.lang.Comparable, java.io.Serializable

final class Prefix
extends java.lang.Object
implements java.lang.Comparable, java.io.Serializable

Représentation d'un préfix du système métrique. Un objet Prefix peut par exemple représenter des "centi" (symbole "c") comme dans "centimètres" (symbole "cm"). La description du paquet javax.units donne une liste des préfix standards du système SI.

Note: this class has a natural ordering that is inconsistent with equals. La méthode compareTo(java.lang.Object) ne compare que le champ amount, tandis que la méthode equals(java.lang.Object) compare tous les champs (name, symbol et amount).

Version:
1.0
Author:
Martin Desruisseaux

Field Summary
 double amount
          Quantité représenté par ce préfix.
 java.lang.String name
          Nom neutre du préfix.
(package private) static WeakHashSet pool
          Banque des objets qui ont été précédemment créés et enregistrés par un appel à la méthode intern().
 java.lang.String symbol
          Symbole du préfix.
 
Constructor Summary
(package private) Prefix(double amount)
          Construit un préfix temporaire.
private Prefix(java.lang.String name, java.lang.String symbol, double amount)
          Construit un nouveau préfix.
 
Method Summary
 int compareTo(java.lang.Object object)
          Compare deux préfix.
 boolean equals(java.lang.Object object)
          Indique si ce préfix est identique à l'objet spécifié.
 java.lang.String getLocalizedName()
          Retourne le nom du préfix dans la langue de l'utilisateur.
static Prefix getPrefix(java.lang.String name, java.lang.String symbol, double amount)
          Construit un nouveau préfix.
 int hashCode()
          Retourne un code représentant ce préfix.
private  Prefix intern()
          Retourne un exemplaire unique de ce préfix.
private  java.lang.Object readResolve()
          Après la lecture d'une unité, vérifie si ce préfix apparaît déjà dans la banque des préfix.
 java.lang.String toString()
          Retourne le symbole du préfix.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

pool

static final WeakHashSet pool
Banque des objets qui ont été précédemment créés et enregistrés par un appel à la méthode intern().


name

public final java.lang.String name
Nom neutre du préfix. Le système SI définit plusieurs noms de préfix, parmi lesquels on trouve "milli", "centi" et "kilo". Certaines unités (notamment des unités du type ScaledUnit) pourront combiner leurs noms avec un nom de préfix. Par exemple le préfix "centi" (symbole "c") pourra être combiné avec les unités "mètres" (symbole "m") pour former les "centimètres" (symbole "cm"). La chaîne name peut être vide, mais ne sera jamais nulle. Notez enfin que name est "language-neutral". Pour obtenir un nom dans la langue de l'utilisateur, utilisez la méthode getLocalizedName().


symbol

public final java.lang.String symbol
Symbole du préfix. La plupart des symboles de préfix n'ont qu'une seule lettre. Il s'agit la plupart du temps de la première lettre de name, parfois en majuscule. Les majuscules et minuscules sont significatifs et très importants. Par exemple le symbole "m" est pour "milli" tandis que le symbole "M" est pour "mega".


amount

public final double amount
Quantité représenté par ce préfix. Pour les préfix SI, cette quantité est toujours une puissance de 10. Par exemple pour les "kilo" (symbole 'k'), la quantité amount est 1000. Cette quantité ne sera jamais NaN ni infinie.

Constructor Detail

Prefix

Prefix(double amount)
Construit un préfix temporaire. Ce constructeur ne sert qu'à effectuer des recherches dans une liste de préfix par PrefixSet.


Prefix

private Prefix(java.lang.String name,
               java.lang.String symbol,
               double amount)
Construit un nouveau préfix.

Parameters:
name - Nom du préfix (par exemple "centi" comme dans "centimètres").
symbol - Symbole du préfix (par exemple "c" pour "centimètres").
amount - Quantité représenté par ce préfix (par exemple 0.01 pour "c").
Method Detail

getPrefix

public static Prefix getPrefix(java.lang.String name,
                               java.lang.String symbol,
                               double amount)
Construit un nouveau préfix.

Parameters:
name - Nom du préfix (par exemple "centi" comme dans "centimètres").
symbol - Symbole du préfix (par exemple "c" pour "centimètres").
amount - Quantité représenté par ce préfix (par exemple 0.01 pour "c").

getLocalizedName

public java.lang.String getLocalizedName()
Retourne le nom du préfix dans la langue de l'utilisateur. Par exemple le préfix "deci" est écrit "déci" en français.


toString

public java.lang.String toString()
Retourne le symbole du préfix. Cette méthode retourne systématiquement le champ symbol.


compareTo

public int compareTo(java.lang.Object object)
Compare deux préfix. Cette méthode compare les quantités amount de façon à permettre un classement des préfix en ordre croissant de quantité. Contrairement à la méthode equals(java.lang.Object), compareTo ne compare pas les noms et symboles des préfix. Ainsi, deux préfix représentant la même quantité mais avec des symboles différents seront considérés égaux par compareTo.

Specified by:
compareTo in interface java.lang.Comparable

equals

public boolean equals(java.lang.Object object)
Indique si ce préfix est identique à l'objet spécifié. Cette méthode retourne true si object est aussi un objet Prefix et si les deux préfix ont les mêmes nom et symbole et représentent la même quantité amount.


hashCode

public int hashCode()
Retourne un code représentant ce préfix.


intern

private final Prefix intern()
Retourne un exemplaire unique de ce préfix. Une banque de préfix, initialement vide, est maintenue de façon interne par la classe Prefix. Lorsque la méthode intern est appelée, elle recherchera un préfix égale à this au sens de la méthode equals(java.lang.Object). Si un tel préfix est trouvé, il sera retourné. Sinon, le préfix this sera ajouté à la banque de données en utilisant une référence faible et cette méthode retournera this.

De cette méthode il s'ensuit que pour deux préfix u et v, la condition u.intern()==v.intern() sera vrai si et seulement si u.equals(v) est vrai.


readResolve

private java.lang.Object readResolve()
                              throws java.io.ObjectStreamException
Après la lecture d'une unité, vérifie si ce préfix apparaît déjà dans la banque des préfix. Si oui, l'exemplaire de la banque sera retourné plutôt que de garder inutilement le préfix courant comme copie.

Throws:
java.io.ObjectStreamException