protected void extractSeriesMetadata(YElement parent, CrossrefIdGenerator generator, YElement element, SeriesMetadata seriesMetadata) { List<YName> seriesNames = convertTitles(seriesMetadata.getTitles()); List<YId> seriesIds = new ArrayList<>(); seriesIds.addAll(convertIssns(seriesMetadata.getIssns())); if (StringUtils.isNotBlank(seriesMetadata.getCoden())) { seriesIds.add(new YId(IdSchemaIds.EXT_SCHEME_CODEN, seriesMetadata.getCoden())); } element.getIds().addAll(seriesIds); element.getNames().addAll(seriesNames); String id = generator.generateBookSeriesId(element.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISSN), getDefaultName(element)); element.setId(id); element.addStructure(buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_SERIES)); }
private YElement buildBookFromBookMetadata(BookMetadata bookMetadata, YElement parent, CrossrefIdGenerator generator) { YElement bookElement = new YElement(); bookElement.addStructure(buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_BOOK)); bookElement.getNames().addAll(convertTitles(bookMetadata.getTitles())); bookElement.getContributors().addAll(convert(bookMetadata.getContributors(), bookElement)); bookElement.getDates().addAll(convertDates(bookMetadata.getPublicationDates())); bookElement.getRelations().addAll(convertCitationList(bookMetadata.getCitationList())); bookElement.getIds().addAll(convertIsbns(bookMetadata.getIsbns())); if (bookMetadata.getDoiData() != null) { bookElement.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, bookMetadata.getDoiData().getDoi())); } String id = generator.generateBookId(bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISBN), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_EISBN), getDefaultName(bookElement)); bookElement.setId(id); return bookElement; }
private YElement buildBookFromBookSetMetadata(BookSetMetadata bookSetMetadata, YElement parent, CrossrefIdGenerator generator) { YElement bookElement = new YElement(); bookElement.addStructure(buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_BOOK)); bookElement.getNames().addAll(convertTitles(bookSetMetadata.getTitles())); bookElement.getContributors().addAll(convert(bookSetMetadata.getContributors(), bookElement)); bookElement.getDates().addAll(convertDates(bookSetMetadata.getPublicationDates())); bookElement.getRelations().addAll(convertCitationList(bookSetMetadata.getCitationList())); bookElement.getIds().addAll(convertIsbns(bookSetMetadata.getIsbns())); if (bookSetMetadata.getDoiData() != null) { bookElement.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, bookSetMetadata.getDoiData().getDoi())); } String id = generator.generateBookId(bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISBN), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_EISBN), getDefaultName(bookElement)); bookElement.setId(id); return bookElement; }
private YElement buildBookFromBookSeriesMetadata(BookSeriesMetadata bookSeriesMetadata, YElement parent, CrossrefIdGenerator generator) { YElement bookElement = new YElement(); bookElement.addStructure(buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_BOOK)); bookElement.getNames().addAll(convertTitles(bookSeriesMetadata.getTitles())); bookElement.getContributors().addAll(convert(bookSeriesMetadata.getContributors(), bookElement)); bookElement.getDates().addAll(convertDates(bookSeriesMetadata.getPublicationDates())); bookElement.getRelations().addAll(convertCitationList(bookSeriesMetadata.getCitationList())); bookElement.getIds().addAll(convertIsbns(bookSeriesMetadata.getIsbns())); if (bookSeriesMetadata.getDoiData() != null) { bookElement.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, bookSeriesMetadata.getDoiData().getDoi())); } String id = generator.generateBookId(bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISBN), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_EISBN), getDefaultName(bookElement)); bookElement.setId(id); return bookElement; }
private YElement buildBookElementFromSeries(ProceedingsSeriesMetadata proceedingsSeriesMetadata, YElement parent, CrossrefIdGenerator generator) { YElement bookElement = new YElement(); bookElement.addStructure(buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_BOOK)); bookElement.getNames().add(new YName(proceedingsSeriesMetadata.getProceedingsTitle())); bookElement.getDates().addAll(convertDates(proceedingsSeriesMetadata.getPublicationDates())); bookElement.getIds().addAll(convertIsbns(proceedingsSeriesMetadata.getIsbns())); if (StringUtils.isNotBlank(proceedingsSeriesMetadata.getProceedingsSubject())) { YName subject = new YName(proceedingsSeriesMetadata.getProceedingsSubject()); subject.setType(NameTypes.NM_SUBTITLE); bookElement.addName(subject); } if (proceedingsSeriesMetadata.getDoiData() != null) { bookElement.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, proceedingsSeriesMetadata.getDoiData().getDoi())); } String id = generator.generateBookId(bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISBN), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_EISBN), getDefaultName(bookElement)); bookElement.setId(id); return bookElement; }
@Override public YElement process(Book book, YElement parent, CrossrefIdGenerator generator) { BookSetMetadata bookSetMetadata = book.getBookSetMetadata(); YElement element = new YElement(); SetMetadata setMetadata = bookSetMetadata.getSetMetadata(); List<YName> setNames = convertTitles(setMetadata.getTitles()); element.getIds().addAll(convertIsbns(setMetadata.getIsbns())); element.getNames().addAll(setNames); String id = generator.generateBookSetId(element.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISBN), getDefaultName(element)); element.setId(id); element.addStructure(buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_SERIES)); if (StringUtils.isNotBlank(bookSetMetadata.getLanguage())) { element.addLanguage(YLanguage.byCode(bookSetMetadata.getLanguage())); } return element; }
private YElement buildBookElementFromProceedings(ProceedingsMetadata proceedingsMetadata, YElement conferenceEventElement, YElement seriesElement, CrossrefIdGenerator generator) { YElement bookElement = new YElement(); if (seriesElement == null) { YRelation proceedingsRelation = new YRelation(RelationTypes.RL_PROCEEDINGS_OF, new YId(StringUtils.EMPTY, conferenceEventElement.getId())); bookElement.getRelations().add(proceedingsRelation); bookElement.addStructure(buildStructureFromParent(null, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_BOOK)); } else { bookElement.addStructure(buildStructureFromParent(seriesElement, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_BOOK)); } bookElement.getNames().add(new YName(proceedingsMetadata.getProceedingsTitle())); bookElement.getDates().addAll(convertDates(proceedingsMetadata.getPublicationDates())); bookElement.getIds().addAll(convertIsbns(proceedingsMetadata.getIsbns())); bookElement.getIds().addAll(convertIssns(proceedingsMetadata.getIssns())); if (StringUtils.isNotBlank(proceedingsMetadata.getProceedingsSubject())) { YName subject = new YName(proceedingsMetadata.getProceedingsSubject()); subject.setType(NameTypes.NM_SUBTITLE); bookElement.addName(subject); } if (proceedingsMetadata.getDoiData() != null) { bookElement.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, proceedingsMetadata.getDoiData().getDoi())); } String id = generator.generateBookId(bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISBN), bookElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_EISBN), getDefaultName(bookElement)); bookElement.setId(id); return bookElement; }
private YElement buildChapterElementFromPaper(ConferencePaper conferencePaper, YElement parent, CrossrefIdGenerator generator) { YElement chapterElement = new YElement(); YStructure structure = buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, HierarchyWithLevelIds.EXT_LEVEL_BOOK_CHAPTER); chapterElement.addStructure(structure); chapterElement.getNames().addAll(convertTitles(conferencePaper.getTitles())); chapterElement.getContributors().addAll(convert(conferencePaper.getContributors(), chapterElement)); chapterElement.getDates().addAll(convertDates(conferencePaper.getPublicationDates())); chapterElement.getRelations().addAll(convertCitationList(conferencePaper.getCitationList())); if (conferencePaper.getDoiData() != null) { chapterElement.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, conferencePaper.getDoiData().getDoi())); } updatePages(conferencePaper.getPages(), structure.getCurrent()); String id = generator.generateBookPartId(parent.getId(), "chapter", chapterElement.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), getDefaultName(chapterElement)); chapterElement.setId(id); return chapterElement; }
private YElement buildJournalElement(JournalMetadata journalMetadata, CrossrefIdGenerator generator) { YElement element = new YElement(); YStructure structure = buildStructureFromParent(null, HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL, HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_JOURNAL); element.addStructure(structure); YLanguage language = YLanguage.byCode(journalMetadata.getLanguage()); element.getLanguages().add(language); element.getIds().addAll(convertIssns(journalMetadata.getIssns())); if (StringUtils.isNotBlank(journalMetadata.getCoden())) { element.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_CODEN, journalMetadata.getCoden())); } for (String fullTitle : journalMetadata.getFullTitles()) { element.addName(new YName(fullTitle)); } for (String abbrevTitle : journalMetadata.getAbbrevTitles()) { YName abbrev = new YName(abbrevTitle); abbrev.setType(NameTypes.NM_ABBREVIATION); element.addName(abbrev); } if (journalMetadata.getDoiData() != null) { String doi = journalMetadata.getDoiData().getDoi(); element.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, doi)); } String issn = element.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_ISSN); String journalId = generator.generateJournalId(issn, element.getOneName().getText()); element.setId(journalId); return element; }
@Override public YElement process(Book book, YElement parent, CrossrefIdGenerator generator) { ContentItem contentItem = book.getContentItem(); YElement element = new YElement(); element.getNames().addAll(convertTitles(contentItem.getTitles())); element.getRelations().addAll(convertCitationList(contentItem.getCitationList())); element.getContributors().addAll(convert(contentItem.getContributors(), element)); element.getDates().addAll(convertDates(contentItem.getPublicationDates())); String level = getContentItemLevel(contentItem.getComponentType()); YStructure structure = buildStructureFromParent(parent, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, level); if(contentItem.getLevelSequenceNumber() != null){ structure.getCurrent().setPosition(contentItem.getLevelSequenceNumber().toString()); } else { updatePages(contentItem.getPages(), structure.getCurrent()); } element.addStructure(structure); if (contentItem.getDoiData() != null) { element.getIds().add(new YId(IdSchemaIds.EXT_SCHEME_DOI, contentItem.getDoiData().getDoi())); } String id = generator.generateBookPartId(parent.getId(), contentItem.getComponentType(), element.getFirstIdOrNullIfAny(IdSchemaIds.EXT_SCHEME_DOI), element.getOneName() != null ? element.getOneName().getText() : null); element.setId(id); return element; }
YId yISSN = null; if (parent != null) { String issn = parent.getFirstIdOrNullIfAny(EXT_SCHEME_ISSN);