/*
* -------------------------------- Vorbereitung der Dokumentenstruktur --------------------------------
*/
DigitalDocument dd = new DigitalDocument();
DocStructType dst = this.myPrefs.getDocStrctTypeByName("Periodical");
DocStruct dsPeriodical = dd.createDocStruct(dst);
dst = this.myPrefs.getDocStrctTypeByName("PeriodicalVolume");
DocStruct dsPeriodicalVolume = dd.createDocStruct(dst);
dsPeriodical.addChild(dsPeriodicalVolume);
/*
* -------------------------------- alle Zeilen durchlaufen --------------------------------
*/
while ((line = reader.readLine()) != null) {
// myLogger.debug(line);
/*
* -------------------------------- wenn die Zeile leer ist, ist es das Ende eines Absatzes --------------------------------
*/
if (line.length() == 0) {
istAbsatz = false;
/* wenn die Zeile nicht leer ist, den Inhalt prüfen */
} else {
/* prüfen ob der String korrekte xml-Zeichen enth�lt */
String xmlTauglich = xmlTauglichkeitPruefen(line);
if (xmlTauglich.length() > 0) {
throw new WrongImportFileException("Parsingfehler (nicht druckbares Zeichen) der Importdatei in der Zeile <br/>" + xmlTauglich);
}
/* wenn es gerade ein neuer Absatz ist, diesen als neuen Artikel in die Liste übernehmen */
if (!istAbsatz) {
DocStructType dstLocal = this.myPrefs.getDocStrctTypeByName("Article");
DocStruct ds = dd.createDocStruct(dstLocal);
listArtikel.add(ds);
// myLogger.debug("--------------- neuer Artikel ----------------");
istAbsatz = true;
istErsterTitel = true;
}
/* Position des Trennzeichens ermitteln */
int posTrennzeichen = line.indexOf(this.Trennzeichen);
/* wenn kein Trennzeichen vorhanden, Parsingfehler */
if (posTrennzeichen == -1) {
myLogger.error("Import() - Parsingfehler (kein Doppelpunkt) der Importdatei in der Zeile <br/>" + HtmlTagsMaskieren(line));
throw new WrongImportFileException("Parsingfehler (kein Doppelpunkt) der Importdatei in der Zeile <br/>"
+ HtmlTagsMaskieren(line));
} else {
String myLeft = line.substring(0, posTrennzeichen).trim();
String myRight = line.substring(posTrennzeichen + 1, line.length()).trim();
ParsenArtikel(listArtikel.getLast(), myLeft, myRight, istErsterTitel);
/* wenn es ein Titel war, ist der nächste nicht mehr der erste Titel */
if (myLeft.equals("TI")) {
istErsterTitel = false;
}
/* wenn es gerade der Zeitschriftenname ist, die Zeitschrift benennen */
if (myLeft.equals("J")) {
ParsenAllgemein(dsPeriodical, myLeft, myRight);
}
/* wenn es gerade eine Jahresangabe ist, dann für den aktuellen Band */
if (myLeft.equals("Y")) {
ParsenAllgemein(dsPeriodicalVolume, myLeft, myRight);
}
/* wenn es gerade eine Jahresangabe ist, dann für den aktuellen Band */
if (myLeft.equals("V")) {
ParsenAllgemein(dsPeriodicalVolume, myLeft, myRight);
}
/*
* wenn es gerade die Heftnummer ist, dann jetzt dem richtigen Heft zuordnen und dieses ggf. noch vorher anlegen
*/
if (myLeft.equals("I")) {
DocStruct dsPeriodicalIssue = ParsenHeftzuordnung(dsPeriodicalVolume, myRight, dd);
dsPeriodicalIssue.addChild(listArtikel.getLast());
}
}
}
}
/*
* -------------------------------- physischer Baum (Seiten) --------------------------------
*/
dst = this.myPrefs.getDocStrctTypeByName("BoundBook");
DocStruct dsBoundBook = dd.createDocStruct(dst);
/*
* -------------------------------- jetzt die Gesamtstruktur bauen und in xml schreiben --------------------------------
*/
// DigitalDocument dd = new DigitalDocument();