br.com.dropegroup.dprf.dao.mock.OcorrenciaMockDAO.java Source code

Java tutorial

Introduction

Here is the source code for br.com.dropegroup.dprf.dao.mock.OcorrenciaMockDAO.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.dropegroup.dprf.dao.mock;

import br.com.dropegroup.dprf.dao.OcorrenciaDAO;
import br.com.dropegroup.dprf.resource.OcorrenciaAgrupamentoVO;
import br.com.dropegroup.dprf.resource.OcorrenciaLocalVO;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

import org.springframework.stereotype.Repository;

//@Repository
public class OcorrenciaMockDAO implements OcorrenciaDAO {

    private List<OcorrenciaAgrupamentoVO> oaVoList;

    private OcorrenciaAgrupamentoVO buildVO(String rodovia, String estado, Integer ano, Integer mes,
            Double indice) {
        OcorrenciaAgrupamentoVO oa = new OcorrenciaAgrupamentoVO();
        oa.setRodovia(rodovia);
        oa.setEstado(estado);
        oa.setAno(ano);
        oa.setMes(mes);
        oa.setIndice(indice);
        return oa;
    }

    public OcorrenciaMockDAO() {
        // dados de teste
        Random r = new Random();
        oaVoList = new ArrayList<OcorrenciaAgrupamentoVO>();
        for (String rodovia : Arrays.asList("BR-110", "BR-116")) {
            for (String estado : Arrays.asList("SP", "RJ", "MG", "ES", "PR", "SC", "RS")) {
                for (int ano = 2007; ano <= 2013; ano++) {
                    for (int mes = 1; mes <= 12; mes++) {
                        oaVoList.add(buildVO(rodovia, estado, ano, mes, r.nextDouble()));
                    }
                }
            }
        }
    }

    @Override
    public List<OcorrenciaAgrupamentoVO> find() {
        List<OcorrenciaAgrupamentoVO> result = new ArrayList<OcorrenciaAgrupamentoVO>();
        for (OcorrenciaAgrupamentoVO x : oaVoList) {
            result.add(x);
        }
        return result; // loop acima intencional ; retorna copia do array armazenado
    }

    @Override
    public List<OcorrenciaAgrupamentoVO> find(Integer ano) {
        List<OcorrenciaAgrupamentoVO> result = new ArrayList<OcorrenciaAgrupamentoVO>();
        for (OcorrenciaAgrupamentoVO x : oaVoList) {
            if (ano.equals(x.getAno())) {
                result.add(x);
            }
        }
        return result;
    }

    @Override
    public List<OcorrenciaAgrupamentoVO> find(Integer ano, Integer mes) {
        List<OcorrenciaAgrupamentoVO> result = new ArrayList<OcorrenciaAgrupamentoVO>();
        for (OcorrenciaAgrupamentoVO x : oaVoList) {
            if (ano.equals(x.getAno()) && mes.equals(x.getMes())) {
                result.add(x);
            }
        }
        return result;
    }

    @Override
    public List<OcorrenciaAgrupamentoVO> find(String estado) {
        List<OcorrenciaAgrupamentoVO> result = new ArrayList<OcorrenciaAgrupamentoVO>();
        for (OcorrenciaAgrupamentoVO x : oaVoList) {
            if (estado.equals(x.getEstado())) {
                result.add(x);
            }
        }
        return result;
    }

    @Override
    public List<OcorrenciaAgrupamentoVO> find(String estado, String rodovia) {
        List<OcorrenciaAgrupamentoVO> result = new ArrayList<OcorrenciaAgrupamentoVO>();
        for (OcorrenciaAgrupamentoVO x : oaVoList) {
            if (estado.equals(x.getEstado()) && rodovia.equals(x.getRodovia())) {
                result.add(x);
            }
        }
        return result;
    }

    @Override
    public List<OcorrenciaLocalVO> find(Integer ano, Integer mes, String estado, String cidade) {
        List<OcorrenciaLocalVO> result = new ArrayList<OcorrenciaLocalVO>();
        return result;
    }
}