Merge "Bug 2517: Catch RuntimeExceptions thrown from the DCL in DataChangeListener"
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / restconf / impl / IdentityValuesDTO.java
1 /*
2  * Copyright (c) 2014 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.controller.sal.restconf.impl;
9
10 import java.util.ArrayList;
11 import java.util.Collections;
12 import java.util.List;
13
14 public final class IdentityValuesDTO {
15
16     private final List<IdentityValue> elementData = new ArrayList<>();
17     private final String originValue;
18
19     public IdentityValuesDTO(final String namespace, final String value, final String prefix, final String originValue) {
20         elementData.add(new IdentityValue(namespace, value));
21         this.originValue = originValue;
22     }
23
24     public IdentityValuesDTO(final String originValue) {
25         this.originValue = originValue;
26     }
27
28     public IdentityValuesDTO() {
29         originValue = null;
30     }
31
32     public void add(final String namespace, final String value, final String prefix) {
33         elementData.add(new IdentityValue(namespace, value));
34     }
35
36     public void add(final IdentityValue identityValue) {
37         elementData.add(identityValue);
38     }
39
40     public List<IdentityValue> getValuesWithNamespaces() {
41         return Collections.unmodifiableList(elementData);
42     }
43
44     @Override
45     public String toString() {
46         return elementData.toString();
47     }
48
49     public String getOriginValue() {
50         return originValue;
51     }
52
53     public static final class IdentityValue {
54
55         private final String namespace;
56         private final String value;
57         private List<Predicate> predicates;
58
59         public IdentityValue(final String namespace, final String value) {
60             this.namespace = namespace;
61             this.value = value;
62         }
63
64         public String getNamespace() {
65             return namespace;
66         }
67
68         public String getValue() {
69             return value;
70         }
71
72
73         public List<Predicate> getPredicates() {
74             if (predicates == null) {
75                 return Collections.emptyList();
76             }
77             return Collections.unmodifiableList(predicates);
78         }
79
80         public void setPredicates(final List<Predicate> predicates) {
81             this.predicates = predicates;
82         }
83
84         @Override
85         public String toString() {
86             final StringBuilder sb = new StringBuilder();
87             if (namespace != null) {
88                 sb.append(namespace);
89             }
90             if (value != null) {
91                 sb.append(" - ").append(value);
92             }
93             if (predicates != null && !predicates.isEmpty()) {
94                 for (final Predicate predicate : predicates) {
95                     sb.append("[");
96                     predicate.toString();
97                     sb.append("]");
98                 }
99             }
100             return sb.toString();
101         }
102
103     }
104
105     public static final class Predicate {
106
107         private final IdentityValue name;
108         private final String value;
109
110         public Predicate(final IdentityValue name, final String value) {
111             super();
112             this.name = name;
113             this.value = value;
114         }
115
116         public IdentityValue getName() {
117             return name;
118         }
119
120         public String getValue() {
121             return value;
122         }
123
124         @Override
125         public String toString() {
126             final StringBuilder sb = new StringBuilder();
127             if (name != null) {
128                 sb.append(name.toString());
129             }
130             if (value != null) {
131                 sb.append("=").append(value);
132             }
133             return sb.toString();
134         }
135
136         public boolean isLeafList() {
137             return name == null ? true : false;
138         }
139
140     }
141 }

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.