package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.settings; 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 com.jaspersoft.jasperserver.jaxrs.client.dto.settings.*; import javax.ws.rs.core.GenericType; import java.util.List; /** * @author Alex Krasnyanskiy * @author Tetiana Iefimenko * @since 6.0.3-ALPHA */ public class SingleSettingsAdapter extends AbstractAdapter { public static final String SERVICE_URI = "settings"; private String groupKey; public SingleSettingsAdapter(SessionStorage sessionStorage) { super(sessionStorage); } public <T> OperationResult<T> group(String group, Class<T> resultClass) { this.groupKey = group; return request(resultClass).get(); } public <T> OperationResult<T> group(String group, GenericType<T> genericType) { this.groupKey = group; return request(genericType).get(); } public OperationResult<RequestSettings> ofRequestGroup() { this.groupKey = "request"; return request(RequestSettings.class).get(); } public OperationResult<DataSourcePatternsSettings> ofDataSourcePatternsGroup() { this.groupKey = "dataSourcePatterns"; return request(DataSourcePatternsSettings.class).get(); } public OperationResult<List<UserTimeZone>> ofUserTimeZonesGroup() { this.groupKey = "userTimeZones"; return request(new GenericType<List<UserTimeZone>>(){}).get(); } public OperationResult<AwsSettings> ofAwsGroup() { this.groupKey = "awsSettings"; return request(AwsSettings.class).get(); } public OperationResult<DecimalFormatSymbolsSettings> ofDecimalFormatSymbolsGroup() { this.groupKey = "decimalFormatSymbols"; return request(DecimalFormatSymbolsSettings.class).get(); } public OperationResult<DashboardSettings> ofDashboardGroup() { this.groupKey = "dashboardSettings"; return request(DashboardSettings.class).get(); } public OperationResult<GlobalConfigurationSettings> ofGlobalConfigurationGroup() { this.groupKey = "globalConfiguration"; return request(GlobalConfigurationSettings.class).get(); } public OperationResult<DateTimeSettings> ofDateTimeGroup() { this.groupKey = "dateTimeSettings"; return request(DateTimeSettings.class).get(); } public OperationResult<InputControlsSettings> ofInputControlsGroup() { this.groupKey = "inputControls"; return request(InputControlsSettings.class).get(); } private <T> JerseyRequest<T> request(Class<T> resultClass) { return JerseyRequest.buildRequest( sessionStorage, resultClass, new String[]{SERVICE_URI, groupKey}, new DefaultErrorHandler()); } private <T> JerseyRequest<T> request(GenericType<T> genericType) { return JerseyRequest.buildRequest( sessionStorage, genericType, new String[]{SERVICE_URI, groupKey}, new DefaultErrorHandler()); } }