PageRenderTime 50ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/dxp/apps/portal-workflow/portal-workflow-metrics-rest-client/src/main/java/com/liferay/portal/workflow/metrics/rest/client/resource/v1_0/NodeResource.java

http://github.com/liferay/liferay-portal
Java | 473 lines | 341 code | 115 blank | 17 comment | 33 complexity | a224c4b8963645170b1a516a7cadfd16 MD5 | raw file
Possible License(s): LGPL-2.0
  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * The contents of this file are subject to the terms of the Liferay Enterprise
  5. * Subscription License ("License"). You may not use this file except in
  6. * compliance with the License. You can obtain a copy of the License by
  7. * contacting Liferay, Inc. See the License for the specific language governing
  8. * permissions and limitations under the License, including but not limited to
  9. * distribution rights of the Software.
  10. *
  11. *
  12. *
  13. */
  14. package com.liferay.portal.workflow.metrics.rest.client.resource.v1_0;
  15. import com.liferay.portal.workflow.metrics.rest.client.dto.v1_0.Node;
  16. import com.liferay.portal.workflow.metrics.rest.client.http.HttpInvoker;
  17. import com.liferay.portal.workflow.metrics.rest.client.pagination.Page;
  18. import com.liferay.portal.workflow.metrics.rest.client.problem.Problem;
  19. import com.liferay.portal.workflow.metrics.rest.client.serdes.v1_0.NodeSerDes;
  20. import java.util.LinkedHashMap;
  21. import java.util.Locale;
  22. import java.util.Map;
  23. import java.util.logging.Level;
  24. import java.util.logging.Logger;
  25. import javax.annotation.Generated;
  26. /**
  27. * @author Rafael Praxedes
  28. * @generated
  29. */
  30. @Generated("")
  31. public interface NodeResource {
  32. public static Builder builder() {
  33. return new Builder();
  34. }
  35. public Page<Node> getProcessNodesPage(Long processId) throws Exception;
  36. public HttpInvoker.HttpResponse getProcessNodesPageHttpResponse(
  37. Long processId)
  38. throws Exception;
  39. public Node postProcessNode(Long processId, Node node) throws Exception;
  40. public HttpInvoker.HttpResponse postProcessNodeHttpResponse(
  41. Long processId, Node node)
  42. throws Exception;
  43. public void postProcessNodeBatch(
  44. Long processId, String callbackURL, Object object)
  45. throws Exception;
  46. public HttpInvoker.HttpResponse postProcessNodeBatchHttpResponse(
  47. Long processId, String callbackURL, Object object)
  48. throws Exception;
  49. public void deleteProcessNode(Long processId, Long nodeId) throws Exception;
  50. public HttpInvoker.HttpResponse deleteProcessNodeHttpResponse(
  51. Long processId, Long nodeId)
  52. throws Exception;
  53. public static class Builder {
  54. public Builder authentication(String login, String password) {
  55. _login = login;
  56. _password = password;
  57. return this;
  58. }
  59. public NodeResource build() {
  60. return new NodeResourceImpl(this);
  61. }
  62. public Builder endpoint(String host, int port, String scheme) {
  63. _host = host;
  64. _port = port;
  65. _scheme = scheme;
  66. return this;
  67. }
  68. public Builder header(String key, String value) {
  69. _headers.put(key, value);
  70. return this;
  71. }
  72. public Builder locale(Locale locale) {
  73. _locale = locale;
  74. return this;
  75. }
  76. public Builder parameter(String key, String value) {
  77. _parameters.put(key, value);
  78. return this;
  79. }
  80. public Builder parameters(String... parameters) {
  81. if ((parameters.length % 2) != 0) {
  82. throw new IllegalArgumentException(
  83. "Parameters length is not an even number");
  84. }
  85. for (int i = 0; i < parameters.length; i += 2) {
  86. String parameterName = String.valueOf(parameters[i]);
  87. String parameterValue = String.valueOf(parameters[i + 1]);
  88. _parameters.put(parameterName, parameterValue);
  89. }
  90. return this;
  91. }
  92. private Builder() {
  93. }
  94. private Map<String, String> _headers = new LinkedHashMap<>();
  95. private String _host = "localhost";
  96. private Locale _locale;
  97. private String _login = "";
  98. private String _password = "";
  99. private Map<String, String> _parameters = new LinkedHashMap<>();
  100. private int _port = 8080;
  101. private String _scheme = "http";
  102. }
  103. public static class NodeResourceImpl implements NodeResource {
  104. public Page<Node> getProcessNodesPage(Long processId) throws Exception {
  105. HttpInvoker.HttpResponse httpResponse =
  106. getProcessNodesPageHttpResponse(processId);
  107. String content = httpResponse.getContent();
  108. if ((httpResponse.getStatusCode() / 100) != 2) {
  109. _logger.log(
  110. Level.WARNING,
  111. "Unable to process HTTP response content: " + content);
  112. _logger.log(
  113. Level.WARNING,
  114. "HTTP response message: " + httpResponse.getMessage());
  115. _logger.log(
  116. Level.WARNING,
  117. "HTTP response status code: " +
  118. httpResponse.getStatusCode());
  119. throw new Problem.ProblemException(Problem.toDTO(content));
  120. }
  121. else {
  122. _logger.fine("HTTP response content: " + content);
  123. _logger.fine(
  124. "HTTP response message: " + httpResponse.getMessage());
  125. _logger.fine(
  126. "HTTP response status code: " +
  127. httpResponse.getStatusCode());
  128. }
  129. try {
  130. return Page.of(content, NodeSerDes::toDTO);
  131. }
  132. catch (Exception e) {
  133. _logger.log(
  134. Level.WARNING,
  135. "Unable to process HTTP response: " + content, e);
  136. throw new Problem.ProblemException(Problem.toDTO(content));
  137. }
  138. }
  139. public HttpInvoker.HttpResponse getProcessNodesPageHttpResponse(
  140. Long processId)
  141. throws Exception {
  142. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  143. if (_builder._locale != null) {
  144. httpInvoker.header(
  145. "Accept-Language", _builder._locale.toLanguageTag());
  146. }
  147. for (Map.Entry<String, String> entry :
  148. _builder._headers.entrySet()) {
  149. httpInvoker.header(entry.getKey(), entry.getValue());
  150. }
  151. for (Map.Entry<String, String> entry :
  152. _builder._parameters.entrySet()) {
  153. httpInvoker.parameter(entry.getKey(), entry.getValue());
  154. }
  155. httpInvoker.httpMethod(HttpInvoker.HttpMethod.GET);
  156. httpInvoker.path(
  157. _builder._scheme + "://" + _builder._host + ":" +
  158. _builder._port +
  159. "/o/portal-workflow-metrics/v1.0/processes/{processId}/nodes");
  160. httpInvoker.path("processId", processId);
  161. httpInvoker.userNameAndPassword(
  162. _builder._login + ":" + _builder._password);
  163. return httpInvoker.invoke();
  164. }
  165. public Node postProcessNode(Long processId, Node node)
  166. throws Exception {
  167. HttpInvoker.HttpResponse httpResponse = postProcessNodeHttpResponse(
  168. processId, node);
  169. String content = httpResponse.getContent();
  170. if ((httpResponse.getStatusCode() / 100) != 2) {
  171. _logger.log(
  172. Level.WARNING,
  173. "Unable to process HTTP response content: " + content);
  174. _logger.log(
  175. Level.WARNING,
  176. "HTTP response message: " + httpResponse.getMessage());
  177. _logger.log(
  178. Level.WARNING,
  179. "HTTP response status code: " +
  180. httpResponse.getStatusCode());
  181. throw new Problem.ProblemException(Problem.toDTO(content));
  182. }
  183. else {
  184. _logger.fine("HTTP response content: " + content);
  185. _logger.fine(
  186. "HTTP response message: " + httpResponse.getMessage());
  187. _logger.fine(
  188. "HTTP response status code: " +
  189. httpResponse.getStatusCode());
  190. }
  191. try {
  192. return NodeSerDes.toDTO(content);
  193. }
  194. catch (Exception e) {
  195. _logger.log(
  196. Level.WARNING,
  197. "Unable to process HTTP response: " + content, e);
  198. throw new Problem.ProblemException(Problem.toDTO(content));
  199. }
  200. }
  201. public HttpInvoker.HttpResponse postProcessNodeHttpResponse(
  202. Long processId, Node node)
  203. throws Exception {
  204. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  205. httpInvoker.body(node.toString(), "application/json");
  206. if (_builder._locale != null) {
  207. httpInvoker.header(
  208. "Accept-Language", _builder._locale.toLanguageTag());
  209. }
  210. for (Map.Entry<String, String> entry :
  211. _builder._headers.entrySet()) {
  212. httpInvoker.header(entry.getKey(), entry.getValue());
  213. }
  214. for (Map.Entry<String, String> entry :
  215. _builder._parameters.entrySet()) {
  216. httpInvoker.parameter(entry.getKey(), entry.getValue());
  217. }
  218. httpInvoker.httpMethod(HttpInvoker.HttpMethod.POST);
  219. httpInvoker.path(
  220. _builder._scheme + "://" + _builder._host + ":" +
  221. _builder._port +
  222. "/o/portal-workflow-metrics/v1.0/processes/{processId}/nodes");
  223. httpInvoker.path("processId", processId);
  224. httpInvoker.userNameAndPassword(
  225. _builder._login + ":" + _builder._password);
  226. return httpInvoker.invoke();
  227. }
  228. public void postProcessNodeBatch(
  229. Long processId, String callbackURL, Object object)
  230. throws Exception {
  231. HttpInvoker.HttpResponse httpResponse =
  232. postProcessNodeBatchHttpResponse(
  233. processId, callbackURL, object);
  234. String content = httpResponse.getContent();
  235. if ((httpResponse.getStatusCode() / 100) != 2) {
  236. _logger.log(
  237. Level.WARNING,
  238. "Unable to process HTTP response content: " + content);
  239. _logger.log(
  240. Level.WARNING,
  241. "HTTP response message: " + httpResponse.getMessage());
  242. _logger.log(
  243. Level.WARNING,
  244. "HTTP response status code: " +
  245. httpResponse.getStatusCode());
  246. throw new Problem.ProblemException(Problem.toDTO(content));
  247. }
  248. else {
  249. _logger.fine("HTTP response content: " + content);
  250. _logger.fine(
  251. "HTTP response message: " + httpResponse.getMessage());
  252. _logger.fine(
  253. "HTTP response status code: " +
  254. httpResponse.getStatusCode());
  255. }
  256. }
  257. public HttpInvoker.HttpResponse postProcessNodeBatchHttpResponse(
  258. Long processId, String callbackURL, Object object)
  259. throws Exception {
  260. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  261. httpInvoker.body(object.toString(), "application/json");
  262. if (_builder._locale != null) {
  263. httpInvoker.header(
  264. "Accept-Language", _builder._locale.toLanguageTag());
  265. }
  266. for (Map.Entry<String, String> entry :
  267. _builder._headers.entrySet()) {
  268. httpInvoker.header(entry.getKey(), entry.getValue());
  269. }
  270. for (Map.Entry<String, String> entry :
  271. _builder._parameters.entrySet()) {
  272. httpInvoker.parameter(entry.getKey(), entry.getValue());
  273. }
  274. httpInvoker.httpMethod(HttpInvoker.HttpMethod.POST);
  275. if (callbackURL != null) {
  276. httpInvoker.parameter(
  277. "callbackURL", String.valueOf(callbackURL));
  278. }
  279. httpInvoker.path(
  280. _builder._scheme + "://" + _builder._host + ":" +
  281. _builder._port +
  282. "/o/portal-workflow-metrics/v1.0/processes/{processId}/nodes/batch");
  283. httpInvoker.path("processId", processId);
  284. httpInvoker.userNameAndPassword(
  285. _builder._login + ":" + _builder._password);
  286. return httpInvoker.invoke();
  287. }
  288. public void deleteProcessNode(Long processId, Long nodeId)
  289. throws Exception {
  290. HttpInvoker.HttpResponse httpResponse =
  291. deleteProcessNodeHttpResponse(processId, nodeId);
  292. String content = httpResponse.getContent();
  293. if ((httpResponse.getStatusCode() / 100) != 2) {
  294. _logger.log(
  295. Level.WARNING,
  296. "Unable to process HTTP response content: " + content);
  297. _logger.log(
  298. Level.WARNING,
  299. "HTTP response message: " + httpResponse.getMessage());
  300. _logger.log(
  301. Level.WARNING,
  302. "HTTP response status code: " +
  303. httpResponse.getStatusCode());
  304. throw new Problem.ProblemException(Problem.toDTO(content));
  305. }
  306. else {
  307. _logger.fine("HTTP response content: " + content);
  308. _logger.fine(
  309. "HTTP response message: " + httpResponse.getMessage());
  310. _logger.fine(
  311. "HTTP response status code: " +
  312. httpResponse.getStatusCode());
  313. }
  314. try {
  315. return;
  316. }
  317. catch (Exception e) {
  318. _logger.log(
  319. Level.WARNING,
  320. "Unable to process HTTP response: " + content, e);
  321. throw new Problem.ProblemException(Problem.toDTO(content));
  322. }
  323. }
  324. public HttpInvoker.HttpResponse deleteProcessNodeHttpResponse(
  325. Long processId, Long nodeId)
  326. throws Exception {
  327. HttpInvoker httpInvoker = HttpInvoker.newHttpInvoker();
  328. if (_builder._locale != null) {
  329. httpInvoker.header(
  330. "Accept-Language", _builder._locale.toLanguageTag());
  331. }
  332. for (Map.Entry<String, String> entry :
  333. _builder._headers.entrySet()) {
  334. httpInvoker.header(entry.getKey(), entry.getValue());
  335. }
  336. for (Map.Entry<String, String> entry :
  337. _builder._parameters.entrySet()) {
  338. httpInvoker.parameter(entry.getKey(), entry.getValue());
  339. }
  340. httpInvoker.httpMethod(HttpInvoker.HttpMethod.DELETE);
  341. httpInvoker.path(
  342. _builder._scheme + "://" + _builder._host + ":" +
  343. _builder._port +
  344. "/o/portal-workflow-metrics/v1.0/processes/{processId}/nodes/{nodeId}");
  345. httpInvoker.path("processId", processId);
  346. httpInvoker.path("nodeId", nodeId);
  347. httpInvoker.userNameAndPassword(
  348. _builder._login + ":" + _builder._password);
  349. return httpInvoker.invoke();
  350. }
  351. private NodeResourceImpl(Builder builder) {
  352. _builder = builder;
  353. }
  354. private static final Logger _logger = Logger.getLogger(
  355. NodeResource.class.getName());
  356. private Builder _builder;
  357. }
  358. }