Search in sources :

Example 1 with Issn

use of cz.mzk.recordmanager.server.model.Issn in project RecordManager2 by moravianlibrary.

the class ISSNUtilsTest method createIssnObjectTest.

@Test
public void createIssnObjectTest() {
    Issn issn = new Issn();
    issn.setIssn("0430-859X");
    issn.setOrderInRecord(1L);
    issn.setNote("note");
    Assert.assertEquals(Issn.create("0430-859X", 1L, "note"), issn);
}
Also used : Issn(cz.mzk.recordmanager.server.model.Issn) Test(org.testng.annotations.Test)

Example 2 with Issn

use of cz.mzk.recordmanager.server.model.Issn in project RecordManager2 by moravianlibrary.

the class HashingDedupKeyParser method computeHashValue.

/**
 * Compute SHA1 hash of deduplication keys from given {@link DedupKeysencapsulator}
 * @param encapsulator
 * @return
 */
protected String computeHashValue(final DedupKeysencapsulator encapsulator) {
    try {
        // change of hash function also requires changes in database row
        MessageDigest md = MessageDigest.getInstance("SHA-1");
        for (Title t : encapsulator.getTitles()) {
            md.update(t.getTitleStr().getBytes("utf-8"));
        }
        for (Isbn i : encapsulator.getIsbns()) {
            md.update(i.getIsbn().byteValue());
        }
        for (Issn i : encapsulator.getIssns()) {
            md.update(i.getIssn().getBytes());
        }
        for (Ismn i : encapsulator.getIsmns()) {
            md.update(i.getIsmn().byteValue());
        }
        for (Cnb c : encapsulator.getCnbs()) {
            md.update(c.getCnb().getBytes());
        }
        if (encapsulator.getPublicationYear() != null) {
            md.update(encapsulator.getPublicationYear().byteValue());
        }
        for (HarvestedRecordFormat hrfe : encapsulator.getFormats()) {
            md.update(hrfe.getName().getBytes());
        }
        if (encapsulator.getAuthorAuthKey() != null) {
            md.update(encapsulator.getAuthorAuthKey().getBytes());
        }
        if (encapsulator.getAuthorString() != null) {
            md.update(encapsulator.getAuthorString().getBytes());
        }
        if (encapsulator.getScale() != null) {
            md.update(encapsulator.getScale().byteValue());
        }
        if (encapsulator.getUuid() != null) {
            md.update(encapsulator.getUuid().getBytes());
        }
        if (encapsulator.getPages() != null) {
            md.update(encapsulator.getPages().byteValue());
        }
        if (encapsulator.getIssnSeries() != null) {
            md.update(encapsulator.getIssnSeries().getBytes());
        }
        if (encapsulator.getIssnSeriesOrder() != null) {
            md.update(encapsulator.getIssnSeriesOrder().getBytes());
        }
        for (Oclc o : encapsulator.getOclcs()) {
            md.update(o.getOclcStr().getBytes());
        }
        for (String l : encapsulator.getLanguages()) {
            md.update(l.getBytes());
        }
        if (encapsulator.getClusterId() != null) {
            md.update(encapsulator.getClusterId().getBytes());
        }
        if (encapsulator.getRaw001Id() != null) {
            md.update(encapsulator.getRaw001Id().getBytes());
        }
        if (encapsulator.getSourceInfoT() != null) {
            md.update(encapsulator.getSourceInfoT().getBytes());
        }
        if (encapsulator.getSourceInfoX() != null) {
            md.update(encapsulator.getSourceInfoX().getBytes());
        }
        if (encapsulator.getSourceInfoG() != null) {
            md.update(encapsulator.getSourceInfoG().getBytes());
        }
        for (Ean ean : encapsulator.getEans()) {
            md.update(ean.getEan().byteValue());
        }
        for (PublisherNumber publisherNumber : encapsulator.getPublisherNumbers()) {
            md.update(publisherNumber.getPublisherNumber().getBytes("utf-8"));
        }
        for (ShortTitle st : encapsulator.getShortTitles()) {
            md.update(st.getShortTitleStr().getBytes("utf-8"));
        }
        byte[] hash = md.digest();
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    } catch (NoSuchAlgorithmException e) {
    // should never be thrown, SHA-1 is required by Java specification
    } catch (UnsupportedEncodingException uee) {
        throw new DedupKeyParserException("Uncoding problems in hash computation", uee);
    }
    return "";
}
Also used : Issn(cz.mzk.recordmanager.server.model.Issn) Title(cz.mzk.recordmanager.server.model.Title) ShortTitle(cz.mzk.recordmanager.server.model.ShortTitle) Ismn(cz.mzk.recordmanager.server.model.Ismn) UnsupportedEncodingException(java.io.UnsupportedEncodingException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) Oclc(cz.mzk.recordmanager.server.model.Oclc) Ean(cz.mzk.recordmanager.server.model.Ean) Isbn(cz.mzk.recordmanager.server.model.Isbn) ShortTitle(cz.mzk.recordmanager.server.model.ShortTitle) Cnb(cz.mzk.recordmanager.server.model.Cnb) HarvestedRecordFormat(cz.mzk.recordmanager.server.model.HarvestedRecordFormat) MessageDigest(java.security.MessageDigest) PublisherNumber(cz.mzk.recordmanager.server.model.PublisherNumber)

Example 3 with Issn

use of cz.mzk.recordmanager.server.model.Issn in project RecordManager2 by moravianlibrary.

the class MetadataMarcRecord method getISSNs.

@Override
public List<Issn> getISSNs() {
    List<Issn> results = new ArrayList<>();
    Long issnCounter = 0L;
    Issn issn;
    for (DataField df : underlayingMarc.getDataFields("022")) {
        try {
            issn = ISSNUtils.createIssn(df);
        } catch (NoDataException nde) {
            continue;
        } catch (NumberFormatException nfe) {
            logger.info(String.format("Invalid ISSN: %s", nfe.getMessage()));
            continue;
        }
        issn.setOrderInRecord(++issnCounter);
        results.add(issn);
    }
    return results;
}
Also used : DataField(org.marc4j.marc.DataField) Issn(cz.mzk.recordmanager.server.model.Issn) ArrayList(java.util.ArrayList) NoDataException(cz.mzk.recordmanager.server.util.identifier.NoDataException)

Example 4 with Issn

use of cz.mzk.recordmanager.server.model.Issn in project RecordManager2 by moravianlibrary.

the class MetadataDublinCoreRecord method getISSNs.

@Override
public List<Issn> getISSNs() {
    List<Issn> results = new ArrayList<>();
    Long issnCounter = 0L;
    Matcher matcher;
    for (String identifier : dcRecord.getIdentifiers()) {
        String rawIssnStr = "";
        if ((matcher = DC_ISSN_PATTERN.matcher(identifier)).find())
            rawIssnStr = matcher.group(1);
        else if (!DC_IDENTIFIER_PATTERN.matcher(identifier).matches())
            rawIssnStr = identifier;
        String validIssn;
        try {
            validIssn = ISSNUtils.getValidIssnThrowing(rawIssnStr);
        } catch (NoDataException nde) {
            continue;
        } catch (NumberFormatException nfe) {
            logger.info(String.format("Invalid ISSN: %s", rawIssnStr));
            continue;
        }
        results.add(Issn.create(validIssn, ++issnCounter, ""));
    }
    return results;
}
Also used : Matcher(java.util.regex.Matcher) Issn(cz.mzk.recordmanager.server.model.Issn) ArrayList(java.util.ArrayList) NoDataException(cz.mzk.recordmanager.server.util.identifier.NoDataException)

Example 5 with Issn

use of cz.mzk.recordmanager.server.model.Issn in project RecordManager2 by moravianlibrary.

the class HarvestedRecordDAOHibernate method dropDedupKeys.

@Override
public void dropDedupKeys(HarvestedRecord hr) {
    if (hr == null || hr.getId() == null) {
        return;
    }
    Session session = sessionFactory.getCurrentSession();
    // don't delete keys for not managed entities
    if (!session.contains(hr)) {
        System.out.println("NOT CONT");
        return;
    }
    hr.setAuthorAuthKey(null);
    hr.setAuthorString(null);
    hr.setClusterId(null);
    hr.setPages(null);
    hr.setPublicationYear(null);
    hr.setRaw001Id(null);
    hr.setScale(null);
    hr.setUuid(null);
    hr.setSourceInfoT(null);
    hr.setSourceInfoX(null);
    hr.setSourceInfoG(null);
    hr.setIssnSeries(null);
    hr.setIssnSeriesOrder(null);
    hr.setWeight(null);
    List<Title> titles = hr.getTitles();
    hr.setTitles(new ArrayList<>());
    for (Title t : titles) {
        session.delete(t);
    }
    List<ShortTitle> shortTitles = hr.getShortTitles();
    hr.setShortTitles(new ArrayList<>());
    for (ShortTitle st : shortTitles) {
        session.delete(st);
    }
    List<Isbn> isbns = hr.getIsbns();
    hr.setIsbns(new ArrayList<>());
    for (Isbn i : isbns) {
        session.delete(i);
    }
    List<Issn> issns = hr.getIssns();
    hr.setIssns(new ArrayList<>());
    for (Issn i : issns) {
        session.delete(i);
    }
    List<Ismn> ismns = hr.getIsmns();
    hr.setIsmns(new ArrayList<>());
    for (Ismn i : ismns) {
        session.delete(i);
    }
    List<Oclc> oclcs = hr.getOclcs();
    hr.setOclcs(new ArrayList<>());
    for (Oclc o : oclcs) {
        session.delete(o);
    }
    List<Cnb> cnbs = hr.getCnb();
    hr.setCnb(new ArrayList<>());
    for (Cnb c : cnbs) {
        session.delete(c);
    }
    List<Ean> eans = hr.getEans();
    hr.setEans(new ArrayList<>());
    for (Ean ean : eans) {
        session.delete(ean);
    }
    List<HarvestedRecordFormat> physicalFormats = hr.getPhysicalFormats();
    hr.getPhysicalFormats().clear();
    for (HarvestedRecordFormat hrf : physicalFormats) {
        session.delete(hrf);
    }
    hr.setLanguages(new ArrayList<>());
    session.update(hr);
    session.flush();
}
Also used : Issn(cz.mzk.recordmanager.server.model.Issn) Title(cz.mzk.recordmanager.server.model.Title) ShortTitle(cz.mzk.recordmanager.server.model.ShortTitle) Ismn(cz.mzk.recordmanager.server.model.Ismn) Oclc(cz.mzk.recordmanager.server.model.Oclc) Ean(cz.mzk.recordmanager.server.model.Ean) ShortTitle(cz.mzk.recordmanager.server.model.ShortTitle) Isbn(cz.mzk.recordmanager.server.model.Isbn) Cnb(cz.mzk.recordmanager.server.model.Cnb) HarvestedRecordFormat(cz.mzk.recordmanager.server.model.HarvestedRecordFormat) Session(org.hibernate.Session)

Aggregations

Issn (cz.mzk.recordmanager.server.model.Issn)5 Cnb (cz.mzk.recordmanager.server.model.Cnb)2 Ean (cz.mzk.recordmanager.server.model.Ean)2 HarvestedRecordFormat (cz.mzk.recordmanager.server.model.HarvestedRecordFormat)2 Isbn (cz.mzk.recordmanager.server.model.Isbn)2 Ismn (cz.mzk.recordmanager.server.model.Ismn)2 Oclc (cz.mzk.recordmanager.server.model.Oclc)2 ShortTitle (cz.mzk.recordmanager.server.model.ShortTitle)2 Title (cz.mzk.recordmanager.server.model.Title)2 NoDataException (cz.mzk.recordmanager.server.util.identifier.NoDataException)2 ArrayList (java.util.ArrayList)2 PublisherNumber (cz.mzk.recordmanager.server.model.PublisherNumber)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 MessageDigest (java.security.MessageDigest)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 Matcher (java.util.regex.Matcher)1 Session (org.hibernate.Session)1 DataField (org.marc4j.marc.DataField)1 Test (org.testng.annotations.Test)1