Updated code generation
[yangtools.git] / code-generator / binding-generator-util / src / main / java / org / opendaylight / yangtools / binding / generator / util / generated / type / builder / AbstractTypeMember.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.yangtools.binding.generator.util.generated.type.builder;\r
9 \r
10 \r
11 import org.opendaylight.yangtools.sal.binding.model.api.AccessModifier;\r
12 import org.opendaylight.yangtools.sal.binding.model.api.AnnotationType;\r
13 import org.opendaylight.yangtools.sal.binding.model.api.Type;\r
14 import org.opendaylight.yangtools.sal.binding.model.api.TypeMember;\r
15 \r
16 import java.util.Collections;\r
17 import java.util.List;\r
18 \r
19 abstract class AbstractTypeMember implements TypeMember {\r
20 \r
21     private final String name;\r
22     private final String comment;\r
23     private final Type definingType;\r
24     private final Type returnType;\r
25     private final List<AnnotationType> annotations;\r
26     private final boolean isFinal;\r
27     private final AccessModifier accessModifier;\r
28 \r
29     public AbstractTypeMember(final Type definingType, final String name,  final List<AnnotationType> annotations,\r
30                               final String comment, final AccessModifier accessModifier, final Type returnType,\r
31                               boolean isFinal) {\r
32         super();\r
33         this.definingType = definingType;\r
34         this.name = name;\r
35         this.annotations = Collections.unmodifiableList(annotations);\r
36         this.comment = comment;\r
37         this.accessModifier = accessModifier;\r
38         this.returnType = returnType;\r
39         this.isFinal = isFinal;\r
40     }\r
41 \r
42     @Override\r
43     public List<AnnotationType> getAnnotations() {\r
44         return annotations;\r
45     }\r
46 \r
47     @Override\r
48     public String getName() {\r
49         return name;\r
50     }\r
51 \r
52     @Override\r
53     public String getComment() {\r
54         return comment;\r
55     }\r
56 \r
57     @Override\r
58     public Type getDefiningType() {\r
59         return definingType;\r
60     }\r
61 \r
62     @Override\r
63     public AccessModifier getAccessModifier() {\r
64         return accessModifier;\r
65     }\r
66 \r
67     @Override\r
68     public Type getReturnType() {\r
69         return returnType;\r
70     }\r
71 \r
72     @Override\r
73     public boolean isFinal() {\r
74         return isFinal;\r
75     }\r
76 \r
77     @Override\r
78     public int hashCode() {\r
79         final int prime = 31;\r
80         int result = 1;\r
81         result = prime * result + ((getName() == null) ? 0 : getName().hashCode());\r
82         result = prime * result\r
83                 + ((getReturnType() == null) ? 0 : getReturnType().hashCode());\r
84         return result;\r
85     }\r
86 \r
87     @Override\r
88     public boolean equals(Object obj) {\r
89         if (this == obj) {\r
90             return true;\r
91         }\r
92         if (obj == null) {\r
93             return false;\r
94         }\r
95         if (getClass() != obj.getClass()) {\r
96             return false;\r
97         }\r
98         AbstractTypeMember other = (AbstractTypeMember) obj;\r
99         if (getName() == null) {\r
100             if (other.getName() != null) {\r
101                 return false;\r
102             }\r
103         } else if (!getName().equals(other.getName())) {\r
104             return false;\r
105         }\r
106         if (getReturnType() == null) {\r
107             if (other.getReturnType() != null) {\r
108                 return false;\r
109             }\r
110         } else if (!getReturnType().equals(other.getReturnType())) {\r
111             return false;\r
112         }\r
113         return true;\r
114     }\r
115 \r
116     @Override\r
117     public String toString() {\r
118         StringBuilder builder = new StringBuilder();\r
119         builder.append("MethodSignatureImpl [name=");\r
120         builder.append(getName());\r
121         builder.append(", comment=");\r
122         builder.append(getComment());\r
123         if (getDefiningType() != null) {\r
124             builder.append(", definingType=");\r
125             builder.append(getDefiningType().getPackageName());\r
126             builder.append(".");\r
127             builder.append(getDefiningType().getName());\r
128         } else {\r
129             builder.append(", definingType= null");\r
130         }\r
131         builder.append(", returnType=");\r
132         builder.append(getReturnType());\r
133         builder.append(", annotations=");\r
134         builder.append(getAnnotations());\r
135         builder.append("]");\r
136         return builder.toString();\r
137     }\r
138 }\r