Release 1.7.3 DCAEGEN2 VESCollector container
[dcaegen2/collectors/ves.git] / src / main / java / org / onap / dcae / configuration / Conversions.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.onap.dcaegen2.collectors.ves
4  * ================================================================================
5  * Copyright (C) 2018,2020 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.configuration;
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.JSONObject;
32
33 /**
34  * @author Pawel Szalapski (pawel.szalapski@nokia.com)
35  */
36 interface Conversions {
37
38     static Try<JSONObject> toJson(String strBody) {
39         return API.Try(() -> new JSONObject(strBody))
40             .mapFailure(enhanceError("Value '%s' is not a valid JSON document", strBody));
41     }
42
43     static <T> List<T> toList(Iterator<T> iterator) {
44         return List
45             .ofAll(StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED), false));
46     }
47 }