Create plugin point for csar generation
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / tosca / FJToVavrHelper.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. 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.openecomp.sdc.be.tosca;
21
22 import io.vavr.control.Option;
23 import io.vavr.control.Try;
24 import java.util.List;
25 import java.util.function.Function;
26 import org.openecomp.sdc.be.model.ComponentInstance;
27
28 /**
29  * Helper class providing facilities for migrating from FJ to VAVR
30  */
31 public final class FJToVavrHelper {
32
33     private FJToVavrHelper() {
34     }
35
36     public interface Try0 {
37
38         /**
39          * Converts a {@link fj.data.Either} to a {@link io.vavr.control.Try}
40          *
41          * @param e
42          * @param onError
43          * @return
44          */
45         static <L, R> Try<L> fromEither(fj.data.Either<L, R> e, Function<R, Throwable> onError) {
46             return e.either(Try::success, r -> Try.failure(onError.apply(r)));
47         }
48
49         static io.vavr.collection.List<ComponentInstance> javaListToVavrList(List<ComponentInstance> componentInstances) {
50             return Option.of(componentInstances).map(io.vavr.collection.List::ofAll).getOrElse(io.vavr.collection.List::empty);
51         }
52     }
53 }