// Path: core/src/main/java/org/mskcc/cbio/oncokb/dao/DrugDao.java
// public interface DrugDao extends GenericDao<Drug, Integer> {
//     Drug findDrugById(Integer id);
//     /**
//      *
//      * @param drugName
//      * @return
//      */
//     Drug findDrugByName(String drugName);
// 
//     /**
//      *
//      * @param synonym
//      * @return
//      */
//     List<Drug> findDrugBySynonym(String synonym);
// 
//     /**
//      *
//      * @param ncitCode
//      * @return
//      */
//     Drug findDrugByNcitCode(String ncitCode);
// 
//     @Override
//     void save(Drug drug);
// }


import org.mskcc.cbio.oncokb.bo.DrugBo;
import org.mskcc.cbio.oncokb.dao.DrugDao;
import org.mskcc.cbio.oncokb.model.Drug;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
        }

        return findDrugsBySynonym(drugNameOrSynonym);
    }

    @Override
    public Drug guessUnambiguousDrug(String drugNameOrSynonym) {
        List<Drug> drugs = guessDrugs(drugNameOrSynonym);
        if (drugs.size() == 1) {
            return drugs.get(0);
        }

        return null;
    }

    @Override
    public Drug findDrugsByNcitCode(String ncit) {
        return getDao().findDrugByNcitCode(ncit);
    }

    @Override
    public void update(Drug drug) {
        if (drug != null) {
            drug.setDrugName(drug.getDrugName());
        }
        super.update(drug);
    }

    @Override
    public void save(Drug drug) {
// Path: core/src/main/java/org/mskcc/cbio/oncokb/dao/DrugDao.java
// public interface DrugDao extends GenericDao<Drug, Integer> {
//     Drug findDrugById(Integer id);
//     /**
//      *
//      * @param drugName
//      * @return
//      */
//     Drug findDrugByName(String drugName);
// 
//     /**
//      *
//      * @param synonym
//      * @return
//      */
//     List<Drug> findDrugBySynonym(String synonym);
// 
//     /**
//      *
//      * @param ncitCode
//      * @return
//      */
//     Drug findDrugByNcitCode(String ncitCode);
// 
//     @Override
//     void save(Drug drug);
// }


// Path: core/src/main/java/org/mskcc/cbio/oncokb/bo/impl/DrugBoImpl.java
import org.mskcc.cbio.oncokb.bo.DrugBo;
import org.mskcc.cbio.oncokb.dao.DrugDao;
import org.mskcc.cbio.oncokb.model.Drug;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

        }

        return findDrugsBySynonym(drugNameOrSynonym);
    }

    @Override
    public Drug guessUnambiguousDrug(String drugNameOrSynonym) {
        List<Drug> drugs = guessDrugs(drugNameOrSynonym);
        if (drugs.size() == 1) {
            return drugs.get(0);
        }

        return null;
    }

    @Override
    public Drug findDrugsByNcitCode(String ncit) {
        return getDao().findDrugByNcitCode(ncit);
    }

    @Override
    public void update(Drug drug) {
        if (drug != null) {
            drug.setDrugName(drug.getDrugName());
        }
        super.update(drug);
    }

    @Override
    public void save(Drug drug) {
        if (drug != null) {