package org.ovirt.engine.core.dao; import java.util.List; import javax.inject.Named; import javax.inject.Singleton; import org.ovirt.engine.core.common.EventNotificationMethod; import org.ovirt.engine.core.common.businessentities.EventSubscriber; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; /** * {@code EventDaoImpl} provides an implementation of {@link EventDao}. */ @Named @Singleton public class EventDaoImpl extends BaseDao implements EventDao { private static final RowMapper<EventSubscriber> eventSubscriberRowMapper = (rs, rowNum) -> { EventSubscriber entity = new EventSubscriber(); entity.setEventUpName(rs.getString("event_up_name")); entity.setEventNotificationMethod(EventNotificationMethod.valueOfString(rs.getString("notification_method"))); entity.setMethodAddress(rs.getString("method_address")); entity.setSubscriberId(getGuidDefaultEmpty(rs, "subscriber_id")); entity.setTagName(rs.getString("tag_name")); return entity; }; @Override public List<EventSubscriber> getAllForSubscriber(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("subscriber_id", id); return getCallsHandler().executeReadList("Getevent_subscriberBysubscriber_id", eventSubscriberRowMapper, parameterSource); } @Override public void subscribe(EventSubscriber subscriber) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("event_up_name", subscriber.getEventUpName()) .addValue("notification_method", subscriber.getEventNotificationMethod().getAsString()) .addValue("method_address", subscriber.getMethodAddress()) .addValue("subscriber_id", subscriber.getSubscriberId()) .addValue("tag_name", subscriber.getTagName()); getCallsHandler().executeModification("Insertevent_subscriber", parameterSource); } @Override public void unsubscribe(EventSubscriber subscriber) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("event_up_name", subscriber.getEventUpName()) .addValue("notification_method", subscriber.getEventNotificationMethod().getAsString()) .addValue("subscriber_id", subscriber.getSubscriberId()) .addValue("tag_name", subscriber.getTagName()); getCallsHandler().executeModification("Deleteevent_subscriber", parameterSource); } }