740c30c218cd92f8fae476c38880fa2611a80bfa
[hc2vpp.git] /
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.hc2vpp.routing.write.factory.base;
18
19 import io.fd.hc2vpp.common.translate.util.NamingContext;
20 import io.fd.hc2vpp.v3po.vppclassifier.VppClassifierContextManager;
21
22 import javax.annotation.Nonnull;
23
24 import static com.google.common.base.Preconditions.checkNotNull;
25
26 /**
27  * Extension to {@code ClassifierContextHolder} to hold also {@code NamingContext}
28  */
29 public abstract class BasicHopRequestFactory {
30
31     private final VppClassifierContextManager classifierContextManager;
32     private final NamingContext interfaceNamingContext;
33     private final NamingContext routingProtocolContext;
34
35     protected BasicHopRequestFactory(
36             @Nonnull final VppClassifierContextManager classifierContextManager,
37             @Nonnull final NamingContext interfaceContext,
38             @Nonnull final NamingContext routingProtocolContext) {
39         this.classifierContextManager = checkNotNull(classifierContextManager, "Classifier context cannot be null");
40         this.interfaceNamingContext = checkNotNull(interfaceContext, "Interface context cannot be null");
41         this.routingProtocolContext = checkNotNull(routingProtocolContext, "Routing protocol context cannot be null");
42     }
43
44     protected VppClassifierContextManager getVppClassifierContextManager() {
45         return this.classifierContextManager;
46     }
47
48     protected NamingContext getInterfaceNamingContext() {
49         return interfaceNamingContext;
50     }
51
52     protected NamingContext getRoutingProtocolContext() {
53         return routingProtocolContext;
54     }
55 }