package org.ovirt.engine.api.restapi.resource;
import java.util.List;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.Event;
import org.ovirt.engine.api.model.Events;
import org.ovirt.engine.api.resource.EventResource;
import org.ovirt.engine.api.resource.EventsResource;
import org.ovirt.engine.core.common.businessentities.AuditLog;
import org.ovirt.engine.core.common.interfaces.SearchType;
public class BackendEventsResource extends
AbstractBackendCollectionResource<Event, AuditLog> implements
EventsResource {
public BackendEventsResource() {
super(Event.class, AuditLog.class);
}
@Override
public Events list() {
return mapCollection(getBackendCollection());
}
private Events mapCollection(List<AuditLog> entities) {
Events collection = new Events();
for (AuditLog entity : entities) {
collection.getEvent().add(addLinks(map(entity)));
}
return collection;
}
@Override
@SingleEntityResource
public EventResource getEventSubResource(String id) {
return new BackendEventResource(id, this);
}
private List<AuditLog> getBackendCollection() {
return getBackendCollection(SearchType.AuditLog);
}
public Event lookupEvent(String id) {
Long longId = Long.valueOf(id);
for (AuditLog auditLog : getBackendCollection()) {
if (auditLog.getaudit_log_id() == longId)
return addLinks(map(auditLog));
}
return notFound();
}
@Override
protected Response performRemove(String id) {
throw new UnsupportedOperationException();
}
}