# Pet.java

    package es.uvigo.esei.daa.entities;

    import static java.util.Objects.requireNonNull;
    /**
     * An entity that represents a person.
     *
     * @author Victor Fernandez Varela
     */
    public class Pet {
    		private int id;
    		private String name;
    		private String tipo;
    		private String raza;
    		private int idPersona;

    		// Constructor needed for the JSON conversion
    		Pet() {}

    		/**
    		 * Constructs a new instance of {@link Pet}.
    		 *
    		 * @param id identificador mascota
    		 * @param name nombre mascota.
    		 * @param tipo tipo mascota.
    		 * @param raza raza mascota.
    		 * @param idPersona identificador del propietario de la mascota.
    		 */
    		public Pet(int id, String name, String tipo, String raza, int idPersona) {
    			this.id = id;
    			this.setName(name);
    			this.setTipo(tipo);
    			this.setRaza(raza);
    			this.idPersona = idPersona;
    		}

    		/**
    		 * Retorna el identificador de la mascota.
    		 *
    		 * @return el identificador de la mascota.
    		 */
    		public int getId() {
    			return id;
    		}

    		/**
    		 * Retorna el nombre de la mascota.
    		 *
    		 * @return el nombre de la mascota.
    		 */
    		public String getName() {
    			return name;
    		}
    		/**
    		 * Retorna el tipo de la mascota.
    		 *
    		 * @return el tipo de la mascota.
    		 */
    		public String getTipo() {
    			return tipo;
    		}
    		/**
    		 * Retorna el raza de la mascota.
    		 *
    		 * @return el raza de la mascota.
    		 */
    		public String getRaza() {
    			return raza;
    		}
    		/**
    		 * Retorna el id del propietario de esa mascota.
    		 *
    		 * @return el id del propietario de esa mascota.
    		 */
    		public int getIdPersona() {
    			return idPersona;
    		}

    		/**
    		 * Set el nombre de la mascota
    		 *
    		 * @param name nombre de la nueva mascota
    		 * @throws NullPointerException if the {@code name} is {@code null}.
    		 */
    		public void setName(String name) {
    			this.name = requireNonNull(name, "Name no puede estar vacia");
    		}
    		/**
    		 * Set el tipo de la mascota
    		 *
    		 * @param tipo tipo de la mascota
    		 * @throws NullPointerException if the {@code tipo} is {@code null}.
    		 */
    		public void setTipo(String tipo) {
    			this.tipo = requireNonNull(tipo, "Tipo no puede estar vacia");
    		}
    		/**
    		 * Set la raza de la mascota
    		 *
    		 * @param raza raza de la nueva mascota
    		 * @throws NullPointerException if the {@code raza} is {@code null}.
    		 */
    		public void setRaza(String raza) {
    			this.raza = requireNonNull(raza, "Raza no puede estar vacia");
    		}
    		/**
    		 * Set id del propietario de la mascota
    		 *
    		 * @param idPersona idPersona propietario de la mascota
    		 * @throws NullPointerException if the {@code idPersona} is {@code null}.
    		 */
    		public void setIdPersona(int idPersona) {
    			this.idPersona = requireNonNull(idPersona, "Id de la persona no puede estar vacia");
    		}
    		@Override
    		public int hashCode() {
    			final int prime = 31;
    			int result = 1;
    			result = prime * result + id;
    			return result;
    		}

    		@Override
    		public boolean equals(Object obj) {
    			if (this == obj)
    				return true;
    			if (obj == null)
    				return false;
    			if (!(obj instanceof Pet))
    				return false;
    			Pet other = (Pet) obj;
    			if (id != other.id)
    				return false;
    			return true;
    		}

    }