/*
 * Universidade Federal de Pernambuco
 * Centro de Informática
 *
 * SAC - Sociedade beneficente de Amparo aos portadores de AIDS e do Cancer
 *
 * Tipo: CID
 *
 * Esta classe representa o CID(Codigo Internacional de Doencas)
 *
 * @author Centro de Informatica - UFPE
 * @version  0.1 -  25/10/2001
 * @since JDK 1.3
 */

package sac.cid;

import sac.exception.NullArgumentException;
/**
 * Esta classe representa o CID(Codigo Internacional de Doencas)
 */
public class CID {
   //Codigo da doenca no CID
   private String codigo;
   //Descricao da categoria da doenca no CID
   private String descricaoCategoria;
   //Descricao da subcategoria da doenca no CID
   private String descricaoSubcategoria;

    /**
     * Construtor  da classe
     * @param codigo Codigo da doenca no CID <code>long</code>
     */
    public CID(String codigo) throws NullArgumentException {
        setCodigo(codigo);
    }

    /**
     * Retorna a descricao da categoria da doenca no CID
     *
     * @return descricao da categoria <code>String</code>
     */
    public String getDescricaoCategoria() {
        return this.descricaoCategoria;
    }

    /**
     * Retorna o codigo do CID
     *
     * @return Codigo do CID <code>long</code>
     */
    public String getCodigo() {
        return codigo;
    }

    /**
     * Retorna a descricao da subcategoria da doenca no CID
     *
     * @return descricao da subcategoria <code>String</code>
     */
    public String getDescricaoSubcategoria() {
        return this.descricaoSubcategoria;
    }

    /**
     * Seta o codigo uma droga no CID
     *
     * @param codigo    codigo da doenca no CID <code>long</code>
     *
     */
     public void setCodigo(String codigo) throws NullArgumentException{
        if (descricaoCategoria == null) {
            throw new NullArgumentException("descricaoCategoria == null");
        }
        this.codigo = codigo;
    }

    /**
     * Seta a descricao da categoria de uma droga no CID
     *
     * @param descricaoCategoria     descricao categoria
     *                                  da droga no CID<code>String</code>
     *
     */
     public void setDescricaoCategoria(String descricaoCategoria) throws NullArgumentException {
        if (descricaoCategoria == null) {
            throw new NullArgumentException("descricaoCategoria == null");
        }
        this.descricaoCategoria = descricaoCategoria;
    }

    /**
     * Seta a descricao da subcategoria de uma droga no CID
     *
     * @param descricaoSubcategoria     descricao da subcategoria da
     *                                  droga no CID <code>String</code>
     */
    public void setDescricaoSubcategoria(String descricaoSubcategoria) throws NullArgumentException {
        if (descricaoSubcategoria == null) {
            throw new NullArgumentException("descricaoSubcategoria == null");
        }
        this.descricaoSubcategoria = descricaoSubcategoria;
   }
}
