2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.mdsal.binding.model.ri.generated.type.builder;
10 import static java.util.Objects.requireNonNull;
12 import java.util.Optional;
13 import org.opendaylight.mdsal.binding.model.api.Enumeration;
14 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
15 import org.opendaylight.mdsal.binding.model.api.TypeComment;
16 import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
17 import org.opendaylight.yangtools.yang.model.api.Status;
19 public final class CodegenEnumerationBuilder extends AbstractEnumerationBuilder {
20 private String description;
21 private String reference;
22 private String moduleName;
23 private YangSourceDefinition definition;
25 public CodegenEnumerationBuilder(final JavaTypeName identifier) {
30 public void setReference(final String reference) {
31 this.reference = reference;
35 public void setModuleName(final String moduleName) {
36 this.moduleName = moduleName;
40 public void setDescription(final String description) {
41 this.description = description;
45 public void setYangSourceDefinition(final YangSourceDefinition yangSourceDefinition) {
46 definition = yangSourceDefinition;
50 public Enumeration toInstance() {
51 return new EnumerationImpl(this);
55 EnumPair createEnumPair(final String name, final String mappedName, final int value, final Status status,
56 final String enumDescription, final String enumReference) {
57 return new EnumPair(name, mappedName, value, status, enumDescription, enumReference);
60 private static final class EnumPair extends AbstractPair {
61 private final String description;
62 private final String reference;
63 private final Status status;
65 EnumPair(final String name, final String mappedName, final int value, final Status status,
66 final String description, final String reference) {
67 super(name, mappedName, value);
68 this.status = requireNonNull(status);
69 this.description = description;
70 this.reference = reference;
74 public Optional<String> getDescription() {
75 return Optional.ofNullable(description);
79 public Optional<String> getReference() {
80 return Optional.ofNullable(reference);
84 public Status getStatus() {
89 private static final class EnumerationImpl extends AbstractEnumeration {
90 private final String description;
91 private final String reference;
92 private final String moduleName;
93 private final YangSourceDefinition definition;
95 EnumerationImpl(final CodegenEnumerationBuilder builder) {
97 description = builder.description;
98 moduleName = builder.moduleName;
99 reference = builder.reference;
100 definition = builder.definition;
104 public TypeComment getComment() {
109 public String getDescription() {
114 public String getReference() {
119 public String getModuleName() {
124 public Optional<YangSourceDefinition> getYangSourceDefinition() {
125 return Optional.ofNullable(definition);