/** * @param hierarchy the hierarchy identifier for the created elements */ public void setHierarchy(String hierarchy) { super.setHierarchy(hierarchy); this.eudmlFactory = new EudmlYElementFactory(hierarchy); }
/** * Creates an element in the hierarchy specified by the <code>hierarchy</code> property. * * @param level level for the element in the hierarchy * @param name name to use as the canonical name of the element * @param parent parent for the element in the hierarchy * @param id eudml id * @return the created element */ public YElement element(String level, YName name, YElement parent, String id) { return eudmlFactory.element(level, name, parent, id); }
/** * Creates an element in the hierarchy specified by the <code>hierarchy</code> property. * * @param level level for the element in the hierarchy * @param name name to use as the canonical name of the element * @param parent parent for the element in the hierarchy * @param id eudml id * @return the created element */ public YElement element(String level, YName name, YElement parent, String id) { return element(getDefaultHierarchy(), level, name, parent, id); }
throw ex; return factory.element(EXT_LEVEL_JOURNAL_YEAR, y.canonicalName(YLanguage.NoLinguisticContent, StringUtils.isNotBlank(yearLocNam)?yearLocNam:yearIssueNam), parent, idValue);
private static NlmBookProcessor createProcessor() { YObjects y = new YObjects("[unknown]"); EudmlYElementFactory factory = new EudmlYElementFactory(); UpdateElement updater = new UpdateElement(y); UpdateArticle articleUpdater = new UpdateArticle(y); return new NlmBookProcessor(y, factory, updater, articleUpdater); }
/** * Processes <code>article-meta</code> metadata creating a year element. * * @param ameta * the metadata element to extract volume info from * @param parent * parent element for the created element * @return the created volume element */ private YElement processVolume(org.jdom.Element ameta, YElement parent) { Element volumeId = JDOMHelper.getChildWithGivenAttributeValue(ameta, "volume-id", "pub-id-type", "eudml-id"); String name=JDOMHelper.getTextTrim(JDOMHelper.optDescendant(ameta, "volume")); if (null==volumeId && StringUtils.isBlank(name)) { return null; } String idValue; try { idValue = getIdGenerator().getVolumeId(parent==null?null:parent.getId(), name , volumeId==null?null:volumeId.getValue()); } catch (NullPointerException ex) { log.error("Missing id for volume."); throw ex; } return factory.element(EXT_LEVEL_JOURNAL_VOLUME, y.canonicalName(YLanguage.NoLinguisticContent, name), parent, idValue); }
public NlmToYTransformer() { this.y = new YObjects("[unknown2]"); this.factory = new EudmlYElementFactory(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL); this.updater = new UpdateElement(y); this.articleUpdater = new UpdateArticle(y); this.bookProcessor = new NlmBookProcessor(y, factory, updater, articleUpdater); }
/** * Processes <code>journal-meta</code> metadata creating a publisher * element. * * @param jmeta * the metadata element to extract publisher info from * @return the created publisher element */ private YElement processPublisher(org.jdom.Element jmeta,List<YExportable> list, boolean addPublisher) { YName pname = y.canonicalName(YLanguage.Undetermined, JDOMHelper.getTextTrim(JDOMHelper.optDescendant(jmeta, "publisher", "publisher-name"))); // TODO: add publisher-localization String id=getIdGenerator().getPublisherId(pname.getText()); YInstitution inst=new YInstitution(); String instId=IdPrefixes.EXT_PREFIX_INSTITUTION+idgen.generateIdSuffix((pname.getText().toLowerCase().replaceAll("\\s", " ").replaceAll(" +", " ").trim())); inst.setId(instId); inst.addName(pname); if (addPublisher) { list.add(inst); } return factory.element(EXT_LEVEL_JOURNAL_PUBLISHER, pname, ROOT ,id).addContributor( new YContributor(CR_PUBLISHER, true).addName(pname).setIdentity(instId)); }
throw ex; YElement issue = factory.element(EXT_LEVEL_JOURNAL_ISSUE, y.canonicalName(YLanguage.NoLinguisticContent, name), parent, idValue); List<org.jdom.Element> aids = JDOMHelper.getChildren(ameta, "issue-id");
public YElement processBookPartElement(Element jbookPart, YElement parent, NlmIdGenerator idGenerator) { Element bpmeta = JDOMHelper.optDescendant(jbookPart, "book-part-meta"); YName bookPartName = y.canonicalName(YLanguage.Undetermined, JDOMHelper.getTextTrim(JDOMHelper.optDescendant(bpmeta, "title-group", "title"))); Element eudmlIdEl = JDOMHelper.getChildWithGivenAttributeValue(jbookPart, "book-part-id", "pub-id-type", "eudml-id"); String eudmlId=eudmlIdEl==null?null:eudmlIdEl.getValue(); String id=idGenerator.getBookPartId(eudmlId, bookPartName.getText(), parent); YElement bookPart = factory.element(HierarchyWithLevelIds.EXT_HIERARCHY_BOOK, NlmToYConstants.EXT_LEVEL_BOOK_BOOKPART, bookPartName, parent, id); updater.updateElementIds(bpmeta, bookPart, "book-part-id"); updater.updateElementContentLinks(bpmeta, bookPart); updater.updateElementPages(bpmeta, bookPart, HierarchyWithLevelIds.EXT_HIERARCHY_BOOK);//pages updatePartType(jbookPart, bookPart); return bookPart; }
try { idValue = journalId.getValue(); YElement journal = factory.element(EXT_LEVEL_JOURNAL_JOURNAL, journalCanName, parent, idValue);
/** * Mbook is eudml only so we expect to have eudml id * @param mbmeta nlm book element * @param hierarchy hierachy to set * @param level to set * @param idGenerator - generator for ids * @return generated yelement */ public YElement processMBookElement(Element mbmeta, String hierarchy, String level, NlmIdGenerator idGenerator) { org.jdom.Element btitles = JDOMHelper.optDescendant(mbmeta, "book-title-group"); org.jdom.Element btitle = JDOMHelper.optDescendant(btitles, "book-title"); YName mbookName = y.canonicalName(JDOMHelper.getYLang(btitle), JDOMHelper.textOfElement(btitle)); Element mbookId = JDOMHelper.getChildWithGivenAttributeValue(mbmeta, "book-id", "pub-id-type", "eudml-id"); String eudmlId=mbookId==null?null:mbookId.getValue(); String id= idGenerator.getMbookId(eudmlId); YElement mbook = factory.element(hierarchy, level, mbookName, ROOT, id).addLanguage(JDOMHelper.getYLang(mbmeta)); updater.updateElementIds(mbmeta, mbook, "book-id"); //bwmeta?? updater.updateElementAuthors(mbmeta, mbook); // contributors updater.updateElementPubdate(mbmeta, mbook); updater.updateElementContentLinks(mbmeta, mbook); updater.updateProvider(mbmeta, mbook); updater.updateElementPublisher(mbmeta, mbook); return mbook; }
private YElement initArticleinBookElement(org.jdom.Element ameta, YElement parent, NlmIdGenerator idGenerator) { org.jdom.Element atitles = JDOMHelper.optDescendant(ameta, "title-group"); org.jdom.Element atitle = JDOMHelper.optDescendant(atitles, "article-title"); org.jdom.Element aabstract = JDOMHelper.getChild(ameta, "abstract"); Element articleId = JDOMHelper.getChildWithGivenAttributeValue(ameta, "article-id", "pub-id-type", "eudml-id"); String eudmlId=articleId==null?null:articleId.getValue(); String id=idGenerator.getBookArticleId(eudmlId); YElement article = factory.element(NlmToYConstants.EXT_HIERARCHY_MBOOK_ARTICLE, NlmToYConstants.EXT_LEVEL_MBOOK_ARTICLE_ARTICLE, y.canonicalName(JDOMHelper.getYLang(atitle), JDOMHelper.textOfElement(atitle)), parent, id) .addDescription(y.description(JDOMHelper.getYLang(aabstract), JDOMHelper.textOfElement(aabstract), DescriptionTypes.DS_ABSTRACT)) .addLanguage(JDOMHelper.getYLang(ameta)); List<org.jdom.Element> trs = JDOMHelper.optChildren(atitles, "trans-title-group"); for (org.jdom.Element tr : trs) { article.addName(y.name(JDOMHelper.getYLang(tr), JDOMHelper.textOfElement(JDOMHelper.getChild(tr, "trans-title")), NameTypes.NM_ALTERNATIVE)); } return article; }
YElement article = factory.element(EXT_LEVEL_JOURNAL_ARTICLE, y.canonicalName(JDOMHelper.getYLang(atitle), JDOMHelper.textOfElement(atitle)), parent, idValue);
String isbn=isbnEl==null?null:isbnEl.getValue(); String id=idGenerator.getBookId(isbn, eudmlId); YElement book = factory.element(hierarchy, level, bookName, parent, id) .addLanguage(JDOMHelper.getYLang(bmeta));