Release 1.7.3 DCAEGEN2 VESCollector container
[dcaegen2/collectors/ves.git] / src / main / java / org / onap / dcae / controller / Conversions.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.onap.dcaegen2.collectors.ves
4  * ================================================================================
5  * Copyright (C) 2018 Nokia. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.dcae.controller;
21
22 import static org.onap.dcae.common.publishing.VavrUtils.enhanceError;
23
24 import io.vavr.API;
25 import io.vavr.collection.List;
26 import io.vavr.control.Try;
27 import java.util.Iterator;
28 import java.util.Spliterator;
29 import java.util.Spliterators;
30 import java.util.stream.StreamSupport;
31 import org.json.JSONArray;
32 import org.json.JSONObject;
33
34 /**
35  * @author Pawel Szalapski (pawel.szalapski@nokia.com)
36  */
37 interface Conversions {
38
39     static Try<JSONObject> toJson(String strBody) {
40         return API.Try(() -> new JSONObject(strBody))
41             .mapFailure(enhanceError("Value '%s' is not a valid JSON document", strBody));
42     }
43
44     static Try<JSONArray> toJsonArray(String strBody) {
45         return API.Try(() -> new JSONArray(strBody))
46             .mapFailure(enhanceError("Value '%s' is not a valid JSON array", strBody));
47     }
48
49     static <T> List<T> toList(Iterator<T> iterator) {
50         return List.ofAll(StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED), false));
51     }
52
53 }