package com.softgraf.model.vo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.softgraf.model.abstrato.AbstractVO;

// 10
final public class Agencia implements AbstractVO {

	private int idAgencia, agencia, banco;
	private String nomeAgencia, endereco, bairro, cidade, uf, fone;
	private static final ArrayList<String> listaCampos;

	static {
		listaCampos = new ArrayList<String>();
		listaCampos.add("ID Agência");
		listaCampos.add("Número da Agência");
		listaCampos.add("Número do Banco");
		listaCampos.add("Nome da Agência");
		listaCampos.add("Endereço");
		listaCampos.add("Bairro");
		listaCampos.add("Cidade");
		listaCampos.add("Estado");
		listaCampos.add("Fone");
	}

	public Agencia() {
		this(0, 0);
	}
	
	public Agencia(int agencia, int banco) {
		this.agencia = agencia;
		this.banco = banco;
		this.nomeAgencia = "";
		this.endereco = "";
		this.bairro = "";
		this.cidade = "";
		this.uf = "";
		this.fone = "";
	}

	public static List<String> getCampos() {
		return Collections.unmodifiableList(listaCampos);
	}
	
	// gettes e setters
	public int getIdAgencia() {
		return idAgencia;
	}

	public void setIdAgencia(int idAgencia) {
		this.idAgencia = idAgencia;
	}

	public int getAgencia() {
		return agencia;
	}

	public void setAgencia(int agencia) {
		this.agencia = agencia;
	}

	public int getBanco() {
		return banco;
	}

	public void setBanco(int banco) {
		this.banco = banco;
	}

	public String getNomeAgencia() {
		return nomeAgencia;
	}

	public void setNomeAgencia(String nomeAgencia) {
		this.nomeAgencia = nomeAgencia;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getUf() {
		return uf;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}

	public String getFone() {
		return fone;
	}

	public void setFone(String fone) {
		this.fone = fone;
	}

	@Override
	public String toString() {
		return agencia + " - " + nomeAgencia;
	}

	@Override
	public String[] toArray() {
		String[] array = {
				idAgencia == 0 ? "" : String.valueOf(idAgencia),
				agencia == 0 ? "" : String.valueOf(agencia),
				banco == 0 ? "" : String.valueOf(banco),
				nomeAgencia,
				endereco,
				bairro,
				cidade,
				uf,
				fone
		};
		
		return array;
	}

}
