delphsim.model.Categoria.java Source code

Java tutorial

Introduction

Here is the source code for delphsim.model.Categoria.java

Source

/** 
 * Copyright 2008 Vctor Enrique Tamames,
 * Universidad de Valladolid, Espaa.
 * 
 * This file is part of DelphSim.
 *
 * DelphSim is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or any later version.
 *
 * DelphSim is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * DelphSim. If not, see <http://www.gnu.org/licenses/>.
 */

/**
 * DelphSim (Delphos Simulator), simulador de epidemias desarrollado como
 * Proyecto Fin de Carrera de Ingeniera Informtica para la Escuela Tcnica
 * Superior de Ingeniera Informtica de la Universidad de Valladolid.
 */
package delphsim.model;

import org.dom4j.Element;
import org.dom4j.tree.DefaultElement;

/**
 * Los objetos de esta clase representan las distintas categoras en que se
 * puede descomponer una divisin de la poblacin.
 * @author Vctor E. Tamames Gmez
 */
public class Categoria implements Cloneable {

    /**
     * El nombre de la categora (obligatorio). Debe ser nico en el conjunto
     * compuesto por los nombres de los parmetros, procesos y categoras.
     */
    private String nombre;

    /**
     * Una descripcin de la categora (opcional).
     */
    private String descripcion;

    /**
     * Constructor de la clase.
     */
    public Categoria() {
    }

    /**
     * Mtodo para cambiar el nombre a este categora.
     * @param nombreCat El nuevo nombre para la categora.
     */
    public void setNombre(String nombreCat) {
        this.nombre = nombreCat;
    }

    /**
     * Mtodo para obtener el nombre de esta categora.
     * @return El nombre de esta categora.
     */
    public String getNombre() {
        return this.nombre;
    }

    /**
     * Mtodo para cambiar la descripcin de esta categora.
     * @param descripcionCat La nueva descripcin para esta categora.
     */
    public void setDescripcion(String descripcionCat) {
        this.descripcion = descripcionCat;
    }

    /**
     * Mtodo para obtener la descripcin de esta categora.
     * @return La descripcin de esta categora.
     */
    public String getDescripcion() {
        return this.descripcion;
    }

    /**
     * Mtodo para cargar los datos contenidos en un objeto de tipo
     * <CODE>org.dom4j.Element</CODE> en este objeto.
     * @param elementoCategoria El objeto <CODE>org.dom4j.Element</CODE>.
     */
    public void cargarDesdeXML(Element elementoCategoria) {
        this.setNombre(elementoCategoria.attributeValue("nombre"));
        this.setDescripcion(elementoCategoria.elementText("descripcion"));
    }

    /**
     * Mtodo para volcar los datos de este objeto en uno de tipo
     * <CODE>org.dom4j.Element</CODE>.
     * @return El objeto <CODE>org.dom4j.Element</CODE>.
     */
    public Element volcarAXML() {
        Element elementoCategoria = new DefaultElement("categoria");

        elementoCategoria.addAttribute("nombre", this.nombre);
        if (this.descripcion != null) {
            if (!this.descripcion.equals("")) {
                Element elementoDescripcion = elementoCategoria.addElement("descripcion");
                elementoDescripcion.setText(this.descripcion);
            }
        }

        return elementoCategoria;
    }

    /**
     * Implementacin de la interfaz Cloneable.
     * @return Un clon idntico a este objeto.
     */
    @Override
    public Categoria clone() {
        Categoria clon = new Categoria();
        clon.setNombre(this.getNombre());
        clon.setDescripcion(this.getDescripcion());
        return clon;
    }
}