airport.database.services.setting.SettingFrontEndDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for airport.database.services.setting.SettingFrontEndDaoImpl.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.services.setting;

import airport.database.dispatcher.airplane.FlightDaoImpl;
import airport.database.services.users.User;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.stereotype.Repository;

/**
 *
 * @author mcdoker
 */
@Repository
public class SettingFrontEndDaoImpl implements SettingFrontEndDao {

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

    @Autowired
    private NamedParameterJdbcOperations jdbcOperations;

    private final static String SQL_QUERY_SELECT_SETTING = "SELECT check_setting_show_new_message, check_setting_music_airplane, \n"
            + "       check_setting_music_chat, check_setting_music_service, check_setting_show_clock, \n"
            + "       check_setting_show_weather, check_setting_show_profile, check_setting_show_dispatcher_online \n"
            + "  FROM setting_front_end WHERE user_id = "
            + "(SELECT user_id FROM users_online WHERE id_session = :id)";
    private final static String SQL_QUERY_UPDATE_SETTING = "UPDATE setting_front_end\n"
            + "   SET check_setting_show_new_message=:checkSettingShowNewMessage, "
            + "       check_setting_music_airplane=:checkSettingMusicAirplane, \n"
            + "       check_setting_music_chat=:checkSettingMusicChat, "
            + "       check_setting_music_service=:checkSettingMusicService,"
            + "       check_setting_show_clock=:checkSettingShowClock, \n"
            + "       check_setting_show_weather=:checkSettingShowWeather,"
            + "       check_setting_show_profile=:checkSettingShowProfile,"
            + "       check_setting_show_dispatcher_online=:checkSettingShowDispatcherOnline\n"
            + " WHERE user_id = " + "(SELECT user_id FROM users_online WHERE id_session = :id)";

    @Override
    public SettingFrontEnd getSettingFrontEnd(User user) {
        SqlParameterSource parameterUser = new BeanPropertySqlParameterSource(user);

        SettingFrontEnd settingFrontEndResult = jdbcOperations.queryForObject(SQL_QUERY_SELECT_SETTING,
                parameterUser, new SettingFrontEndRowMapper());

        if (LOG.isInfoEnabled()) {
            LOG.info("get setting front end of user. User : " + user + ". Result " + settingFrontEndResult);
        }

        return settingFrontEndResult;
    }

    @Override
    public void setSettingFrontEnd(User user, SettingFrontEnd settingFrontEnd) {
        MapSqlParameterSource mapSqlParameterSource = new MapSqlParameterSource();

        mapSqlParameterSource.addValue("checkSettingMusicAirplane", settingFrontEnd.getCheckSettingMusicAirplane());
        mapSqlParameterSource.addValue("checkSettingMusicChat", settingFrontEnd.getCheckSettingMusicChat());
        mapSqlParameterSource.addValue("checkSettingMusicService", settingFrontEnd.getCheckSettingMusicService());
        mapSqlParameterSource.addValue("checkSettingShowClock", settingFrontEnd.getCheckSettingShowClock());
        mapSqlParameterSource.addValue("checkSettingShowDispatcherOnline",
                settingFrontEnd.getCheckSettingShowDispatcherOnline());
        mapSqlParameterSource.addValue("checkSettingShowNewMessage",
                settingFrontEnd.getCheckSettingShowNewMessage());
        mapSqlParameterSource.addValue("checkSettingShowProfile", settingFrontEnd.getCheckSettingShowProfile());
        mapSqlParameterSource.addValue("checkSettingShowWeather", settingFrontEnd.getCheckSettingShowWeather());
        mapSqlParameterSource.addValue("id", user.getId());

        jdbcOperations.update(SQL_QUERY_UPDATE_SETTING, mapSqlParameterSource);

        if (LOG.isInfoEnabled()) {
            LOG.info("set setting front end of user. User : " + user + ". SettingFrontEnd " + settingFrontEnd);
        }
    }

    private static class SettingFrontEndRowMapper implements RowMapper<SettingFrontEnd> {

        private final static String AGRUMENT_SHOW_NEW_MESSAGE = "check_setting_show_new_message";
        private final static String AGRUMENT_MUSIC_AIRPLANE = "check_setting_music_airplane";
        private final static String AGRUMENT_MUSIC_CHAT = "check_setting_music_chat";
        private final static String AGRUMENT_MUSIC_SERVICE = "check_setting_music_service";
        private final static String AGRUMENT_SHOW_CLOCK = "check_setting_show_clock";
        private final static String AGRUMENT_SHOW_WEATHER = "check_setting_show_weather";
        private final static String AGRUMENT_SHOW_PROFILE = "check_setting_show_profile";
        private final static String AGRUMENT_SHOW_DISPATCHER_ONLINE = "check_setting_show_dispatcher_online";

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

            settingFrontEndResult.setCheckSettingMusicAirplane(rs.getInt(AGRUMENT_MUSIC_AIRPLANE));
            settingFrontEndResult.setCheckSettingMusicChat(rs.getInt(AGRUMENT_MUSIC_CHAT));
            settingFrontEndResult.setCheckSettingMusicService(rs.getInt(AGRUMENT_MUSIC_SERVICE));
            settingFrontEndResult.setCheckSettingShowClock(rs.getInt(AGRUMENT_SHOW_CLOCK));
            settingFrontEndResult.setCheckSettingShowDispatcherOnline(rs.getInt(AGRUMENT_SHOW_DISPATCHER_ONLINE));
            settingFrontEndResult.setCheckSettingShowNewMessage(rs.getInt(AGRUMENT_SHOW_NEW_MESSAGE));
            settingFrontEndResult.setCheckSettingShowProfile(rs.getInt(AGRUMENT_SHOW_PROFILE));
            settingFrontEndResult.setCheckSettingShowWeather(rs.getInt(AGRUMENT_SHOW_WEATHER));

            return settingFrontEndResult;
        }

    }

}