⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 article.java

📁 一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    /**     * 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 + -