e2ce10ded8f8f4ad609d198aae0ff621c4d1b0d6
[ccsdk/features.git] /
1 /*******************************************************************************
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  ******************************************************************************/
18 package org.onap.ccsdk.features.sdnr.wt.devicemanager.impl;
19
20 import org.eclipse.jdt.annotation.NonNull;
21 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
22 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
23 import org.opendaylight.mdsal.binding.api.MountPoint;
24
25 /**
26  * @author herbert
27  *
28  */
29 class MyNetworkElementFactory<L extends NetworkElementFactory> {
30
31
32     @FunctionalInterface
33     interface Register<X, Y, Z> {
34         public void register(X mountPointNodeName, Y mountPoint, Z ne);
35     }
36
37     private final Register<String, MountPoint, NetworkElement> init;
38     private final @NonNull L factory;
39
40     @SuppressWarnings("null")
41     MyNetworkElementFactory(@NonNull L factory, Register<String, MountPoint, NetworkElement> init) {
42         super();
43         if (init == null || factory == null) {
44             throw new IllegalArgumentException("Null not allowed here.");
45         }
46         this.init = init;
47         this.factory = factory;
48     }
49     public Register<String, MountPoint, NetworkElement> getInit() {
50         return init;
51     }
52     public @NonNull L getFactory() {
53         return factory;
54     }
55 }