package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.diagnostic;
import com.jaspersoft.jasperserver.dto.common.PatchDescriptor;
import com.jaspersoft.jasperserver.dto.logcapture.CollectorSettings;
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
import java.io.InputStream;
/**
* <p/>
* <p/>
* ``
*
* @author tetiana.iefimenko
* @version $Id$
* @see
*/
public class SingleDiagnosticCollectorAdapter extends AbstractAdapter {
private CollectorSettings collector;
public SingleDiagnosticCollectorAdapter(SessionStorage sessionStorage, CollectorSettings collector) {
super(sessionStorage);
this.collector = collector;
}
public OperationResult<CollectorSettings> create() {
return JerseyRequest.buildRequest(sessionStorage,
CollectorSettings.class,
new String[]{"diagnostic", "collectors"},
new DefaultErrorHandler()).post(collector);
}
public OperationResult<CollectorSettings> delete() {
return buildCollectorRequest()
.delete();
}
public OperationResult<CollectorSettings> collectorSettings() {
return buildCollectorRequest().get();
}
/**
* This method can be used to stop the
* collector by setting "status" to "STOPPED" in the request.
* Stopping the collector will turn off logging and begin resource export
* (if "includeDataSnapshots"=true and resourceUri not empty).
*/
public OperationResult<CollectorSettings> updateCollectorSettings(CollectorSettings newData) {
return buildCollectorRequest().put(newData);
}
public OperationResult<CollectorSettings> updateCollectorSettings(PatchDescriptor newData) {
return buildCollectorRequest()
.addHeader("X-HTTP-Method-Override", "PATCH")
.post(newData);
}
public OperationResult<InputStream> collectorContent() {
JerseyRequest<InputStream> request = JerseyRequest.buildRequest(sessionStorage,
InputStream.class,
new String[]{"diagnostic", "collectors", collector.getId(), "content"},
new DefaultErrorHandler());
request.setAccept("application/zip");
return request.get();
}
protected JerseyRequest<CollectorSettings> buildCollectorRequest() {
return JerseyRequest.buildRequest(sessionStorage,
CollectorSettings.class,
new String[]{"diagnostic", "collectors", collector.getId()},
new DefaultErrorHandler());
}
}