Fix Java 5 IDE migration warnings
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / netconf / listener / UserPreferences.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.netconf.sal.connect.netconf.listener;
9
10 import javax.annotation.Nonnull;
11
12 /**
13  * DTO with user capabilities to override or merge with device specific capabilities.
14  */
15 public class UserPreferences {
16
17     private final NetconfSessionPreferences sessionPreferences;
18     private final boolean overrideModuleCapabilities;
19     private final boolean overrideNonModuleCapabilities;
20
21     public UserPreferences(@Nonnull final NetconfSessionPreferences sessionPreferences,
22             boolean overrideModuleCapabilities, boolean overrideNonModuleCapabilities) {
23
24         if (overrideModuleCapabilities && (sessionPreferences.getModuleBasedCaps() == null
25                 || sessionPreferences.getModuleBasedCaps().isEmpty())) {
26             throw new IllegalStateException(
27                     "Override module based capabilities flag set true but module based capabilities list is empty.");
28         }
29         if (overrideNonModuleCapabilities && (sessionPreferences.getNonModuleCaps() == null
30                 || sessionPreferences.getNonModuleCaps().isEmpty())) {
31             throw new IllegalStateException(
32                     "Override non-module based capabilities set true but non-module based capabilities list is empty.");
33         }
34
35         this.sessionPreferences = sessionPreferences;
36         this.overrideModuleCapabilities = overrideModuleCapabilities;
37         this.overrideNonModuleCapabilities = overrideNonModuleCapabilities;
38     }
39
40     public NetconfSessionPreferences getSessionPreferences() {
41         return sessionPreferences;
42     }
43
44     public boolean moduleBasedCapsOverrided() {
45         return overrideModuleCapabilities;
46     }
47
48     public boolean nonModuleBasedCapsOverrided() {
49         return overrideNonModuleCapabilities;
50     }
51
52     @Override
53     public String toString() {
54         final StringBuilder sb = new StringBuilder("UserPreferences{");
55         sb.append("sessionPreferences=").append(sessionPreferences);
56         sb.append(", overrideModuleCapabilities=").append(overrideModuleCapabilities);
57         sb.append(", overrideNonModuleCapabilities=").append(overrideNonModuleCapabilities);
58         sb.append('}');
59         return sb.toString();
60     }
61 }