Package br.com.moonjava.flight.dao.base

Source Code of br.com.moonjava.flight.dao.base.VooDAO

/*
* Copyright 2012 MoonJava LTDA.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package br.com.moonjava.flight.dao.base;

import java.util.List;

import org.joda.time.DateTime;

import br.com.moonjava.flight.controller.base.VooLoader;
import br.com.moonjava.flight.jdbc.SqlStatement;
import br.com.moonjava.flight.jdbc.SqlStatementWrapper;
import br.com.moonjava.flight.model.base.Aeronave;
import br.com.moonjava.flight.model.base.Status;
import br.com.moonjava.flight.model.base.Voo;
import br.com.moonjava.flight.util.RequestParam;

/**
* @version 1.0 Jul 25, 2012
* @contact tiago.aguiar@moonjava.com.br
*
*/
public class VooDAO implements Voo.Jdbc {

  private SqlStatement query() {
    return new SqlStatementWrapper()
        .prepare()

        .with("select *")
        .with("from FLIGHT.VOO as VOO")

        .with("join FLIGHT.AERONAVE as AERONAVE")
        .with("on AERONAVE.ID = VOO.AERONAVE_ID")

        .load(new VooLoader());
  }

  @Override
  public boolean criar(Voo voo) {
    boolean executed = false;
    if (voo != null) {
      Aeronave aeronave = voo.getAeronave();
      executed = new SqlStatementWrapper()
          .prepare()

          .with("insert into FLIGHT.VOO")
          .with("(AERONAVE_ID, CODIGO, ORIGEM, DESTINO, ESCALA,")
          .with("DATA_PARTIDA, DATA_CHEGADA, STATUS, ASSENTO_LIVRE, PRECO)")

          .with("values (")
          .with("?,", aeronave.getId())
          .with("?,", voo.getCodigo())
          .with("?,", voo.getOrigem())
          .with("?,", voo.getDestino())
          .with("?,", voo.getEscala())
          .with("?,", voo.getDataDePartida())
          .with("?,", voo.getDataDeChegada())
          .with("?,", voo.getStatus().ordinal())
          .with("?,", voo.getAssentoLivre())
          .with("?)", voo.getPreco())

          .andExecute();
    }
    return executed;
  }

  @Override
  public List<Voo> consultar(RequestParam request) {
    Status status = request.enumParam(Status.class, "status");
    DateTime partida = request.dateTimeParam("partida");
    DateTime chegada = request.dateTimeParam("chegada");
    String origem = request.stringParam("origem");
    String destino = request.stringParam("destino");
    Integer assento = request.intParam("assento");

    return query()

        .with("where 1 = 1")
        .with("and VOO.STATUS = ?", status.ordinal())
        .with("and VOO.DATA_PARTIDA >= ?", partida)
        .with("and VOO.DATA_CHEGADA <= ?", chegada)
        .with("and VOO.ORIGEM like concat ('%', ?, '%')", origem)
        .with("and VOO.DESTINO like concat ('%', ?, '%')", destino)
        .with("and VOO.ASSENTO_LIVRE > ?", assento)

        .with("order by VOO.DATA_PARTIDA asc")

        .andList();
  }

  @Override
  public List<Voo> consultaPainel() {
    return query()

        .with("order by VOO.STATUS asc,")
        .with("VOO.DATA_PARTIDA asc")
        .with("limit 0,15")

        .andList();
  }

  @Override
  public Voo consultarPorId(int id) {
    return query()

        .with("where VOO.ID = ?", id)

        .andGet();
  }

  @Override
  public List<Voo> consultarPorAeronaveId(int id) {
    return query()

        .with("where VOO.AERONAVE_ID = ?", id)

        .andList();
  }

  @Override
  public boolean atualizar(Voo voo) {
    boolean executed = false;
    if (voo != null) {
      executed = new SqlStatementWrapper()
          .prepare()

          .with("update FLIGHT.VOO set")
          .with("DATA_PARTIDA = ?,", voo.getDataDePartida())
          .with("DATA_CHEGADA = ?,", voo.getDataDeChegada())
          .with("OBSERVACAO = ?", voo.getObservacao())

          .with("where ID = ?", voo.getId())

          .andExecute();
    }
    return executed;
  }

  @Override
  public void deletar(int id) {
    new SqlStatementWrapper()
        .prepare()

        .with("delete from FLIGHT.VOO")
        .with("where ID = ?", id)

        .andExecute();
  }

  @Override
  public void deletarPorAeronaveId(int id) {
    new SqlStatementWrapper()
        .prepare()

        .with("delete from FLIGHT.VOO")
        .with("where AERONAVE_ID = ?", id)

        .andExecute();
  }

  @Override
  public void controlarStatus(int id, Status status) {
    new SqlStatementWrapper()
        .prepare()

        .with("update FLIGHT.VOO set")
        .with("STATUS = ?", status.ordinal())

        .with("where ID = ?", id)

        .andExecute();
  }

  @Override
  public void incrementarAssento(int id) {
    new SqlStatementWrapper()
        .prepare()

        .with("update FLIGHT.VOO set")
        .with("ASSENTO_LIVRE = (ASSENTO_LIVRE+1)")

        .with("where ID = ?", id)

        .andExecute();
  }

  @Override
  public void decrementarAssento(int id) {
    new SqlStatementWrapper()
        .prepare()

        .with("update FLIGHT.VOO set")
        .with("ASSENTO_LIVRE = (ASSENTO_LIVRE-1)")

        .with("where ID = ?", id)

        .andExecute();
  }

}
TOP

Related Classes of br.com.moonjava.flight.dao.base.VooDAO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.