Note: This page is also available in english.
Änderungshistorie siehe Ende der Seite
HitUpros/LomCoder2.java
HitUpros/LomNumber.java
HitUpros/LomCoderErrors.java
|
Dies sind die elementaren Klassen: Der LomCoder2 stellt die
generischen Methoden zur Verfügung, mit denen jede Ohrmarke unabhängig von
ihrem Land verarbeitet werden kann. Die Klasse greift dann automatisch auf die
länderspezifische Klasse, siehe unten, zu.
Die Erkennung und Umwandlung liefert ein Ergebnis, die dann in einem Objekt
der Klasse LomNumber gespeichert wird - vorausgesetzt, es wird kein
Fehler geliefert. Details über den Fehlercode lassen sich über die Klasse LomCoderErrors
ermitteln.
|
HitUpros/Lom_AT.java
HitUpros/Lom_BE.java
HitUpros/Lom_BG.java
HitUpros/Lom_CH.java
HitUpros/Lom_CY.java
HitUpros/Lom_CZ.java
HitUpros/Lom_DE.java
HitUpros/Lom_DK.java
HitUpros/Lom_EE.java
HitUpros/Lom_EL.java
HitUpros/Lom_ES.java
HitUpros/Lom_FI.java
HitUpros/Lom_FR.java
HitUpros/Lom_HR.java
HitUpros/Lom_HU.java
HitUpros/Lom_IE.java
HitUpros/Lom_IT.java
HitUpros/Lom_LT.java
HitUpros/Lom_LU.java
HitUpros/Lom_LV.java
HitUpros/Lom_MT.java
HitUpros/Lom_NL.java
HitUpros/Lom_PL.java
HitUpros/Lom_PT.java
HitUpros/Lom_RO.java
HitUpros/Lom_SE.java
HitUpros/Lom_SI.java
HitUpros/Lom_SK.java
HitUpros/Lom_UK.java
HitUpros/Lom_DY.java
|
Für jedes der 27 Länder gibt es eine Klasse, die Funktionalität der
Ohrmarkennummern über einheitliche Aufrufe abbildet. Das Kürzel nach dem Lom_
entspricht dem ISO-Standard.
Lom_DY bildet hierbei einen Sonderfall: dies sind Ohrmarken, die
in HIT nicht gespeichert werden können und somit im "DUMMY"-Format
verwendet werden. In HIT gibt es dann dazu eine Übersetzungstabelle.
Anmerkung: Früher wurde Griechenland irrtümlich als GR
gekennzeichnet, es hat aber nach ISO-Norm das Kürzel EL . Im Mai
2004 wurde daher die Klasse umbenannt, ohne jedoch die Funktionalität zu
ändern.
|
HitUpros/LomCountryInterface.java
HitUpros/LomEU.java
HitUpros/LomDate.java
HitUpros/HitException.java
HitUpros/HitHelpers.java
HitUpros/HitSimpleDTS.java
|
LomEU ist die Basisklasse aller oben genannten Länderklassen.
Diese enthält die Standardmethoden, die zum Großteil vorbereitende Aufgaben
(z.B. Normierung der Ohrmarken-Strings etc) für die Länderklassen übernehmen.
Das LomCountryInterface legt die Methoden fest, die jede
Länderklasse zu haben hat.Die Klassen HitHelpers , HitSimpleDTS
und HitException
sind Hilfsklassen und Unterprogrammsammlungen, die HIT-weit verwendet werden und
auch bei den Ohrmarken Verwendung finden. [20040902] Ende August 2004 wurde
HitDate aufgelöst und mit HitHelpers in andere
Klassen, meist HitSimpleDTS , umgelagert.
[20100811]
LomDate wurde für die Konvertierung von Java in andere
Programmiersprachen angelegt. .NET beispielsweise hat keinen Objekttyp
für Datumsangaben und dementsprechend keine exakte Entsprechung zum java.util.Date .
Dies wird mit LomDate simuliert.
[20201021] HitHelpers und HitSimpleDTS sind
optional: löscht man beide Dateien, lässt sich der Source per se compilieren. Die
beiden Klassen enthalten lediglich Anwendungsbeispiele für den LomCoder. |
HitUpros/LomSchafeZiegen.java
HitUpros/LomSchweine.java
|
LomSchafeZiegen und LomSchweine sind Klassen zur
LOM-Prüfung für Schweine und Schafe/Ziegen.
|
HitLom/LomsToCSV.java
HitLom/LomObject.java
HitLom/Demo_LomObject.java
|
Im Package HitLom finden sich zwei Programme und ein Hilfsobjekt.Das Programm LomsToCSV erwartet eine Datei mit Ohrmarken und
gibt -je nach Parameter- eine CSV-Datei aus, in der dann die umgewandelten
Ohrmarken bzw. fehlerhaften Ohrmarken mit Fehlerbeschreibung stehen. Dies kann
in Batch-Jobs zum seriellen Umwandeln verwendet werden. Siehe auch die eigene
Anleitung hierfür.
Das LomObject dient der einfachen Handhabung von Ohrmarken, um
Ohrmarkenmanipulationen als COM oder Dot:NET Object zu ermöglichen. Um die
Anwendung (leicht auf andere Sprachen übertragbar) in Java zu demonstrieren,
wird das Programm Demo_LomObject verwendet.
|
Nachfolgendes Beispiel gilt hauptsächlich für Java und
ähnliche OO-Sprachen.
Um eine Ohrmarke zu prüfen, wird diese über den LomCoder2
und dessen Methode sintEncodeLom() aufgerufen. Da wir aber zwei
Rückgabewerte erwarten (numerische Ohrmarke und Fehlercode), aber nur einen zurückerhalten können, unterstützt LomNumber
die Rückgabe der geprüften und codierten Ohrmarke.
Zuerst wird also ein Objekt von LomNumber
angelegt:
LomNumber objLom = new LomNumber();
Danach wird die generische Klasse LomCoder2 mit
der statischen Methode sintEncodeLom() aufgerufen, welche zwei bzw
drei Parameter erwartet (Ohrmarke als String, das LomNumber -Objekt und
schließlich ggf. ein Datum, zu dem die Ohrmarke geprüft werden soll):
String strLom = "DE0196442853";
int intFehler = LomCoder2.sintEncodeLom(strLom,objLom);
Nach dem Aufruf erhält man eine Fehlernummer und im Objekt objLom
eventuell die codierte (numerische) Ohrmarke. Zur Fehlerbehandlung ist in jedem Fall die
Klasse LomCoderErrors zu Rate zu ziehen: sie liefert über die
Methode sintGetFehlerSchwere() einen 'allgemeineren' Fehlercode
zurück, der der Schwere des HIT-Systems entspricht (d.h. 0=Ok,
1=Hinweis, 2=Nachfrage, 3=Fehler, 4=Panik). Ist die Fehlerschwere 0 oder 1, dann
steht in objLom die codierte Ohrmarke (in numerischer Form). Bei
Fehlerschweren größer 1 wurde nichts codiert und man erhält über die Methode
sstrGetError() die Fehlermeldung zur Fehlernummer.
int intSchwere =
LomCoderErrors.sintGetFehlerSchwere(intFehler);
if (intSchwere > 1) {
String strFehler = LomCoderErrors.sstrGetError(intFehler);
System.err.println("Fehler bei Lom "+strLom+":
"+strFehler);
}
else {
System.out.println(strLom+" = "+objLom.getLom())
}
Um die Ohrmarke in formatierter Form auszugeben, greifen wir
auf die Methode sstrToFormattedString() der Klasse LomCoder2
zurück:
String strFormatiert = LomCoder2.sstrToFormattedString(objLom);
Damit ließe sich obengenannte Beispielohrmarke als DE
01 964 42853 ausgeben.
Möchte man die 15stellige numerische Form einer EU-Ohrmarke
haben, läßt man sich diese aus objLom über getLom()
geben (vorausgesetzt, es gab keinen Fehler):
String strNumerisch = objLom.getLom();
Um für eigene Zwecke die Anwendung zu vereinfachen (z.B.
nach einer Umwandlung in ein COM bzw. Dot.NET-Objekt) gibt es die Klasse LomObject .
Diese faßt das eben beschriebene Procedere in einfache Methoden zusammen:
LomObject objLomcoder = new LomObject();
String strFormatiert = objLomcoder.encodeLom(strLom);
if (objLomcoder.wasError()) {
System.err.println("Fehler: "+objLomcoder.getError());
}
else {
System.out.println(strFormatiert);
}
Erst wird die Ohrmarke via encodeLom() (für die
formatierte Ausgabe) oder decodeLom() (für die numerische Ausgabe)
konvertiert, dann via wasError() geprüft, ob bei der zuletzt
vorangegangenen Konvertierung ein Fehler auftrat. Wenn ja, kann man sich die
Fehlermeldung via getError() holen, anderenfalls hat der Aufruf von
encodeLom() bzw. decodeLom() eine Ohrmarke geliefert.
Man kann auch direkt getError() abholen, ohne wasError()
abgefragt zu haben: bei einer korrekten Konvertierung liefert sie eine leere
Zeichenkette. Möchte man auf die Fehlerbehandlung völlig verzichten (was nicht
anzuraten ist), läßt sich über encodeLom() bzw. decodeLom()
auch erkennen, ob eine Ohrmarke falsch war: sie liefern dann jeweils eine leere Zeichenkette.
Die Zip-Datei enthält nur die Sourcen für die Ohrmarkencodierung.
Wollen Sie diese unverändert in Ihren Java-Programmen verwenden, sollten Sie sich das
Applet-Archiv herunterladen. Dieses können
Sie dann in eigenen Programmen aufrufen, wie oben unter Anwendung
oder unter Vereinfachtung für externe Aufrufe
beschrieben:
Ab
dem 01.05.2004 sind 10 neue Länder (EU-Osterweiterung) dazugekommen (es liegen
aber nicht für alle Länder eine Codiervorschrift vor, so daß für diese eine
15stellige LOM als Vorgabe erwartet wird). Für
detailierte Ausführungen lese man bei den Alpha-Lom-Codierungen
nach.
Ab
dem 01.01.2007 sind zwei neue Länder (BG und RO) dazugekommen.
Zum 01.07.2013 ist Krotatien (HR) der EU beigetreten.
Bei Fehlern oder Anregungen bitte den Autor kontaktieren.
09.07.2018 |
lomcoder.zip aktualisiert |
24.04.2018 |
lomcoder.zip aktualisiert (und umbenannt worden) |
28.04.2015 |
lomcoder3.zip aktualisiert |
10.07.2013 |
lomcoder3.zip aktualisiert, HR dazu |
07.02.2013 |
lomcoder3.zip aktualisiert, RO angepaßt (neue Gebietscodes), Schweine und
Schafe/Ziegen LOMs hinzugefügt. |
01.08.2010 |
lomcoder3.zip aktualisiert, CH dazu. |
22.09.2009 |
lomcoder3.zip aktualisiert, Prüfziffer-Überprüfung bei FI korrigiert. |
12.02.2007 |
lomcoder3.zip aktualisiert, BG und RO hinzugefügt. |
02.09.2004 |
lomcoder3.zip aktualisiert, nachdem in HitUpros einige Klassen und Methoden refaktorisiert wurden. |
02.09.2004 |
Englische Doku dieser Seite ergänzt. |
|