private void ParsenArtikel(DocStruct inStruct, String myLeft, String myRight, boolean istErsterTitel) throws MetadataTypeNotAllowedException,
WrongImportFileException {
// myLogger.debug(myLeft);
// myLogger.debug(myRight);
// myLogger.debug("---");
Metadata md;
MetadataType mdt;
// J: Zeitschrift
// V: Band
// I: Heft
// Y: Jahrgang
// SO: Quelle (fuer uns intern)
// AR: Author (Referenz)
// BR: Biographische Referenz
// AB: Abstract-Review
// DE: Vorlaeufige AN-Nummer (eher fuer uns intern)
// SI: Quellenangabe für Rezension im Zentralblatt
//
/*
* -------------------------------- erledigt
*
* TI: Titel AU: Autor LA: Sprache NH: Namensvariationen CC: MSC 2000 KW: Keywords AN: Zbl und/oder JFM Nummer P: Seiten
*
* --------------------------------
*/
/*
* -------------------------------- Titel --------------------------------
*/
if (myLeft.equals("TI")) {
if (istErsterTitel) {
mdt = this.myPrefs.getMetadataTypeByName("TitleDocMain");
} else {
mdt = this.myPrefs.getMetadataTypeByName("MainTitleTranslated");
}
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- Sprache --------------------------------
*/
if (myLeft.equals("LA")) {
mdt = this.myPrefs.getMetadataTypeByName("DocLanguage");
md = new Metadata(mdt);
md.setValue(myRight.toLowerCase());
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLIdentifier --------------------------------
*/
if (myLeft.equals("AN")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLIdentifier");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLPageNumber --------------------------------
*/
if (myLeft.equals("P")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLPageNumber");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLSource --------------------------------
*/
if (myLeft.equals("SO")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLSource");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLAbstract --------------------------------
*/
if (myLeft.equals("AB")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLAbstract");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLReviewAuthor --------------------------------
*/
if (myLeft.equals("RV")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLReviewAuthor");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLCita --------------------------------
*/
if (myLeft.equals("CI")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLCita");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLTempID --------------------------------
*/
if (myLeft.equals("DE")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLTempID");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLReviewLink --------------------------------
*/
if (myLeft.equals("SI")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLReviewLink");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- ZBLIntern --------------------------------
*/
if (myLeft.equals("XX")) {
mdt = this.myPrefs.getMetadataTypeByName("ZBLIntern");
md = new Metadata(mdt);
md.setValue(myRight);
inStruct.addMetadata(md);
return;
}
/*
* -------------------------------- Keywords --------------------------------
*/
if (myLeft.equals("KW")) {
StringTokenizer tokenizer = new StringTokenizer(myRight, ";");
while (tokenizer.hasMoreTokens()) {
md = new Metadata(this.myPrefs.getMetadataTypeByName("Keyword"));
String myTok = tokenizer.nextToken();
md.setValue(myTok.trim());
inStruct.addMetadata(md);
}
return;
}
/*
* -------------------------------- Autoren als Personen --------------------------------
*/
if (myLeft.equals("AU")) {
StringTokenizer tokenizer = new StringTokenizer(myRight, ";");
while (tokenizer.hasMoreTokens()) {
Person p = new Person(this.myPrefs.getMetadataTypeByName("ZBLAuthor"));
String myTok = tokenizer.nextToken();
if (myTok.indexOf(",") == -1) {
throw new WrongImportFileException("Parsingfehler: Vorname nicht mit Komma vom Nachnamen getrennt ('" + myTok + "')");
}
p.setLastname(myTok.substring(0, myTok.indexOf(",")).trim());
p.setFirstname(myTok.substring(myTok.indexOf(",") + 1, myTok.length()).trim());
p.setRole("ZBLAuthor");
inStruct.addPerson(p);
}
return;
}
/*
* -------------------------------- AutorVariationen als Personen --------------------------------
*/
if (myLeft.equals("NH")) {
StringTokenizer tokenizer = new StringTokenizer(myRight, ";");
while (tokenizer.hasMoreTokens()) {
Person p = new Person(this.myPrefs.getMetadataTypeByName("AuthorVariation"));
String myTok = tokenizer.nextToken();
if (myTok.indexOf(",") == -1) {
throw new WrongImportFileException("Parsingfehler: Vorname nicht mit Komma vom Nachnamen getrennt ('" + myTok + "')");
}
p.setLastname(myTok.substring(0, myTok.indexOf(",")).trim());
p.setFirstname(myTok.substring(myTok.indexOf(",") + 1, myTok.length()).trim());
p.setRole("AuthorVariation");
inStruct.addPerson(p);
}
return;
}
/*
* -------------------------------- MSC 2000 - ClassificationMSC --------------------------------
*/
if (myLeft.equals("CC")) {
StringTokenizer tokenizer = new StringTokenizer(myRight);
while (tokenizer.hasMoreTokens()) {
md = new Metadata(this.myPrefs.getMetadataTypeByName("ClassificationMSC"));
String myTok = tokenizer.nextToken();
md.setValue(myTok.trim());
inStruct.addMetadata(md);
}
return;
}
}