📄 article.java
字号:
/** * Returns an array of three-letter language abbreviations * indicating the language(s) in which the article was published. * A complete list of language abbreviations cna be found at: * * <blockquote> * <a href="http://www.nlm.nih.gov/bsd/language_table.html" >MEDLINE Language Table</a> * </blockquote> * * @return The abbreviations of languages in which the article appeared. */ public String[] languages() { return mLanguages; } /** * Returns an object representing a list of linkages of * molecular sequences mentioned in the paper to their * accession numbers in a given data bank. This method * may return <code>null</code> if there are no linkages. * * @return The data bank linkage list for this article. */ public DataBankList dataBankList() { return mDataBankList; } /** * Returns the list of agencies and grant identifiers sponsoring * the work reporting in this article. This method may return * <code>null</code> if no grants are provided. * * @return The grant list for this */ public GrantList grantList() { return mGrantList; } /** * Returns a complete list of publication types for this article * in alphabetical order. A full list of publication types * may be found at: * * <blockquote> * <a href="http://www.ncbi.nlm.nih.gov/entrez/query/static/help/pmhelp.html#PublicationTypes">PubMed Help: Publication Types</a> * </blockquote> * * @return The complete list of publication types for this article. */ public String[] publicationTypes() { return mPublicationTypes; } /** * Returns the title of the article if it was originally published * in a language other than English. All vernacular titles are * transliterated into Roman characters. May be the empty string * if there is no vernacular title. * * @return The original language title for this article. */ public String vernacularTitle() { return mVernacularTitle; } /** * Returns the date on which the publisher released an electronic * version of this article. This method may return <code>null</code> * if there was no electronic publication date supplied by the * publisher or if the article was never published electronically. * * @return The date on which the publisher produced an electronic * version of this article. */ public ArticleDate articleDate() { return mArticleDate; } /** * Returns a string representation of this article. * * @return A string representation of this article. */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append('{'); sb.append("Title="); sb.append(articleTitle()); sb.append(" Authors="); sb.append(authorList()); sb.append(" Publication Model="); sb.append(publicationModel()); sb.append(" Journal=" + journal()); if (pagination().length() > 0) { sb.append(" Pagination=" + pagination()); } if (abstrct() != null && abstrct().text().length() > 0) { sb.append(" Abstract="); sb.append(abstrct()); } if (affiliation().length() > 0) { sb.append(" Affiliation="); sb.append(affiliation()); } sb.append(" Languages="); sb.append(Arrays.asList(languages())); if (dataBankList() != null) { sb.append(" Data Banks="); sb.append(dataBankList()); } if (grantList() != null) { sb.append(" Grant List="); sb.append(grantList()); } if (publicationTypes().length > 0) { sb.append(" Publication Types="); sb.append(Arrays.asList(publicationTypes())); } if (vernacularTitle() != null && vernacularTitle().length() > 0) { sb.append(" Vernacular Title="); sb.append(vernacularTitle()); } if (articleDate() != null) { sb.append(" Electronic Article Pub Date="); sb.append(articleDate()); } sb.append('}'); return sb.toString(); } private static final String AUTHORS_TRANS_MARKER = " (author's trans)"; // NOTE: Element Book NOT USED IN MEDLINE! // <!ELEMENT Article ((Journal | Book), %ArticleTitle.Ref;, // Pagination, Abstract?, // Affiliation?, AuthorList?, Language+, DataBankList?, // GrantList?, PublicationTypeList, VernacularTitle?, // ArticleDate?)> // <!ENTITY % ArticleTitle.Ref "ArticleTitle"> // <!ELEMENT PublicationType (#PCDATA)> // <!ELEMENT PublicationTypeList (PublicationType+)> // <!ELEMENT VernacularTitle (#PCDATA)> static class Handler extends DelegateHandler { private String mPublicationModel; private final Journal.Handler mJournalHandler; private final TextAccumulatorHandler mArticleTitleHandler = new TextAccumulatorHandler(); private final TextAccumulatorHandler mMedlinePaginationHandler = new TextAccumulatorHandler(); private final Abstract.Handler mAbstractHandler; private final TextAccumulatorHandler mAffiliationHandler = new TextAccumulatorHandler(); String mPagination; private final ELocationId.Handler mELocationIdHandler = new ELocationId.Handler(); private final List<ELocationId> mELocationIdList = new ArrayList<ELocationId>(); private final TextAccumulatorHandler mStartPageHandler = new TextAccumulatorHandler(); private final TextAccumulatorHandler mEndPageHandler = new TextAccumulatorHandler(); private final AuthorList.Handler mAuthorListHandler; private final ArrayList mLanguageList = new ArrayList(); private final TextAccumulatorHandler mLanguageHandler = new TextAccumulatorHandler(); private final DataBankList.Handler mDataBankListHandler; private final GrantList.Handler mGrantListHandler; private final ArrayList mPublicationTypeList = new ArrayList(); private final TextAccumulatorHandler mPublicationTypeHandler = new TextAccumulatorHandler(); private final TextAccumulatorHandler mVernacularTitleHandler = new TextAccumulatorHandler(); private final ArticleDate.Handler mArticleDateHandler; public Handler(DelegatingHandler delegator) { super(delegator); mJournalHandler = new Journal.Handler(delegator); mAbstractHandler = new Abstract.Handler(delegator); mAuthorListHandler = new AuthorList.Handler(delegator); mDataBankListHandler = new DataBankList.Handler(delegator); mGrantListHandler = new GrantList.Handler(delegator); mArticleDateHandler = new ArticleDate.Handler(delegator); setDelegate(MedlineCitationSet.JOURNAL_ELT, mJournalHandler); setDelegate(MedlineCitationSet.ARTICLE_TITLE_ELT, mArticleTitleHandler); setDelegate(MedlineCitationSet.MEDLINE_PAGINATION_ELT, mMedlinePaginationHandler); setDelegate(MedlineCitationSet.E_LOCATION_ID_ELT, mELocationIdHandler); setDelegate(MedlineCitationSet.START_PAGE_ELT, mStartPageHandler); setDelegate(MedlineCitationSet.END_PAGE_ELT, mEndPageHandler); setDelegate(MedlineCitationSet.ABSTRACT_ELT, mAbstractHandler); setDelegate(MedlineCitationSet.AFFILIATION_ELT, mAffiliationHandler); setDelegate(MedlineCitationSet.AUTHOR_LIST_ELT, mAuthorListHandler); setDelegate(MedlineCitationSet.LANGUAGE_ELT, mLanguageHandler); setDelegate(MedlineCitationSet.DATA_BANK_LIST_ELT, mDataBankListHandler); setDelegate(MedlineCitationSet.GRANT_LIST_ELT, mGrantListHandler); setDelegate(MedlineCitationSet.PUBLICATION_TYPE_ELT, mPublicationTypeHandler); setDelegate(MedlineCitationSet.VERNACULAR_TITLE_ELT, mVernacularTitleHandler); setDelegate(MedlineCitationSet.ELECTRONIC_PUB_DATE_ELT, mArticleDateHandler); } public void startDocument() throws SAXException { super.startDocument(); mJournalHandler.reset(); mArticleTitleHandler.reset(); mMedlinePaginationHandler.reset(); mPagination = null; mStartPageHandler.reset(); mEndPageHandler.reset(); mAbstractHandler.reset(); mAffiliationHandler.reset(); mAuthorListHandler.reset(); mLanguageList.clear(); mDataBankListHandler.reset(); mGrantListHandler.reset(); mPublicationTypeList.clear(); mVernacularTitleHandler.reset(); mArticleDateHandler.reset(); mELocationIdList.clear(); super.startDocument(); } public void startElement(String x, String y, String qName, Attributes atts) throws SAXException { if (qName.equals(MedlineCitationSet.ARTICLE_ELT)) { mPublicationModel = atts.getValue(MedlineCitationSet.PUB_MODEL_ATT); } super.startElement(x,y,qName,atts); } public Article getArticle() { String[] languages = new String[mLanguageList.size()]; mLanguageList.toArray(languages); String[] publicationTypes = new String[mPublicationTypeList.size()]; mPublicationTypeList.toArray(publicationTypes); ELocationId[] eLocationIds = new ELocationId[mELocationIdList.size()]; mELocationIdList.<ELocationId>toArray(eLocationIds); return new Article(mPublicationModel, mJournalHandler.getJournal(), mArticleTitleHandler.getText(), mPagination, eLocationIds, mAbstractHandler.getAbstract(), mAffiliationHandler.getText(), mAuthorListHandler.getAuthorList(), languages, mDataBankListHandler.getDataBankList(), mGrantListHandler.getGrantList(), publicationTypes, mVernacularTitleHandler.getText(), mArticleDateHandler.getArticleDate()); } public void finishDelegate(String qName, DefaultHandler handler) { if (qName.equals(MedlineCitationSet.MEDLINE_PAGINATION_ELT)) { mPagination = mMedlinePaginationHandler.getText(); } else if (qName.equals(MedlineCitationSet.START_PAGE_ELT)) { mPagination = mStartPageHandler.getText(); } else if (qName.equals(MedlineCitationSet.END_PAGE_ELT)) { if (mPagination.length() > 0) mPagination = mPagination + "-" + mEndPageHandler.getText(); else mPagination = mEndPageHandler.getText(); } else if (qName.equals(MedlineCitationSet.LANGUAGE_ELT)) { mLanguageList.add(mLanguageHandler.getText()); } else if (qName.equals(MedlineCitationSet.PUBLICATION_TYPE_ELT)) { mPublicationTypeList.add(mPublicationTypeHandler.getText()); } else if (qName.equals(MedlineCitationSet.E_LOCATION_ID_ELT)) { mELocationIdList.add(mELocationIdHandler.getELocationId()); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -