Merge binding-model-{api,ri}
[yangtools.git] / binding / binding-model / src / main / java / org / opendaylight / yangtools / binding / model / ri / generated / type / builder / RuntimeGeneratedTypeBuilder.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.yangtools.binding.model.ri.generated.type.builder;
9
10 import org.opendaylight.yangtools.binding.model.api.GeneratedType;
11 import org.opendaylight.yangtools.binding.model.api.JavaTypeName;
12 import org.opendaylight.yangtools.binding.model.api.type.builder.GeneratedTypeBuilder;
13
14 public final class RuntimeGeneratedTypeBuilder extends AbstractGeneratedTypeBuilder<GeneratedTypeBuilder> implements
15         GeneratedTypeBuilder {
16
17     public RuntimeGeneratedTypeBuilder(final JavaTypeName identifier) {
18         super(identifier);
19         setAbstract(true);
20     }
21
22     @Override
23     public GeneratedType build() {
24         return new GeneratedTypeImpl(this);
25     }
26
27     @Override
28     public void setDescription(final String description) {
29         // No-op
30     }
31
32     @Override
33     public void setModuleName(final String moduleName) {
34         // No-op
35     }
36
37     @Override
38     public void setReference(final String reference) {
39         // No-op
40     }
41
42     @Override
43     protected RuntimeGeneratedTypeBuilder thisInstance() {
44         return this;
45     }
46
47     private static final class GeneratedTypeImpl extends AbstractGeneratedType {
48         GeneratedTypeImpl(final RuntimeGeneratedTypeBuilder builder) {
49             super(builder);
50         }
51
52         @Override
53         public String getDescription() {
54             throw unsupported();
55         }
56
57         @Override
58         public String getReference() {
59             throw unsupported();
60         }
61
62         @Override
63         public String getModuleName() {
64             throw unsupported();
65         }
66
67         private static UnsupportedOperationException unsupported() {
68             return new UnsupportedOperationException("Not available at runtime");
69         }
70     }
71 }