// $Id$
/*
 * Copyright 2010 Institute for Systems Biology
 *                Seattle, Washington, USA.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package biotextEngine.xmlparsers.medline;

import java.sql.Types;

import biotextEngine.xmlparsers.NodeHandler;

/** 
 * @author Ariel Schwartz
 */
public class DataBank extends NodeHandler {
    /*
     * Flattens /MedlineCitation/Article/DataBankList into a single table of
     * Bonk Name and Accession Number associated with a PMID.
     *
     * Note that if a DataBank is listed WITHOUT an associated
     * AccessionNumberListe which the DTD indicates is permissible, then no
     * record of this association populates into the database.
     *
     * /MedlineCitation/Article/DataBankList/DataBank:
     * <!ELEMENT   DataBank (DataBankName, AccessionNumberList?)>
     */

    static final String[] columnNameDef = {
            "pmid",
            "data_bank_name",
            "accession_number"
    };

    static final String[] xmlElementNameDef = {
            "PMID",
            "DataBankName",
            "AccessionNumber"
    };

    static final int[] columnTypeDef = {
            Types.INTEGER,
            Types.VARCHAR,
            Types.VARCHAR
    };

    public DataBank(String pmid, String dataBankName) throws Exception {

        tableName = "medline_data_bank";

        columnName = columnNameDef;
        xmlElementName = xmlElementNameDef;
        columnType = columnTypeDef;

        initialize();

        /* Add any data that does not come through XML to the hashtable */
        putColumnValue("PMID", pmid);
        putColumnValue("DataBankName", dataBankName);
    }

}
