d0bb01cf34d35db1b318569c81c334dc5163e846
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / model / parser / builder / impl / UnknownSchemaNodeBuilder.java
1 /*
2  * Copyright (c) 2013 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.yang.model.parser.builder.impl;
9
10 import java.util.Collections;
11 import java.util.List;
12
13 import org.opendaylight.controller.yang.common.QName;
14 import org.opendaylight.controller.yang.model.api.SchemaPath;
15 import org.opendaylight.controller.yang.model.api.Status;
16 import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
17 import org.opendaylight.controller.yang.model.parser.builder.api.SchemaNodeBuilder;
18
19 public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
20
21     private final QName qname;
22     private final UnknownSchemaNodeImpl instance;
23
24     UnknownSchemaNodeBuilder(final QName qname) {
25         this.qname = qname;
26         instance = new UnknownSchemaNodeImpl(qname);
27     }
28
29
30     @Override
31     public UnknownSchemaNode build() {
32         return instance;
33     }
34
35     @Override
36     public QName getQName() {
37         return qname;
38     }
39
40     @Override
41     public void setPath(SchemaPath schemaPath) {
42         instance.setPath(schemaPath);
43     }
44
45     @Override
46     public void setDescription(String description) {
47         instance.setDescription(description);
48     }
49
50     @Override
51     public void setReference(String reference) {
52         instance.setReference(reference);
53     }
54
55     @Override
56     public void setStatus(Status status) {
57         instance.setStatus(status);
58     }
59
60     private static class UnknownSchemaNodeImpl implements UnknownSchemaNode {
61         private final QName qname;
62         private SchemaPath path;
63         private String description;
64         private String reference;
65         private Status status = Status.CURRENT;
66         private List<UnknownSchemaNode> unknownSchemaNodes = Collections.emptyList();
67
68         private UnknownSchemaNodeImpl(QName qname) {
69             this.qname = qname;
70         }
71
72         @Override
73         public QName getQName() {
74             return qname;
75         }
76
77         @Override
78         public SchemaPath getPath() {
79             return path;
80         }
81         private void setPath(SchemaPath path) {
82             this.path = path;
83         }
84
85         @Override
86         public String getDescription() {
87             return description;
88         }
89
90         private void setDescription(String description) {
91             this.description = description;
92         }
93
94         @Override
95         public String getReference() {
96             return reference;
97         }
98
99         private void setReference(String reference) {
100             this.reference = reference;
101         }
102
103         @Override
104         public Status getStatus() {
105             return status;
106         }
107
108         private void setStatus(Status status) {
109             if(status != null) {
110                 this.status = status;
111             }
112         }
113
114         @Override
115         public List<UnknownSchemaNode> getUnknownSchemaNodes() {
116             return unknownSchemaNodes;
117         }
118
119         private void setUnknownSchemaNodes(List<UnknownSchemaNode> unknownSchemaNodes) {
120             if(unknownSchemaNodes != null) {
121                 this.unknownSchemaNodes = unknownSchemaNodes;
122             }
123         }
124     }
125
126 }