BUG-272: remove trailing whitespace from Java files
[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(String namespace, String value, String prefix,String originValue) {
20         elementData.add(new IdentityValue(namespace, value, prefix));
21         this.originValue = originValue;
22     }
23
24     public IdentityValuesDTO(String originValue) {
25         this.originValue = originValue;
26     }
27
28     public IdentityValuesDTO() {
29         originValue = null;
30     }
31
32     public void add(String namespace, String value, String prefix) {
33         elementData.add(new IdentityValue(namespace, value, prefix));
34     }
35
36     public void add(IdentityValue identityValue) {
37         elementData.add(identityValue);
38     }
39
40
41     public List<IdentityValue> getValuesWithNamespaces() {
42         return Collections.unmodifiableList(elementData);
43     }
44
45     @Override
46     public String toString() {
47         return elementData.toString();
48     }
49
50     public String getOriginValue() {
51         return originValue;
52     }
53
54     public static final class IdentityValue {
55
56         private final String namespace;
57         private final String value;
58         private final String prefix;
59         private List<Predicate> predicates;
60
61         public IdentityValue(String namespace, String value, String prefix) {
62             this.namespace = namespace;
63             this.value = value;
64             this.prefix = prefix;
65         }
66
67         public String getNamespace() {
68             return namespace;
69         }
70
71         public String getValue() {
72             return value;
73         }
74
75         public String getPrefix() {
76             return prefix;
77         }
78
79         public List<Predicate> getPredicates() {
80             if (predicates == null) {
81                 return Collections.emptyList();
82             }
83             return Collections.unmodifiableList(predicates);
84         }
85
86         public void setPredicates(List<Predicate> predicates) {
87             this.predicates = predicates;
88         }
89
90         @Override
91         public String toString() {
92             StringBuilder sb = new StringBuilder();
93             if (namespace != null) {
94                 sb.append(namespace);
95             }
96             if (prefix != null) {
97                 sb.append("(").append(prefix).append(")");
98             }
99             if (value != null) {
100                 sb.append(" - ").append(value);
101             }
102             if (predicates != null && !predicates.isEmpty()) {
103                 for (Predicate predicate : predicates) {
104                     sb.append("[");
105                     predicate.toString();
106                     sb.append("]");
107                 }
108             }
109             return sb.toString();
110         }
111
112     }
113
114     public static final class Predicate {
115
116         private final IdentityValue name;
117         private final String value;
118
119         public Predicate(IdentityValue name, String value) {
120             super();
121             this.name = name;
122             this.value = value;
123         }
124
125         public IdentityValue getName() {
126             return name;
127         }
128
129         public String getValue() {
130             return value;
131         }
132
133         @Override
134         public String toString() {
135             StringBuilder sb = new StringBuilder();
136             if (name != null) {
137                 sb.append(name.toString());
138             }
139             if (value != null) {
140                 sb.append("=").append(value);
141             }
142             return sb.toString();
143         }
144
145         public boolean isLeafList() {
146             return name == null ? true : false;
147         }
148
149     }
150 }