package org.ovirt.engine.core.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.ovirt.engine.core.common.EventNotificationMethods;
import org.ovirt.engine.core.common.businessentities.event_map;
import org.ovirt.engine.core.common.businessentities.event_notification_methods;
import org.ovirt.engine.core.common.businessentities.event_subscriber;
import org.ovirt.engine.core.compat.Guid;
/**
* <code>EventSubscriberDAODbFacadeImpl</code> provides an implementation of {@link EventSubscriberDAO} that uses the
* refactored {@link DbFacade} code.
*/
public class EventDAODbFacadeImpl extends BaseDAODbFacade implements EventDAO {
@SuppressWarnings("unchecked")
@Override
public List<event_subscriber> getAll() {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource();
ParameterizedRowMapper<event_subscriber> mapper = new ParameterizedRowMapper<event_subscriber>() {
@Override
public event_subscriber mapRow(ResultSet rs, int rowNum)
throws SQLException {
event_subscriber entity = new event_subscriber();
entity.setevent_up_name(rs.getString("event_up_name"));
entity.setmethod_id(rs.getInt("method_id"));
entity.setmethod_address(rs.getString("method_address"));
entity.setsubscriber_id(Guid.createGuidFromString(rs
.getString("subscriber_id")));
entity.settag_name(rs.getString("tag_name"));
return entity;
}
};
return getCallsHandler().executeReadList("GetAllFromevent_subscriber", mapper, parameterSource);
}
@SuppressWarnings("unchecked")
@Override
public List<event_subscriber> getAllForSubscriber(Guid id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("subscriber_id", id);
ParameterizedRowMapper<event_subscriber> mapper = new ParameterizedRowMapper<event_subscriber>() {
@Override
public event_subscriber mapRow(ResultSet rs, int rowNum)
throws SQLException {
event_subscriber entity = new event_subscriber();
entity.setevent_up_name(rs.getString("event_up_name"));
entity.setmethod_id(rs.getInt("method_id"));
entity.setmethod_address(rs.getString("method_address"));
entity.setsubscriber_id(Guid.createGuidFromString(rs
.getString("subscriber_id")));
entity.settag_name(rs.getString("tag_name"));
return entity;
}
};
return getCallsHandler().executeReadList("Getevent_subscriberBysubscriber_id", mapper, parameterSource);
}
@SuppressWarnings("unchecked")
@Override
public List<event_notification_methods> getAllEventNotificationMethods() {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource();
ParameterizedRowMapper<event_notification_methods> mapper =
new ParameterizedRowMapper<event_notification_methods>() {
@Override
public event_notification_methods mapRow(ResultSet rs, int rowNum) throws SQLException {
event_notification_methods entity = new event_notification_methods();
entity.setmethod_id(rs.getInt("method_id"));
entity.setmethod_type(EventNotificationMethods.EMAIL);
return entity;
}
};
return getCallsHandler().executeReadList("GetAllFromevent_notification_methods",mapper,parameterSource);
}
@SuppressWarnings("unchecked")
@Override
public List<event_notification_methods> getEventNotificationMethodsById(int method_id) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("method_id", method_id);
ParameterizedRowMapper<event_notification_methods> mapper =
new ParameterizedRowMapper<event_notification_methods>() {
@Override
public event_notification_methods mapRow(ResultSet rs, int rowNum) throws SQLException {
event_notification_methods entity = new event_notification_methods();
entity.setmethod_id(rs.getInt("method_id"));
entity.setmethod_type(EventNotificationMethods.EMAIL);
return entity;
}
};
return getCallsHandler().executeReadList("GetEventNotificationMethodById", mapper, parameterSource);
}
@SuppressWarnings("unchecked")
@Override
public List<event_notification_methods> getEventNotificationMethodsByType(String method_type) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("method_type", method_type);
ParameterizedRowMapper<event_notification_methods> mapper =
new ParameterizedRowMapper<event_notification_methods>() {
@Override
public event_notification_methods mapRow(ResultSet rs, int rowNum) throws SQLException {
event_notification_methods entity = new event_notification_methods();
entity.setmethod_id(rs.getInt("method_id"));
entity.setmethod_type(EventNotificationMethods.EMAIL);
return entity;
}
};
return getCallsHandler().executeReadList("GetEventNotificationMethodByType", mapper, parameterSource);
}
@Override
public void subscribe(event_subscriber subscriber) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("event_up_name", subscriber.getevent_up_name())
.addValue("method_id", subscriber.getmethod_id())
.addValue("method_address", subscriber.getmethod_address())
.addValue("subscriber_id", subscriber.getsubscriber_id())
.addValue("tag_name", subscriber.gettag_name());
getCallsHandler().executeModification("Insertevent_subscriber", parameterSource);
}
@Override
public void update(event_subscriber subscriber, int oldMethodId) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("event_up_name", subscriber.getevent_up_name())
.addValue("old_method_id", oldMethodId)
.addValue("new_method_id", subscriber.getmethod_id())
.addValue("subscriber_id", subscriber.getsubscriber_id());
getCallsHandler().executeModification("Updateevent_subscriber", parameterSource);
}
@Override
public void unsubscribe(event_subscriber subscriber) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("event_up_name", subscriber.getevent_up_name())
.addValue("method_id", subscriber.getmethod_id())
.addValue("subscriber_id", subscriber.getsubscriber_id())
.addValue("tag_name", subscriber.gettag_name());
getCallsHandler().executeModification("Deleteevent_subscriber", parameterSource);
}
@SuppressWarnings("unchecked")
@Override
public List<event_map> getAllEventMaps() {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource();
ParameterizedRowMapper<event_map> mapper = new ParameterizedRowMapper<event_map>() {
@Override
public event_map mapRow(ResultSet rs, int rowNum) throws SQLException {
event_map entity = new event_map();
entity.setevent_up_name(rs.getString("event_up_name"));
entity.setevent_down_name(rs.getString("event_down_name"));
return entity;
}
};
return getCallsHandler().executeReadList("GetAllFromevent_map", mapper, parameterSource);
}
@SuppressWarnings("unchecked")
@Override
public List<event_map> getEventMapByName(String event_up_name) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("event_name", event_up_name);
ParameterizedRowMapper<event_map> mapper = new ParameterizedRowMapper<event_map>() {
@Override
public event_map mapRow(ResultSet rs, int rowNum) throws SQLException {
event_map entity = new event_map();
entity.setevent_up_name(rs.getString("event_up_name"));
entity.setevent_down_name(rs.getString("event_down_name"));
return entity;
}
};
return getCallsHandler().executeReadList("GetEventMapByName", mapper, parameterSource);
}
}