Telefonnummer

open class Telefonnummer @JvmOverloads constructor(nummer: String, validator: KSimpleValidator<String> = VALIDATOR) : Text

Die Klasse Telefonnummer steht fuer alle Arten von Rufnummern im Telefon-Netz wie Fesetnetznummer, Faxnummer oder Mobilfunknummer. Ueblicherweise bestehen Telefonnummern aus

  • Laenderkennzahl (LKz),

  • Ortsnetzkennzahl (ONKz) bzw. die eigentliche Vorwahl

  • Teilnehmerrufnummer (RufNr),

  • Durchwahl (optional).

Die Telefonnummer +49 30 12345-67 hat die Laenderkennzahl 49 (Deutschland), die Vorwahl 030 (Berlin), die Teilnehmerrufnummer 12345 und die Durchwahl

Frueher waren Telefon-Netz und Computer-Netzwerke strikt getrennt. Inwischen wachsen diese beiden Netze immer mehr zusammen und unterscheiden sich nur noch durch das Netzwerkprotokoll. Deswegen ist diese Klasse im gleichen Package 'net' wie die EMailAdresse zu finden und nicht in 'comm' (fuer Kommunikation), wie urspruenglich geplant.

Fuer eine effizente Speicherung von Telefonnummern kann man sich die Telefonnummer ueber #toPackedDecimal in PackedDecimal umwandeln. Damit laesst sich der Speicherbedarf fuer Telefonnummern halbieren. Allerdings lassen sich Klammern wie in "+49 (0)811 32 16 8" nicht als PackedDecimal abspeichern - diese gehen bei der Konvertierung verloren.

Author

oboehm

Since

0.5 (04.09.2017)

Constructors

Link copied to clipboard
constructor(uri: URI)

Eine Telefonnummer lasesst sich auch ueber eine URI kreieren. Der RFC 3966 schlaegt dabei "tel:" als Schema vor.

constructor(nummer: String, validator: KSimpleValidator<String> = VALIDATOR)

Types

Link copied to clipboard
object Companion
Link copied to clipboard
class Validator(pattern: Pattern) : KSimpleValidator<String>

Die Klasse Validator validiert die Schreibweise von Telefonnummern. Urspruenglich war dieser Validator in einer eigenen Klasse ('TelefonnummerValidator' ausgegegliedert. Mit v2.2 wurde der Validator analog zu den anderen Validatoren zur betroffenen Klasse als innere Klasse dazugesteckt.

Properties

Link copied to clipboard
Link copied to clipboard

Liefert die Telefonnummer ohne Laenderkennzahl, dafuer mit Vorwahl inklusive fuehrender Null.

Link copied to clipboard

Die Laenderkennzahl (LKZ) ist die Vorwahl, die man fuer Telefonate ins Ausland waehlen muss. Fuer Deutschland ist die LKZ "+49*, d.h. wenn man von Oesterreich nach Deutschland waehlen muss, muss man "0049" vorwaehlen.

Link copied to clipboard

Liefert die Nummer der Ortsvermittlungsstelle, d.h. die Telefonnummer ohne Vorwahl und Laenderkennzahl.

Link copied to clipboard

Liefert die Vorwahl oder auch Ortskennzahl (ONKz).

Functions

Link copied to clipboard
open operator override fun compareTo(other: Text): Int
Link copied to clipboard
fun convertTo(toEncoding: Charset, fromEncoding: Charset): Text
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open operator override fun equals(other: Any?): Boolean

Beim Vergleich zweier Telefonnummern spielen Trennzeichen keine Rolle. Hier sind nur die Nummern relevant.

Link copied to clipboard
fun equalsIgnoreCase(other: Text): Boolean
Link copied to clipboard
Link copied to clipboard
fun equalsIgnoreUmlaute(other: Text): Boolean
Link copied to clipboard
fun getDistanz(other: Text): Int
fun getDistanz(other: String): Int
Link copied to clipboard
open override fun hashCode(): Int

Wenn zwei Telefonnummern gleich sind, muessen sie auch den gleichen Hashcode liefern.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun isValid(): Boolean
Link copied to clipboard
fun replaceUmlaute(): Text
Link copied to clipboard

Gibt den String nach DIN 5008 aus. Die Nummern werden dabei funktionsbezogen durch Leerzeichen und die Durchwahl mit Bindestrich abgetrennt.

Link copied to clipboard

Die "E.123" ist eine Empfehlung der Internationalen Fernmeldeunion. Dabei werden die einzelnen Bestandteile (Laenderkennzeichen, Vorwahl und Rufnummer) durch Leerzeichen gruppiert.

Link copied to clipboard
fun toLowerCase(): Text
Link copied to clipboard
open override fun toMap(): Map<String, Any>
Link copied to clipboard
fun toPackedDecimal(): PackedDecimal

Fuer eine kompaktere interne Speicherung von Telefonnummer kann auf PackedDecimal zurueckgegriffen werden, um den Speicherverbrauch zu halbieren. Allerdings koennen damit mit PackedDecimal keine Klammern abgespeichert werden, d.h. "+49 (0)811 32 16 8" wird als "+49 0811 32 16 8" abgespeichert.

Link copied to clipboard
fun toPrintable(): Text
Link copied to clipboard

Stellt eine Telefonnummer in verkuerzter Schreibweise ohne Leerzeichen und Trennzeichen dar.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
fun toUpperCase(): Text
Link copied to clipboard
fun toURI(): URI

Nach RFC 3966 wird die Telefonnummer wie E.123 dargestellt, jedoch mit Bindestrich statt Leerzeichen.