private YRichText extractNodeFromElement(Element element, String subElementName) { Element subElement = JDOMHelper.optDescendant(element, subElementName); if (subElement == null) { return null; } YRichText text = y.canonicalName(JDOMHelper.getYLang(subElement), JDOMHelper.textOfElement(subElement)).getRichText(); return text; }
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); article.addDescription(y.description(JDOMHelper.getYLang(aabstract), JDOMHelper.textOfElement(aabstract), DS_ABSTRACT)); article.addLanguage(JDOMHelper.getYLang(ameta)); article.addName(y.name(JDOMHelper.getYLang(tr), JDOMHelper.textOfElement(JDOMHelper.getChild(tr, "trans-title")),NameTypes.NM_CANONICAL)); article.addDescription(y.description(JDOMHelper.getYLang(tr), JDOMHelper.textOfElement(tr), "trans-abstract"));
org.jdom.Element btitle = JDOMHelper.optDescendant(btitles, "book-title"); YName bookName = y.canonicalName(JDOMHelper.getYLang(btitle), JDOMHelper.textOfElement(btitle)); Element bookId = JDOMHelper.getChildWithGivenAttributeValue(bmeta, "book-id", "pub-id-type", "eudml-id"); String id=idGenerator.getBookId(isbn, eudmlId); YElement book = factory.element(hierarchy, level, bookName, parent, id) .addLanguage(JDOMHelper.getYLang(bmeta)); book.addDescription(y.description(JDOMHelper.getYLang(babstract), JDOMHelper.textOfElement(babstract), DescriptionTypes.DS_ABSTRACT)).addLanguage(JDOMHelper.getYLang(bmeta)); book.addDescription(y.description(JDOMHelper.getYLang(tr), JDOMHelper.textOfElement(tr), "trans-abstract")); book.addName(y.name(JDOMHelper.getYLang(alttitle), JDOMHelper.textOfElement(alttitle), NameTypes.NM_ALTERNATIVE));
/** * 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; }