2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.netconf.sal.connect.netconf.listener;
10 import org.eclipse.jdt.annotation.NonNull;
13 * DTO with user capabilities to override or merge with device specific capabilities.
15 public class UserPreferences {
17 private final NetconfSessionPreferences sessionPreferences;
18 private final boolean overrideModuleCapabilities;
19 private final boolean overrideNonModuleCapabilities;
21 public UserPreferences(final @NonNull NetconfSessionPreferences sessionPreferences,
22 final boolean overrideModuleCapabilities, final boolean overrideNonModuleCapabilities) {
24 if (overrideModuleCapabilities && sessionPreferences.moduleBasedCaps().isEmpty()) {
25 throw new IllegalStateException(
26 "Override module based capabilities flag set true but module based capabilities list is empty.");
28 if (overrideNonModuleCapabilities && sessionPreferences.nonModuleCaps().isEmpty()) {
29 throw new IllegalStateException(
30 "Override non-module based capabilities set true but non-module based capabilities list is empty.");
33 this.sessionPreferences = sessionPreferences;
34 this.overrideModuleCapabilities = overrideModuleCapabilities;
35 this.overrideNonModuleCapabilities = overrideNonModuleCapabilities;
38 public NetconfSessionPreferences getSessionPreferences() {
39 return sessionPreferences;
42 public boolean moduleBasedCapsOverrided() {
43 return overrideModuleCapabilities;
46 public boolean nonModuleBasedCapsOverrided() {
47 return overrideNonModuleCapabilities;
51 public String toString() {
52 final StringBuilder sb = new StringBuilder("UserPreferences{");
53 sb.append("sessionPreferences=").append(sessionPreferences);
54 sb.append(", overrideModuleCapabilities=").append(overrideModuleCapabilities);
55 sb.append(", overrideNonModuleCapabilities=").append(overrideNonModuleCapabilities);