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