package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.thumbnails; 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.MandatoryParameterNotFoundException; import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler; import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; /** * @author Alex Krasnyanskiy * @author Tetiana Iefimenko * @since 6.0.1-ALPHA */ public class SingleThumbnailAdapter extends AbstractAdapter { public static final String SERVICE_URI = "thumbnails"; private String reportUri; private Boolean defaultAllowed = false; private ArrayList<String> path = new ArrayList<String>(); public SingleThumbnailAdapter(SessionStorage sessionStorage) { super(sessionStorage); } public SingleThumbnailAdapter report(String uri) { if (uri != null && !uri.equals("")) { reportUri = uri; } return this; } public SingleThumbnailAdapter defaultAllowed(Boolean value) { this.defaultAllowed = value; return this; } public OperationResult<InputStream> get() { return request().get(); } private JerseyRequest<InputStream> request() { if (reportUri == null) { throw new MandatoryParameterNotFoundException("URI of report should be specified"); } path.add(SERVICE_URI); path.addAll(Arrays.asList(reportUri.split("/"))); JerseyRequest<InputStream> request = JerseyRequest.buildRequest(sessionStorage, InputStream.class, path.toArray(new String[path.size()]), new DefaultErrorHandler()); request.setAccept("image/jpeg"); request.addParam("defaultAllowed", defaultAllowed.toString()); return request; } }