001    /*
002     * The contents of this file are subject to the Mozilla Public
003     * License Version 1.1 (the "License"); you may not use this file
004     * except in compliance with the License. You may obtain a copy of
005     * the License at http://www.mozilla.org/MPL/
006     *
007     * Software distributed under the License is distributed on an "AS
008     * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
009     * implied. See the License for the specific language governing
010     * rights and limitations under the License.
011     *
012     * The Original Code is Knowtator.
013     *
014     * The Initial Developer of the Original Code is University of Colorado.  
015     * Copyright (C) 2005 - 2008.  All Rights Reserved.
016     *
017     * Knowtator was developed by the Center for Computational Pharmacology
018     * (http://compbio.uchcs.edu) at the University of Colorado Health 
019     *  Sciences Center School of Medicine with support from the National 
020     *  Library of Medicine.  
021     *
022     * Current information about Knowtator can be obtained at 
023     * http://knowtator.sourceforge.net/
024     *
025     * Contributor(s):
026     *   Philip V. Ogren <philip@ogren.info> (Original Author)
027     */
028    
029    package edu.uchsc.ccp.knowtator.textsource.generif;
030    
031    import java.util.ArrayList;
032    
033    import edu.stanford.smi.protege.model.Cls;
034    import edu.stanford.smi.protege.model.Instance;
035    import edu.stanford.smi.protege.model.KnowledgeBase;
036    import edu.uchsc.ccp.knowtator.textsource.filelines.FileLineTextSource;
037    
038    public class GeneRIFTextSource extends FileLineTextSource {
039    
040            public static final String CLS_NAME = "generifs text source";
041    
042            public static final String ENTREZ_GENE_SLOT_NAME = "generif_entrez_gene";
043    
044            public static final String PMID_SLOT_NAME = "generif_pmid";
045    
046            int lineNumber;
047    
048            String[] entrezIDs;
049    
050            String pmid;
051    
052            public GeneRIFTextSource(String id, String[] entrezIDs, String pmid, String text) {
053                    this.name = id;
054                    this.entrezIDs = entrezIDs;
055                    this.pmid = pmid;
056                    this.text = text;
057                    this.protegeClsName = CLS_NAME;
058            }
059    
060            public Instance createTextSourceInstance(KnowledgeBase knowledgeBase) {
061                    Cls textSourceCls = knowledgeBase.getCls(getProtegeClsName());
062    
063                    Instance textSourceInstance = knowledgeBase.createInstance(getName(), textSourceCls, true);
064    
065                    ArrayList entrezGeneInstances = new ArrayList();
066    
067                    for (int i = 0; i < entrezIDs.length; i++) {
068    
069                            Instance entrezGeneInstance = knowledgeBase.getInstance(entrezIDs[i]);
070                            entrezGeneInstances.add(entrezGeneInstance);
071                    }
072    
073                    textSourceInstance.setOwnSlotValues(knowledgeBase.getSlot(ENTREZ_GENE_SLOT_NAME), entrezGeneInstances);
074                    textSourceInstance.setOwnSlotValue(knowledgeBase.getSlot(PMID_SLOT_NAME), pmid);
075                    return textSourceInstance;
076            }
077    
078            public String[] getEntrezIDs() {
079                    return this.entrezIDs;
080            }
081    
082    }