use of cz.mzk.recordmanager.server.model.Sigla in project RecordManager2 by moravianlibrary.
the class DefaultMarcInterceptor method processField996.
/**
* add item id to field 996
*
* @param df
*/
protected void processField996(DataField df) {
if (df.getTag().equals("996")) {
String itemIdType = conf.getItemId();
for (Subfield sf : df.getSubfields(ITEM_ID_SUBFIELD_CHAR)) {
df.removeSubfield(sf);
}
boolean missing = false;
String sigla;
List<String> getSiglas = null;
getSiglas = SIGLA_MAPPING.get(conf.getId().toString());
if (getSiglas != null && !getSiglas.isEmpty()) {
sigla = getSiglas.get(0);
} else {
List<Sigla> siglas = conf.getSiglas();
sigla = !siglas.isEmpty() ? siglas.get(0).getUniqueId().getSigla() : "";
}
if (itemIdType.equals("aleph")) {
String j = df.getSubfield('j') != null ? df.getSubfield('j').getData().toUpperCase() : "";
String w = df.getSubfield('w') != null ? df.getSubfield('w').getData() : "";
String u = df.getSubfield('u') != null ? df.getSubfield('u').getData() : "";
if (j.equals("") || w.equals("") || u.equals(""))
missing = true;
else if (recordId != null)
df.addSubfield(MARC_FACTORY.newSubfield(ITEM_ID_SUBFIELD_CHAR, sigla + "." + recordId.replace("-", "") + "." + j + w + u));
} else if (itemIdType.equals("tre")) {
String w = df.getSubfield('w') != null ? df.getSubfield('w').getData() : "";
if (w.equals(""))
missing = true;
else
df.addSubfield(MARC_FACTORY.newSubfield(ITEM_ID_SUBFIELD_CHAR, sigla + "." + w));
} else if (itemIdType.equals("nlk")) {
String a = df.getSubfield('a') != null ? df.getSubfield('a').getData() : "";
if (a.equals(""))
missing = true;
else
df.addSubfield(MARC_FACTORY.newSubfield(ITEM_ID_SUBFIELD_CHAR, sigla + "." + a));
} else if (itemIdType.equals("svkul")) {
String b = df.getSubfield('b') != null ? df.getSubfield('b').getData() : "";
if (b.equals(""))
missing = true;
else {
if (b.startsWith("31480") && b.length() >= 8) {
b = b.substring(5);
}
df.addSubfield(MARC_FACTORY.newSubfield(ITEM_ID_SUBFIELD_CHAR, sigla + "." + b));
}
} else if (itemIdType.equals("other")) {
String b = df.getSubfield('b') != null ? df.getSubfield('b').getData() : "";
if (b.equals(""))
missing = true;
else
df.addSubfield(MARC_FACTORY.newSubfield(ITEM_ID_SUBFIELD_CHAR, sigla + "." + b));
}
if (missing)
logger.info(String.format("Missing data for itemId: import_confid=%d, 001=%s", conf.getId(), record.getControlNumber()));
}
}
use of cz.mzk.recordmanager.server.model.Sigla in project RecordManager2 by moravianlibrary.
the class GenerateSkatKeysWriter method beforeStep.
@Override
public void beforeStep(StepExecution stepExecution) {
siglas = new HashMap<>();
Sigla sigla;
List<Long> import_conf;
for (Object obj : sessionFactory.openSession().createCriteria(Sigla.class).list()) {
sigla = (Sigla) obj;
if ((import_conf = siglas.remove(sigla.getUniqueId().getSigla())) != null) {
import_conf.add(sigla.getUniqueId().getImportConfId());
siglas.put(sigla.getUniqueId().getSigla(), import_conf);
} else {
siglas.put(sigla.getUniqueId().getSigla(), new ArrayList<>(Collections.singletonList(sigla.getUniqueId().getImportConfId())));
}
}
}