Skip to content

Commit 33830ad

Browse files
author
TanyaEf
committed
New InputControlsService implementation
1 parent 5f99b37 commit 33830ad

File tree

10 files changed

+124
-9
lines changed

10 files changed

+124
-9
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<groupId>com.jaspersoft</groupId>
99
<artifactId>jrs-rest-java-client</artifactId>
10-
<version>6.1.5</version>
10+
<version>6.1.4</version>
1111
<name>REST client for JasperReports server</name>
1212
<url>http://github.com/Jaspersoft/jrs-rest-java-client</url>
1313

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,58 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls;
22

3+
import com.jaspersoft.jasperserver.dto.reports.inputcontrols.ReportInputControl;
4+
import com.jaspersoft.jasperserver.dto.reports.inputcontrols.ReportInputControlsListWrapper;
35
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
6+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
47
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
8+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
9+
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
10+
import java.util.List;
511

612
/**
713
* @author Tetiana Iefimenko
814
*/
915
public class InputControlsAdapter extends AbstractAdapter{
1016

11-
private String reportUri;
17+
private String containerUri;
18+
private Boolean excludeState = false;
1219

1320
public InputControlsAdapter container(String uri) {
14-
this.reportUri = uri;
21+
this.containerUri = uri;
1522
return this;
1623
}
1724

25+
public InputControlsAdapter excludeState(Boolean value) {
26+
this.excludeState = value;
27+
return this;
28+
}
29+
1830
public InputControlsAdapter(SessionStorage sessionStorage) {
1931
super(sessionStorage);
2032
}
2133

2234
public InputControlsValuesAdapter values() {
23-
return new InputControlsValuesAdapter(sessionStorage);
35+
return new InputControlsValuesAdapter(sessionStorage, containerUri);
2436
}
37+
38+
public OperationResult<ReportInputControlsListWrapper> get(){
39+
return buildRequest().get();
40+
}
41+
42+
public OperationResult<ReportInputControlsListWrapper> reorder(List<ReportInputControl> inputControls){
43+
ReportInputControlsListWrapper wrapper = new ReportInputControlsListWrapper(inputControls);
44+
return buildRequest().put(wrapper);
45+
}
46+
47+
private JerseyRequest<ReportInputControlsListWrapper> buildRequest(){
48+
JerseyRequest<ReportInputControlsListWrapper> request = JerseyRequest.buildRequest(sessionStorage,
49+
ReportInputControlsListWrapper.class,
50+
new String[]{"/reports", containerUri, "/inputControls"},
51+
new DefaultErrorHandler());
52+
if (excludeState) {
53+
request.addParam("exclude", "state");
54+
}
55+
return request;
56+
}
57+
2558
}
Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,86 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls;
22

33
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
4+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
45
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
6+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.MandatoryParameterNotFoundException;
7+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
8+
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
9+
import com.jaspersoft.jasperserver.jaxrs.client.dto.reports.inputcontrols.InputControlStateListWrapper;
10+
import java.util.LinkedHashMap;
11+
import java.util.List;
12+
import java.util.Map;
13+
import java.util.Set;
14+
import javax.ws.rs.core.MultivaluedHashMap;
15+
import org.apache.commons.lang3.StringUtils;
516

617
/**
718
* @author Tetiana Iefimenko
819
*/
920
public class InputControlsValuesAdapter extends AbstractAdapter{
1021

11-
public InputControlsValuesAdapter(SessionStorage sessionStorage) {
22+
private String containerUri;
23+
private Boolean useFreshData = false;
24+
private MultivaluedHashMap<String, String> inputControlsValues = new MultivaluedHashMap<String, String>();
25+
private StringBuilder ids = new StringBuilder("");
26+
27+
public InputControlsValuesAdapter(SessionStorage sessionStorage, String containerUri) {
1228
super(sessionStorage);
29+
this.containerUri = containerUri;
30+
}
31+
32+
public InputControlsValuesAdapter useCashedData(Boolean value) {
33+
useFreshData = !value;
34+
return this;
35+
}
36+
37+
public InputControlsValuesAdapter parameter(String name, String value) {
38+
this.inputControlsValues.add(name, value);
39+
return this;
40+
}
41+
42+
public InputControlsValuesAdapter parameter(String name, String... values) {
43+
this.inputControlsValues.addAll(name, values);
44+
return this;
1345
}
1446

47+
public OperationResult<InputControlStateListWrapper> run() {
48+
if (inputControlsValues.size() == 0) {
49+
throw new MandatoryParameterNotFoundException();
50+
}
51+
ids.append("/");
52+
Set<String> keySet = inputControlsValues.keySet();
53+
String[] idsArray = keySet.toArray(new String[keySet.size()]);
54+
ids.append(StringUtils.join(idsArray, ";"));
55+
return buildRequest().post(valuesToArrays());
56+
}
57+
58+
public OperationResult<InputControlStateListWrapper> get(){
59+
return buildRequest().get();
60+
}
61+
62+
private JerseyRequest<InputControlStateListWrapper> buildRequest(){
63+
64+
JerseyRequest<InputControlStateListWrapper> request = JerseyRequest.buildRequest(sessionStorage,
65+
InputControlStateListWrapper.class,
66+
new String[]{"/reports", containerUri, "/inputControls",ids.toString(), "/values"},
67+
new DefaultErrorHandler());
68+
if (useFreshData) {
69+
request.addParam("freshData", useFreshData.toString());
70+
}
71+
return request;
72+
}
73+
74+
private Map<String, String[]> valuesToArrays() {
75+
Map<String, String[]> result = new LinkedHashMap<String, String[]>();
76+
List<String> listValues;
77+
String[] arrayValues;
78+
for (String key : inputControlsValues.keySet()) {
79+
listValues = inputControlsValues.get(key);
80+
arrayValues = new String[listValues.size()];
81+
result.put(key, listValues.toArray(arrayValues));
82+
}
83+
return result;
84+
}
1585

1686
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/reporting/reportparameters/ReorderingReportParametersAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
import java.util.List;
3030

3131
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
32-
32+
/**
33+
* @deprecated Replaced by {@link com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls.InputControlsAdapter}.
34+
*/
3335
public class ReorderingReportParametersAdapter extends ReportParametersAdapter {
3436

3537
public ReorderingReportParametersAdapter(SessionStorage sessionStorage, String reportUnitUri) {

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/reporting/reportparameters/ReportParametersConverter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828

2929
import java.util.*;
3030

31+
/**
32+
* @deprecated Replaced by {@link com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls.InputControlsValuesAdapter}.
33+
*/
3134
public class ReportParametersConverter {
3235

3336
public static Map<String, Object> getValueMapFromInputControlStates(List<InputControlState> states) {

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/reporting/reportparameters/ReportParametersUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
import java.util.ArrayList;
2929
import java.util.List;
3030

31+
/**
32+
* @deprecated Replaced by {@link com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls.InputControlsValuesAdapter}.
33+
*/
3134
public class ReportParametersUtils {
3235

3336
public static ReportParameters toReportParameters(MultivaluedMap<String, String> params){

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/Session.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.domain.DomainMetadataService;
2828
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.importexport.exportservice.ExportService;
2929
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.importexport.importservice.ImportService;
30+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls.InputControlsService;
3031
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.jobs.JobsService;
3132
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.permissions.PermissionsService;
3233
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.query.QueryExecutorService;
@@ -112,4 +113,6 @@ public AttributesService attributesService() {
112113
return getService(AttributesService.class);
113114
}
114115

116+
public InputControlsService inputControlsService() {return getService(InputControlsService.class);}
117+
115118
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/connection/ConnectionMediaType.java renamed to src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/enums/ConnectionMediaType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* along with this program.&nbsp; If not, see <http://www.gnu.org/licenses/>.
2020
*/
2121

22-
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.connection;
22+
package com.jaspersoft.jasperserver.jaxrs.client.core.enums;
2323

2424
public final class ConnectionMediaType {
2525

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/providers/CustomRepresentationTypeProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
package com.jaspersoft.jasperserver.jaxrs.client.providers;
2323

2424
import com.jaspersoft.jasperserver.dto.resources.ResourceMediaType;
25-
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.connection.ConnectionMediaType;
25+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.ConnectionMediaType;
2626
import java.lang.annotation.Annotation;
2727
import java.lang.reflect.Type;
2828
import javax.ws.rs.Consumes;

src/test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/connection/ConnectionMediaTypeTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.connection;
22

3+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.ConnectionMediaType;
34
import org.testng.annotations.Test;
45

56
import java.lang.reflect.Constructor;
@@ -10,7 +11,7 @@
1011
import static org.testng.Assert.assertNotNull;
1112

1213
/**
13-
* Unit test for {@link com.jaspersoft.jasperserver.jaxrs.client.apiadapters.connection.ConnectionMediaType}
14+
* Unit test for {@link com.jaspersoft.jasperserver.jaxrs.client.core.enums.ConnectionMediaType}
1415
*/
1516
public class ConnectionMediaTypeTest {
1617

0 commit comments

Comments
 (0)