Search in sources :

Example 1 with Sigla

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()));
    }
}
Also used : Sigla(cz.mzk.recordmanager.server.model.Sigla) Subfield(org.marc4j.marc.Subfield)

Example 2 with Sigla

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())));
        }
    }
}
Also used : Sigla(cz.mzk.recordmanager.server.model.Sigla)

Aggregations

Sigla (cz.mzk.recordmanager.server.model.Sigla)2 Subfield (org.marc4j.marc.Subfield)1