crit.createCriteria("projekt", "proj");
crit.add(Restrictions.like("proj.titel", "UB-MannheimDigizeit"));
/* alle Prozesse durchlaufen */
for (Iterator<Prozess> iter = crit.list().iterator(); iter.hasNext();) {
Prozess p = iter.next();
if (p.getBenutzerGesperrt() != null) {
Helper.setFehlerMeldung("metadata locked: ", p.getTitel());
} else {
String ppn = bhelp.WerkstueckEigenschaftErmitteln(p, "PPN digital").replace("PPN ", "").replace("PPN", "");
String jahr = bhelp.ScanvorlagenEigenschaftErmitteln(p, "Bandnummer");
String ppnAufBandebene = "PPN" + ppn + "_" + jahr;
Prefs myPrefs = p.getRegelsatz().getPreferences();
try {
Fileformat gdzfile = p.readMetadataFile();
DocStruct dsTop = gdzfile.getDigitalDocument().getLogicalDocStruct();
DocStruct dsFirst = null;
if (dsTop.getAllChildren() != null && dsTop.getAllChildren().size() > 0) {
dsFirst = dsTop.getAllChildren().get(0);
}
MetadataType mdtPpnDigital = ughhelp.getMetadataType(myPrefs, "CatalogIDDigital");
/* digitale PPN korrigieren */
if (dsFirst != null) {
List<? extends Metadata> alleMetadaten = dsFirst.getAllMetadataByType(mdtPpnDigital);
if (alleMetadaten == null || alleMetadaten.size() == 0) {
Metadata md = new Metadata(mdtPpnDigital);
md.setValue(ppnAufBandebene);
dsFirst.addMetadata(md);
}
}
/* Collections korrigieren */
List<String> myKollektionenTitel = new ArrayList<String>();
MetadataType coltype = ughhelp.getMetadataType(myPrefs, "singleDigCollection");
ArrayList<Metadata> myCollections;
if (dsTop.getAllMetadataByType(coltype) != null) {
myCollections = new ArrayList<Metadata>(dsTop.getAllMetadataByType(coltype));
if (myCollections != null && myCollections.size() > 0) {
for (Iterator<Metadata> it = myCollections.iterator(); it.hasNext();) {
Metadata md = it.next();
if (myKollektionenTitel.contains(md.getValue())) {
dsTop.removeMetadata(md);
} else {
myKollektionenTitel.add(md.getValue());
}
}
}
}
if (dsFirst != null && dsFirst.getAllMetadataByType(coltype).size() > 0) {
myKollektionenTitel = new ArrayList<String>();
myCollections = new ArrayList<Metadata>(dsFirst.getAllMetadataByType(coltype));
if (myCollections != null && myCollections.size() > 0) {
for (Iterator<Metadata> it = myCollections.iterator(); it.hasNext();) {
Metadata md = it.next();
if (myKollektionenTitel.contains(md.getValue())) {
dsFirst.removeMetadata(md);
} else {
myKollektionenTitel.add(md.getValue());
}
}
}
}
p.writeMetadataFile(gdzfile);
} catch (ReadException e) {
Helper.setFehlerMeldung("", "ReadException: " + p.getTitel() + " - " + e.getMessage());
myLogger.error("ReadException: " + p.getTitel(), e);
} catch (IOException e) {
Helper.setFehlerMeldung("", "IOException: " + p.getTitel() + " - " + e.getMessage());
myLogger.error("IOException: " + p.getTitel(), e);
} catch (InterruptedException e) {
Helper.setFehlerMeldung("", "InterruptedException: " + p.getTitel() + " - " + e.getMessage());
myLogger.error("InterruptedException: " + p.getTitel(), e);
} catch (PreferencesException e) {
Helper.setFehlerMeldung("", "PreferencesException: " + p.getTitel() + " - " + e.getMessage());
myLogger.error("PreferencesException: " + p.getTitel() + " - " + e.getMessage());
} catch (UghHelperException e) {
Helper.setFehlerMeldung("", "UghHelperException: " + p.getTitel() + " - " + e.getMessage());
myLogger.error("UghHelperException: " + p.getTitel(), e);
} catch (Exception e) {
Helper.setFehlerMeldung("", "Exception: " + p.getTitel() + " - " + e.getMessage());
myLogger.error("Exception: " + p.getTitel(), e);
}
}
}
Helper.setMeldung(null, "", "------------------------------------------------------------------");
Helper.setMeldung(null, "", "PPNs adjusted");