airport.database.dispatcher.airplane.RunawayDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for airport.database.dispatcher.airplane.RunawayDaoImpl.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 airport.database.dispatcher.airplane;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;

/**
 *
 * @author mcdoker
 */
@Repository
public class RunawayDaoImpl implements RunawayDao {

    private final static Logger LOG = Logger.getLogger(RunawayDao.class);

    @Autowired
    private NamedParameterJdbcTemplate jdbcTemplate;

    private final static String SQL_QUERY_SELECT_ALL = "SELECT runaway_id, is_taken, user_id FROM runaway";

    private final static String SQL_QUERY_CHECK_AVAILABLE = "SELECT is_taken FROM runaway WHERE runaway_id = :runawayId";
    private final static String SQL_PARAMETER_RUNAWAY_ID = "runawayId";

    private final static String SQL_QUERY_OCCUPAY = "UPDATE runaway SET is_taken = false WHERE runaway_id = :runawayId;";

    private final static String SQL_QUERY_LIBERATE = "UPDATE runaway SET is_taken = true WHERE runaway_id = :runawayId;";

    private final static String SQL_QUERY_LIBERATE_ALL = "UPDATE runaway SET is_taken = true";

    @Override
    public List<Runaway> getAvailableRunaway() {
        List<Runaway> runawaysResult = jdbcTemplate.getJdbcOperations().query(SQL_QUERY_SELECT_ALL,
                new RunawayMapper());

        if (LOG.isInfoEnabled()) {
            LOG.info("get runaways all. Result : " + runawaysResult);
        }

        return runawaysResult;
    }

    @Override
    public boolean checkAvailablerRunaway(int runawayId) {
        MapSqlParameterSource parameterSource = new MapSqlParameterSource(SQL_PARAMETER_RUNAWAY_ID, runawayId);

        boolean checkAvailableResult = jdbcTemplate.queryForObject(SQL_QUERY_CHECK_AVAILABLE, parameterSource,
                Boolean.class);

        if (LOG.isInfoEnabled()) {
            LOG.info("check available runawat. RunawayId : " + runawayId + ". Result : " + checkAvailableResult);
        }

        return checkAvailableResult;
    }

    @Override
    public void occupayRunaway(int runawayId) {
        MapSqlParameterSource parameterSource = new MapSqlParameterSource(SQL_PARAMETER_RUNAWAY_ID, runawayId);

        jdbcTemplate.update(SQL_QUERY_OCCUPAY, parameterSource);

        if (LOG.isInfoEnabled()) {
            LOG.info("occupay runaway. RunawayId : " + runawayId);
        }
    }

    @Override
    public void liberateRunaway(int runawayId) {
        MapSqlParameterSource parameterSource = new MapSqlParameterSource(SQL_PARAMETER_RUNAWAY_ID, runawayId);

        jdbcTemplate.update(SQL_QUERY_LIBERATE, parameterSource);

        if (LOG.isInfoEnabled()) {
            LOG.info("occupay runaway. RunawayId : " + runawayId);
        }
    }

    @Override
    public void liberateAll() {
        jdbcTemplate.getJdbcOperations().update(SQL_QUERY_LIBERATE_ALL);

        if (LOG.isInfoEnabled()) {
            LOG.info("occupay liberate all runaways");
        }
    }

    private static class RunawayMapper implements RowMapper<Runaway> {

        private final static String PARAMETER_RUNAWAY_ID = "runaway_id";
        private final static String PARAMETER_IS_TAKEN = "is_taken";

        @Override
        public Runaway mapRow(ResultSet rs, int rowNum) throws SQLException {
            Runaway runawayResult = new Runaway();

            runawayResult.setId(rs.getInt(PARAMETER_RUNAWAY_ID));
            runawayResult.setIsTaken(rs.getBoolean(PARAMETER_IS_TAKEN));

            return runawayResult;
        }

    }

}