cfbd42ddabdf3cf540c3cb6a0e0784925d75c4d1
[mdsal.git] / binding / mdsal-binding-model-ri / src / main / java / org / opendaylight / mdsal / binding / model / ri / generated / type / builder / RuntimeEnumerationBuilder.java
1 /*
2  * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.mdsal.binding.model.ri.generated.type.builder;
9
10 import java.util.Optional;
11 import org.opendaylight.mdsal.binding.model.api.Enumeration;
12 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
13 import org.opendaylight.mdsal.binding.model.api.TypeComment;
14 import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
15 import org.opendaylight.yangtools.yang.common.QName;
16 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
17 import org.opendaylight.yangtools.yang.model.api.Status;
18
19 public final class RuntimeEnumerationBuilder extends AbstractEnumerationBuilder {
20     public RuntimeEnumerationBuilder(final JavaTypeName identifier) {
21         super(identifier);
22     }
23
24     @Override
25     public void setReference(final String reference) {
26         // No-op
27     }
28
29     @Override
30     public void setModuleName(final String moduleName) {
31         // No-op
32     }
33
34     @Override
35     public void setSchemaPath(final SchemaPath schemaPath) {
36         // No-op
37     }
38
39     @Override
40     public void setDescription(final String description) {
41         // No-op
42     }
43
44     @Override
45     public Enumeration toInstance() {
46         return new EnumerationImpl(this);
47     }
48
49     @Override
50     EnumPair createEnumPair(final String name, final String mappedName, final int value, final Status status,
51             final String description, final String reference) {
52         return new EnumPair(name, mappedName, value);
53     }
54
55     private static final class EnumPair extends AbstractPair {
56         EnumPair(final String name, final String mappedName, final int value) {
57             super(name, mappedName, value);
58         }
59
60         @Override
61         public Optional<String> getDescription() {
62             throw unsupported();
63         }
64
65         @Override
66         public Optional<String> getReference() {
67             throw unsupported();
68         }
69
70         @Override
71         public Status getStatus() {
72             throw unsupported();
73         }
74     }
75
76     private static final class EnumerationImpl extends AbstractEnumeration {
77         EnumerationImpl(final RuntimeEnumerationBuilder builder) {
78             super(builder);
79         }
80
81         @Override
82         public TypeComment getComment() {
83             throw unsupported();
84         }
85
86         @Override
87         public String getDescription() {
88             throw unsupported();
89         }
90
91         @Override
92         public String getReference() {
93             throw unsupported();
94         }
95
96         @Override
97         public Iterable<QName> getSchemaPath() {
98             throw unsupported();
99         }
100
101         @Override
102         public String getModuleName() {
103             throw unsupported();
104         }
105
106         @Override
107         public Optional<YangSourceDefinition> getYangSourceDefinition() {
108             throw unsupported();
109         }
110     }
111
112     static UnsupportedOperationException unsupported() {
113         return new UnsupportedOperationException("Not available at runtime");
114     }
115 }