1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.api.dom.java;
17
18 import static org.mybatis.generator.api.dom.OutputUtilities.calculateImports;
19 import static org.mybatis.generator.api.dom.OutputUtilities.newLine;
20 import static org.mybatis.generator.internal.util.messages.Messages.getString;
21
22 import java.util.ArrayList;
23 import java.util.Collections;
24 import java.util.List;
25 import java.util.Set;
26 import java.util.TreeSet;
27
28
29
30
31
32
33 public class TopLevelEnumeration extends InnerEnum implements CompilationUnit {
34
35
36 private Set<FullyQualifiedJavaType> importedTypes;
37
38
39 private Set<String> staticImports;
40
41
42 private List<String> fileCommentLines;
43
44
45
46
47
48
49
50 public TopLevelEnumeration(FullyQualifiedJavaType type) {
51 super(type);
52 importedTypes = new TreeSet<FullyQualifiedJavaType>();
53 fileCommentLines = new ArrayList<String>();
54 staticImports = new TreeSet<String>();
55 }
56
57
58
59
60 public String getFormattedContent() {
61 StringBuilder sb = new StringBuilder();
62
63 for (String fileCommentLine : fileCommentLines) {
64 sb.append(fileCommentLine);
65 newLine(sb);
66 }
67
68 if (getType().getPackageName() != null
69 && getType().getPackageName().length() > 0) {
70 sb.append("package ");
71 sb.append(getType().getPackageName());
72 sb.append(';');
73 newLine(sb);
74 newLine(sb);
75 }
76
77 for (String staticImport : staticImports) {
78 sb.append("import static ");
79 sb.append(staticImport);
80 sb.append(';');
81 newLine(sb);
82 }
83
84 if (staticImports.size() > 0) {
85 newLine(sb);
86 }
87
88 Set<String> importStrings = calculateImports(importedTypes);
89 for (String importString : importStrings) {
90 sb.append(importString);
91 newLine(sb);
92 }
93
94 if (importStrings.size() > 0) {
95 newLine(sb);
96 }
97
98 sb.append(super.getFormattedContent(0, this));
99
100 return sb.toString();
101 }
102
103
104
105
106 public Set<FullyQualifiedJavaType> getImportedTypes() {
107 return Collections.unmodifiableSet(importedTypes);
108 }
109
110
111
112
113 public FullyQualifiedJavaType getSuperClass() {
114 throw new UnsupportedOperationException(getString("RuntimeError.11"));
115 }
116
117
118
119
120 public boolean isJavaInterface() {
121 return false;
122 }
123
124
125
126
127 public boolean isJavaEnumeration() {
128 return true;
129 }
130
131
132
133
134 public void addImportedType(FullyQualifiedJavaType importedType) {
135 if (importedType.isExplicitlyImported()
136 && !importedType.getPackageName().equals(
137 getType().getPackageName())) {
138 importedTypes.add(importedType);
139 }
140 }
141
142
143
144
145 public void addFileCommentLine(String commentLine) {
146 fileCommentLines.add(commentLine);
147 }
148
149
150
151
152 public List<String> getFileCommentLines() {
153 return fileCommentLines;
154 }
155
156
157
158
159 public void addImportedTypes(Set<FullyQualifiedJavaType> importedTypes) {
160 this.importedTypes.addAll(importedTypes);
161 }
162
163
164
165
166 public Set<String> getStaticImports() {
167 return staticImports;
168 }
169
170
171
172
173 public void addStaticImport(String staticImport) {
174 staticImports.add(staticImport);
175 }
176
177
178
179
180 public void addStaticImports(Set<String> staticImports) {
181 this.staticImports.addAll(staticImports);
182 }
183 }