Extended binding-model-api to support of Enclosed Generated Types and TOs.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / binding-generator-util / src / main / java / org / opendaylight / controller / binding / generator / util / generated / type / builder / GeneratedTypeBuilderImpl.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.binding.generator.util.generated.type.builder;
9
10 import org.opendaylight.controller.sal.binding.model.api.Constant;
11 import org.opendaylight.controller.sal.binding.model.api.GeneratedType;
12 import org.opendaylight.controller.sal.binding.model.api.Type;
13 import org.opendaylight.controller.sal.binding.model.api.type.builder.*;
14
15 import java.util.List;
16
17 public final class GeneratedTypeBuilderImpl extends AbstractGeneratedTypeBuilder {
18
19     public GeneratedTypeBuilderImpl(String packageName, String name) {
20         super(packageName, name);
21         setAbstract(true);
22     }
23
24     @Override
25     public GeneratedType toInstance() {
26         return new GeneratedTypeImpl(null, getPackageName(), getName(), getComment(), getAnnotations(), isAbstract(),
27                 getImplementsTypes(), getEnclosedTypes(), getEnclosedTransferObjects(), getEnumerations(),
28                 getConstants(), getMethodDefinitions());
29     }
30
31     @Override
32     public String toString() {
33         StringBuilder builder = new StringBuilder();
34         builder.append("GeneratedTransferObject [packageName=");
35         builder.append(getPackageName());
36         builder.append(", name=");
37         builder.append(getName());
38         builder.append(", comment=");
39         builder.append(", annotations=");
40         builder.append(getAnnotations());
41         builder.append(getComment());
42         builder.append(", implements=");
43         builder.append(getImplementsTypes());
44         builder.append(", enclosedTypes=");
45         builder.append(getEnclosedTypes());
46         builder.append(", constants=");
47         builder.append(getConstants());
48         builder.append(", enumerations=");
49         builder.append(getEnumerations());
50         builder.append(", properties=");
51         builder.append(", methods=");
52         builder.append(getMethodDefinitions());
53         builder.append("]");
54         return builder.toString();
55     }
56
57     private static final class GeneratedTypeImpl extends AbstractGeneratedType {
58
59         public GeneratedTypeImpl(final Type parent, final String packageName, final String name, final String comment,
60                                  final List<AnnotationTypeBuilder> annotationBuilders, final boolean isAbstract,
61                                  final List<Type> implementsTypes,
62                                  final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,
63                                  final List<GeneratedTOBuilder> enclosedGenTOBuilders,
64                                  final List<EnumBuilder> enumBuilders, final List<Constant> constants,
65                                  final List<MethodSignatureBuilder> methodBuilders) {
66             super(parent, packageName, name, comment, annotationBuilders, isAbstract, implementsTypes,
67                     enclosedGenTypeBuilders, enclosedGenTOBuilders, enumBuilders, constants, methodBuilders);
68         }
69     }
70 }