5f5ef66aa178a038babdfcb7f6fe5396fdef5c0f
[transportpce.git] / tests / honeynode / 1.2.1 / minimal-distribution-core / src / main / java / io / fd / honeycomb / infra / distro / data / DataTreeProvider.java
1 /*
2  * Copyright (c) 2016 Cisco and/or its affiliates.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package io.fd.honeycomb.infra.distro.data;
18
19 import com.google.inject.Inject;
20 import io.fd.honeycomb.binding.init.ProviderTrait;
21 import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
22 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
23 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
24 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
25 import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
26
27 public abstract class DataTreeProvider extends ProviderTrait<DataTree> {
28
29     @Inject
30     private DOMSchemaService schemaService;
31     @Inject
32     private HoneycombConfiguration config;
33
34     @Override
35     public DataTree create() {
36         DataTree delegate = new InMemoryDataTreeFactory().create(getType());
37         delegate.setSchemaContext(schemaService.getGlobalContext());
38         return delegate;
39     }
40
41     public abstract DataTreeConfiguration getType();
42
43     public static class ConfigDataTreeProvider extends DataTreeProvider {
44         @Override
45         public DataTreeConfiguration getType() {
46             return DataTreeConfiguration.DEFAULT_CONFIGURATION;
47         }
48
49     }
50
51     public static class ContextDataTreeProvider extends DataTreeProvider {
52         @Override
53         public DataTreeConfiguration getType() {
54             return DataTreeConfiguration.DEFAULT_OPERATIONAL;
55         }
56
57     }
58 }