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