Skip to content

Commit a374874

Browse files
Merge pull request #158 from TanyaEf/master
New InputControlsService
2 parents 304706b + 417765e commit a374874

24 files changed

+940
-94
lines changed

README.md

Lines changed: 114 additions & 47 deletions
Large diffs are not rendered by default.

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/attributes/BatchAttributeAdapter.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.jaspersoft.jasperserver.jaxrs.client.core.RequestExecution;
3030
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
3131
import com.jaspersoft.jasperserver.jaxrs.client.core.ThreadPoolUtil;
32+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.MandatoryParameterNotFoundException;
3233
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
3334
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
3435
import java.util.Collection;
@@ -76,7 +77,7 @@ public BatchAttributeAdapter setIncludePermissions(Boolean includePermissions) {
7677

7778

7879
public OperationResult<HypermediaAttributesListWrapper> get() {
79-
return buildRequest().addParams(params).get();
80+
return buildRequest().get();
8081
}
8182

8283
public <R> RequestExecution asyncGet(final Callback<OperationResult<HypermediaAttributesListWrapper>, R> callback) {
@@ -93,7 +94,7 @@ public void run() {
9394
}
9495

9596
public OperationResult<HypermediaAttributesListWrapper> delete() {
96-
return buildRequest().addParams(params).delete();
97+
return buildRequest().delete();
9798
}
9899

99100
public <R> RequestExecution asyncDelete(final Callback<OperationResult<HypermediaAttributesListWrapper>, R> callback) {
@@ -110,19 +111,21 @@ public void run() {
110111
}
111112

112113
public OperationResult<HypermediaAttributesListWrapper> createOrUpdate(HypermediaAttributesListWrapper attributesListWrapper) {
113-
if (params.get("name") == null || params.get("name").size() == 0) {
114-
throw new IllegalStateException("Names of attributes were not defined.");
114+
if (attributesListWrapper == null) {
115+
throw new MandatoryParameterNotFoundException("Attributes are required");
115116
}
116-
LinkedList<HypermediaAttribute> list = new LinkedList<HypermediaAttribute>(attributesListWrapper.getProfileAttributes());
117-
for (Iterator<HypermediaAttribute> iterator = list.iterator();iterator.hasNext();) {
118-
HypermediaAttribute current = iterator.next();
119-
if (!params.get("name").contains(current.getName())) {
120-
iterator.remove();
117+
if (params.get("name") != null && params.get("name").size() != 0) {
118+
LinkedList<HypermediaAttribute> list = new LinkedList<HypermediaAttribute>(attributesListWrapper.getProfileAttributes());
119+
for (Iterator<HypermediaAttribute> iterator = list.iterator(); iterator.hasNext(); ) {
120+
HypermediaAttribute current = iterator.next();
121+
if (!params.get("name").contains(current.getName())) {
122+
iterator.remove();
123+
}
121124
}
125+
attributesListWrapper.setProfileAttributes(list);
122126
}
123-
attributesListWrapper.setProfileAttributes(list);
124127
return buildRequest()
125-
.setContentType(MimeTypeUtil.toCorrectContentMime(sessionStorage.getConfiguration(),"application/hal+{mime}"))
128+
.setContentType(MimeTypeUtil.toCorrectContentMime(sessionStorage.getConfiguration(), "application/hal+{mime}"))
126129
.put(attributesListWrapper);
127130
}
128131

@@ -146,9 +149,10 @@ private JerseyRequest<HypermediaAttributesListWrapper> buildRequest() {
146149
HypermediaAttributesListWrapper.class,
147150
new String[]{holderUri, "attributes"}, new DefaultErrorHandler());
148151
if (includePermissions) {
149-
request.setAccept(MimeTypeUtil.toCorrectAcceptMime(sessionStorage.getConfiguration(),"application/hal+{mime}"));
152+
request.setAccept(MimeTypeUtil.toCorrectAcceptMime(sessionStorage.getConfiguration(), "application/hal+{mime}"));
150153
request.addParam("_embedded", "permission");
151154
}
155+
request.addParams(params);
152156
return request;
153157
}
154158
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/bundles/BundlesService.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,16 @@ public BundlesService(SessionStorage sessionStorage) {
4242
}
4343

4444
public BundlesService forLocale(String locale) {
45-
this.locale = new Locale(locale);
45+
if (locale != null) {
46+
this.forLocale(new Locale(locale));
47+
}
4648
return this;
4749
}
4850

4951
public BundlesService forLocale(Locale locale) {
52+
if (locale != null) {
5053
this.locale = locale;
54+
}
5155
return this;
5256
}
5357

@@ -63,16 +67,22 @@ private JerseyRequest<Map<String, String>> buildBundleRequest(String bundleName)
6367
JerseyRequest<Map<String, String>> request =
6468
JerseyRequest.buildRequest(sessionStorage, new GenericType<Map<String, String>>() {
6569
}, new String[]{"/bundles", bundleName}, new DefaultErrorHandler());
66-
request.setAccept(MediaType.APPLICATION_JSON).addHeader("Accept-Language", locale.toString().replace('_', '-'));
70+
request.setAccept(MediaType.APPLICATION_JSON);
71+
if (!"".equals(this.locale.getLanguage())) {
72+
request.addHeader("Accept-Language", locale.toString().replace('_', '-'));
73+
}
6774
return request;
6875
}
6976

7077
private JerseyRequest<Map<String, Map<String, String>>> buildBundlesRequest() {
7178
JerseyRequest<Map<String, Map<String, String>>> request =
7279
JerseyRequest.buildRequest(sessionStorage, new GenericType<Map<String, Map<String, String>>>() {
7380
}, new String[]{"/bundles"}, new DefaultErrorHandler());
74-
request.setAccept(MediaType.APPLICATION_JSON).addHeader("Accept-Language", locale.toString().replace('_', '-'));
81+
82+
request.setAccept(MediaType.APPLICATION_JSON);
83+
if (!"".equals(this.locale.getLanguage())) {
84+
request.addHeader("Accept-Language", locale.toString().replace('_', '-'));
85+
}
7586
return request;
7687
}
77-
7888
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls;
2+
3+
import com.jaspersoft.jasperserver.dto.reports.inputcontrols.ReportInputControl;
4+
import com.jaspersoft.jasperserver.dto.reports.inputcontrols.ReportInputControlsListWrapper;
5+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
6+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
7+
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
8+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.MandatoryParameterNotFoundException;
9+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
10+
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
11+
import java.util.List;
12+
13+
/**
14+
* @author Tetiana Iefimenko
15+
*/
16+
public class InputControlsAdapter extends AbstractAdapter{
17+
18+
private String containerUri;
19+
private Boolean excludeState = false;
20+
21+
public InputControlsAdapter container(String uri) {
22+
this.containerUri = uri;
23+
return this;
24+
}
25+
26+
public InputControlsAdapter excludeState(Boolean value) {
27+
this.excludeState = value;
28+
return this;
29+
}
30+
31+
public InputControlsAdapter(SessionStorage sessionStorage) {
32+
super(sessionStorage);
33+
}
34+
35+
public InputControlsValuesAdapter values() {
36+
return new InputControlsValuesAdapter(sessionStorage, containerUri);
37+
}
38+
39+
public OperationResult<ReportInputControlsListWrapper> get(){
40+
return buildRequest().get();
41+
}
42+
43+
public OperationResult<ReportInputControlsListWrapper> reorder(List<ReportInputControl> inputControls){
44+
ReportInputControlsListWrapper wrapper = new ReportInputControlsListWrapper(inputControls);
45+
return buildRequest().put(wrapper);
46+
}
47+
48+
private JerseyRequest<ReportInputControlsListWrapper> buildRequest(){
49+
if (containerUri == null) {
50+
throw new MandatoryParameterNotFoundException("Uri of container should be specified");
51+
}
52+
JerseyRequest<ReportInputControlsListWrapper> request = JerseyRequest.buildRequest(sessionStorage,
53+
ReportInputControlsListWrapper.class,
54+
new String[]{"/reports", containerUri, "/inputControls"},
55+
new DefaultErrorHandler());
56+
if (excludeState) {
57+
request.addParam("exclude", "state");
58+
}
59+
return request;
60+
}
61+
62+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls;
2+
3+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
4+
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
5+
6+
/**
7+
* @author Tetiana Iefimenko
8+
*/
9+
public class InputControlsService extends AbstractAdapter {
10+
11+
public InputControlsService(SessionStorage sessionStorage) {
12+
super(sessionStorage);
13+
}
14+
15+
public InputControlsAdapter inputControls() {
16+
return new InputControlsAdapter (sessionStorage);
17+
}
18+
19+
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls;
2+
3+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
4+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
5+
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;
16+
17+
/**
18+
* @author Tetiana Iefimenko
19+
*/
20+
public class InputControlsValuesAdapter extends AbstractAdapter{
21+
22+
private String containerUri;
23+
private Boolean useFreshData = false;
24+
private Boolean includeFullStructure = false;
25+
private MultivaluedHashMap<String, String> inputControlsValues = new MultivaluedHashMap<String, String>();
26+
private StringBuilder ids = new StringBuilder("");
27+
28+
public InputControlsValuesAdapter(SessionStorage sessionStorage, String containerUri) {
29+
super(sessionStorage);
30+
if (containerUri == null) {
31+
throw new MandatoryParameterNotFoundException("Uri of container should be specified");
32+
}
33+
this.containerUri = containerUri;
34+
}
35+
36+
public InputControlsValuesAdapter useCashedData(Boolean value) {
37+
useFreshData = !value;
38+
return this;
39+
}
40+
41+
public InputControlsValuesAdapter includeFullStructure(Boolean value) {
42+
includeFullStructure = value;
43+
return this;
44+
}
45+
46+
public InputControlsValuesAdapter parameter(String name, String value) {
47+
this.inputControlsValues.add(name, value);
48+
return this;
49+
}
50+
51+
public InputControlsValuesAdapter parameter(String name, String... values) {
52+
this.inputControlsValues.addAll(name, values);
53+
return this;
54+
}
55+
56+
public OperationResult<InputControlStateListWrapper> run() {
57+
if (inputControlsValues.size() == 0) {
58+
throw new MandatoryParameterNotFoundException();
59+
}
60+
if (!includeFullStructure) {
61+
ids.append("/");
62+
Set<String> keySet = inputControlsValues.keySet();
63+
String[] idsArray = keySet.toArray(new String[keySet.size()]);
64+
ids.append(StringUtils.join(idsArray, ";"));
65+
}
66+
return buildRequest().post(valuesToArrays());
67+
}
68+
69+
public OperationResult<InputControlStateListWrapper> get(){
70+
return buildRequest().get();
71+
}
72+
73+
private JerseyRequest<InputControlStateListWrapper> buildRequest(){
74+
75+
JerseyRequest<InputControlStateListWrapper> request = JerseyRequest.buildRequest(sessionStorage,
76+
InputControlStateListWrapper.class,
77+
new String[]{"/reports", containerUri, "/inputControls",ids.toString(), "/values"},
78+
new DefaultErrorHandler());
79+
if (useFreshData) {
80+
request.addParam("freshData", useFreshData.toString());
81+
}
82+
return request;
83+
}
84+
85+
private Map<String, String[]> valuesToArrays() {
86+
Map<String, String[]> result = new LinkedHashMap<String, String[]>();
87+
List<String> listValues;
88+
String[] arrayValues;
89+
for (String key : inputControlsValues.keySet()) {
90+
listValues = inputControlsValues.get(key);
91+
arrayValues = new String[listValues.size()];
92+
result.put(key, listValues.toArray(arrayValues));
93+
}
94+
return result;
95+
}
96+
97+
}

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/ReportParametersAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@
3333
import javax.ws.rs.core.MultivaluedMap;
3434

3535
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
36-
36+
/**
37+
* @deprecated Replaced by {@link com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls.InputControlsAdapter}.
38+
*/
3739
public class ReportParametersAdapter extends AbstractAdapter {
3840

3941
protected final 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){

0 commit comments

Comments
 (0)