package com.ejie.t17i.model;

import java.util.ArrayList;
import java.util.List;

import org.codehaus.jackson.annotate.JsonIgnore;

/**
 * * Provincia generated by UDA, 14-feb-2012 15:14:34.
 * 
XXXX
 */

public class Provincia implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5770530935044966615L;
	private String id;
	private String nombre;
	private String autonomia;
	private List<Municipio> municipios = new ArrayList<Municipio>();

	/**
	 * Method 'Provincia'.
	 * 
	 */
	public Provincia() {
	}

	/**
	 * Constructor para crear un filtro solo por Id.
	 * 
	 * @param id
	 *            Identificador &uacute;nico de la provincia
	 */
	public Provincia(String id) {
		super();
		this.id = id;
	}

	/**
	 * Method 'Provincia'.
	 * 
	 * @param id
	 *            String
	 * @param nombre
	 *            String
	 * @param autonomia
	 *            String
	 */
	public Provincia(String id, String nombre, String autonomia) {
		this.id = id;
		this.nombre = nombre;
		this.autonomia = autonomia;
	}

	/**
	 * Method 'Provincia'.
	 * 
	 * @param id
	 *            String
	 * @param nombre
	 *            String
	 * @param autonomia
	 *            String
	 * @param municipios
	 *            List<Municipio>
	 */
	public Provincia(String id, String nombre, String autonomia,
			List<Municipio> municipios) {

		this.id = id;
		this.nombre = nombre;
		this.autonomia = autonomia;
		this.municipios = municipios;
	}

	/**
	 * Method 'getId'.
	 * 
	 * @return String
	 */

	public String getId() {
		return this.id;
	}

	/**
	 * Method 'setId'.
	 * 
	 * @param id
	 *            String
	 * @return
	 */

	public void setId(String id) {
		this.id = id;
	}

	/**
	 * Method 'getNombre'.
	 * 
	 * @return String
	 */

	public String getNombre() {
		return this.nombre;
	}

	/**
	 * Method 'setNombre'.
	 * 
	 * @param nombre
	 *            String
	 * @return
	 */

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * Method 'getAutonomia'.
	 * 
	 * @return String
	 */

	public String getAutonomia() {
		return this.autonomia;
	}

	/**
	 * Method 'setAutonomia'.
	 * 
	 * @param autonomia
	 *            String
	 * @return
	 */

	public void setAutonomia(String autonomia) {
		this.autonomia = autonomia;
	}

	/**
	 * Method 'getMunicipios'.
	 * 
	 * @return List
	 */
	@JsonIgnore
	public List<Municipio> getMunicipios() {
		return this.municipios;
	}

	/**
	 * Method 'setMunicipios'.
	 * 
	 * @param municipios
	 *            List
	 * @return
	 */
	public void setMunicipios(List<Municipio> municipios) {
		this.municipios = municipios;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Provincia other = (Provincia) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}
