blob: 1304706921acbeaa1e059908800cfed7231dc148 [file] [log] [blame]
Bharat saraswale2d51d62016-03-23 19:40:35 +05301/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
Bharat saraswale2d51d62016-03-23 19:40:35 +05303 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.yangutils.translator.tojava.utils;
18
19import java.io.File;
20import java.io.IOException;
21import java.util.List;
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +053022
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053023import org.onosproject.yangutils.translator.exception.TranslatorException;
Bharat saraswale2d51d62016-03-23 19:40:35 +053024import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053025import org.onosproject.yangutils.translator.tojava.TempJavaBeanFragmentFiles;
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +053026import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053027import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles;
28import org.onosproject.yangutils.translator.tojava.TempJavaTypeFragmentFiles;
Bharat saraswale2d51d62016-03-23 19:40:35 +053029import org.onosproject.yangutils.utils.io.impl.CopyrightHeader;
30import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType;
31
32import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
33import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
Bharat saraswald72411a2016-04-19 01:00:16 +053034import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053035import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
36import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
37import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
Bharat saraswale2d51d62016-03-23 19:40:35 +053038import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053039import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
Bharat saraswale2d51d62016-03-23 19:40:35 +053040import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.IMPL_CLASS_MASK;
41import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053042import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053043import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
Bharat saraswald72411a2016-04-19 01:00:16 +053044import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053045import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EQUALS_IMPL_MASK;
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +053046import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FROM_STRING_IMPL_MASK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053047import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
48import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
49import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053050import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.OF_STRING_IMPL_MASK;
Gaurav Agrawal56527662016-04-20 15:49:17 +053051import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_IMPL_MASK;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053052import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053053import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
54import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
55import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK;
56import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefStart;
Bharat saraswal2f11f652016-03-25 18:19:46 +053057import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getJavaPackageFromPackagePath;
Bharat saraswald72411a2016-04-19 01:00:16 +053058import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
59import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
60import static org.onosproject.yangutils.utils.UtilConstants.INT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053061import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
62import static org.onosproject.yangutils.utils.UtilConstants.ORG;
63import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE;
Bharat saraswald72411a2016-04-19 01:00:16 +053064import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053065import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
66import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
67import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053068import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILDER_CLASS;
69import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILDER_INTERFACE;
Bharat saraswald72411a2016-04-19 01:00:16 +053070import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_CLASS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053071import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.EVENT;
72import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.EVENT_LISTENER;
Bharat saraswale2d51d62016-03-23 19:40:35 +053073import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.IMPL_CLASS;
74import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.INTERFACE;
Gaurav Agrawal56527662016-04-20 15:49:17 +053075import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.RPC_INTERFACE;
76import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
Bharat saraswale2d51d62016-03-23 19:40:35 +053077import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
78
79/**
Bharat saraswald9822e92016-04-05 15:13:44 +053080 * Represents utilities for java file generator.
Bharat saraswale2d51d62016-03-23 19:40:35 +053081 */
82public final class JavaFileGeneratorUtils {
83
84 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053085 * Creates an instance of java file generator util.
Bharat saraswale2d51d62016-03-23 19:40:35 +053086 */
87 private JavaFileGeneratorUtils() {
88 }
89
90 /**
91 * Returns a file object for generated file.
92 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +053093 * @param fileName file name
94 * @param filePath file package path
Bharat saraswale2d51d62016-03-23 19:40:35 +053095 * @param extension file extension
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +053096 * @param handle cached file handle
Bharat saraswale2d51d62016-03-23 19:40:35 +053097 * @return file object
98 */
99 public static File getFileObject(String filePath, String fileName, String extension, JavaFileInfo handle) {
100
101 return new File(handle.getBaseCodeGenPath() + filePath + SLASH + fileName + extension);
102 }
103
104 /**
Bharat saraswald9822e92016-04-05 15:13:44 +0530105 * Returns data stored in temporary files.
Bharat saraswale2d51d62016-03-23 19:40:35 +0530106 *
107 * @param generatedTempFiles temporary file types
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530108 * @param generatedTempFiles temporary file types
109 * @param tempJavaFragmentFiles temp java fragment files
Bharat saraswale2d51d62016-03-23 19:40:35 +0530110 * @return data stored in temporary files
111 * @throws IOException when failed to get the data from temporary file handle
112 */
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530113 public static String getDataFromTempFileHandle(int generatedTempFiles,
114 TempJavaFragmentFiles tempJavaFragmentFiles)
115 throws IOException {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530116
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530117 TempJavaTypeFragmentFiles typeFragmentFiles = null;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530118
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530119 if (tempJavaFragmentFiles instanceof TempJavaTypeFragmentFiles) {
120 typeFragmentFiles = (TempJavaTypeFragmentFiles) tempJavaFragmentFiles;
121 }
122
123 TempJavaBeanFragmentFiles beanFragmentFiles = null;
124
125 if (tempJavaFragmentFiles instanceof TempJavaBeanFragmentFiles) {
126 beanFragmentFiles = (TempJavaBeanFragmentFiles) tempJavaFragmentFiles;
127 }
128
129 TempJavaServiceFragmentFiles serviceFragmentFiles = null;
130 if (tempJavaFragmentFiles instanceof TempJavaServiceFragmentFiles) {
131 serviceFragmentFiles = (TempJavaServiceFragmentFiles) tempJavaFragmentFiles;
132 }
133
134
135 if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530136 return tempJavaFragmentFiles
137 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetterInterfaceTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530138 } else if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530139 return tempJavaFragmentFiles
140 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSetterInterfaceTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530141 } else if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530142 return tempJavaFragmentFiles
143 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetterImplTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530144 } else if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530145 return tempJavaFragmentFiles
146 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSetterImplTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530147 } else if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530148 if (beanFragmentFiles == null) {
149 throw new TranslatorException("Required constructor info is missing.");
150 }
151 return beanFragmentFiles
152 .getTemporaryDataFromFileHandle(beanFragmentFiles.getConstructorImplTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530153 } else if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530154 return tempJavaFragmentFiles
155 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getHashCodeImplTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530156 } else if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530157 return tempJavaFragmentFiles
158 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getEqualsImplTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530159 } else if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530160 return tempJavaFragmentFiles
161 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getToStringImplTempFileHandle());
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530162 } else if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530163 if (typeFragmentFiles == null) {
164 throw new TranslatorException("Required of string implementation info is missing.");
165 }
166 return typeFragmentFiles
167 .getTemporaryDataFromFileHandle(typeFragmentFiles.getOfStringImplTempFileHandle());
168 } else if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
169 if (typeFragmentFiles == null) {
170 throw new TranslatorException("Required constructor implementation info is missing.");
171 }
172 return typeFragmentFiles
173 .getTemporaryDataFromFileHandle(typeFragmentFiles.getConstructorForTypeTempFileHandle());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530174 } else if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530175 if (typeFragmentFiles == null) {
176 throw new TranslatorException("Required from string info is missing.");
177 }
178 return typeFragmentFiles
179 .getTemporaryDataFromFileHandle(typeFragmentFiles.getFromStringImplTempFileHandle());
Bharat saraswald72411a2016-04-19 01:00:16 +0530180 } else if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530181 return tempJavaFragmentFiles
182 .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getEnumClassTempFileHandle());
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530183 } else if ((generatedTempFiles & RPC_INTERFACE_MASK) != 0) {
184 if (serviceFragmentFiles == null) {
185 throw new TranslatorException("Required rpc interface info is missing.");
186 }
187 return serviceFragmentFiles
188 .getTemporaryDataFromFileHandle(serviceFragmentFiles.getRpcInterfaceTempFileHandle());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530189 } else if ((generatedTempFiles & RPC_IMPL_MASK) != 0) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530190 if (serviceFragmentFiles == null) {
191 throw new TranslatorException("Required rpc implementation info is missing.");
192 }
193 return serviceFragmentFiles
194 .getTemporaryDataFromFileHandle(serviceFragmentFiles.getRpcImplTempFileHandle());
Bharat saraswale2d51d62016-03-23 19:40:35 +0530195 }
196 return null;
197 }
198
199 /**
Bharat saraswald9822e92016-04-05 15:13:44 +0530200 * Initiates generation of file based on generated file type.
Bharat saraswale2d51d62016-03-23 19:40:35 +0530201 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530202 * @param file generated file
Bharat saraswale2d51d62016-03-23 19:40:35 +0530203 * @param className generated file class name
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530204 * @param type generated file type
205 * @param imports imports for the file
206 * @param pkg generated file package
Bharat saraswale2d51d62016-03-23 19:40:35 +0530207 * @throws IOException when fails to generate a file
208 */
209 public static void initiateJavaFileGeneration(File file, String className, int type, List<String> imports,
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530210 String pkg)
211 throws IOException {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530212
213 try {
214 file.createNewFile();
215 appendContents(file, className, type, imports, pkg);
216 } catch (IOException e) {
217 throw new IOException("Failed to create " + file.getName() + " class file.");
218 }
219 }
220
221 /**
222 * Appends all the contents into a generated java file.
223 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530224 * @param file generated file
225 * @param fileName generated file name
226 * @param type generated file type
227 * @param pkg generated file package
Bharat saraswale2d51d62016-03-23 19:40:35 +0530228 * @param importsList list of java imports.
229 * @throws IOException when fails to append contents
230 */
231 private static void appendContents(File file, String fileName, int type, List<String> importsList,
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530232 String pkg)
233 throws IOException {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530234
235 String pkgString = parsePackageString(pkg, importsList);
236
237 if ((type & IMPL_CLASS_MASK) != 0) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530238 write(file, fileName, type, IMPL_CLASS);
239 } else if ((type & BUILDER_INTERFACE_MASK) != 0) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530240 write(file, fileName, type, BUILDER_INTERFACE);
241 } else if ((type & GENERATE_TYPEDEF_CLASS) != 0) {
242 appendHeaderContents(file, pkgString, importsList);
243 write(file, fileName, type, IMPL_CLASS);
244 } else if ((type & INTERFACE_MASK) != 0) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530245 appendHeaderContents(file, pkgString, importsList);
246 write(file, fileName, type, INTERFACE);
247 } else if ((type & BUILDER_CLASS_MASK) != 0) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530248 appendHeaderContents(file, pkgString, importsList);
249 write(file, fileName, type, BUILDER_CLASS);
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530250 } else if ((type & GENERATE_UNION_CLASS) != 0) {
251 appendHeaderContents(file, pkgString, importsList);
252 write(file, fileName, type, IMPL_CLASS);
Bharat saraswald72411a2016-04-19 01:00:16 +0530253 } else if ((type & GENERATE_ENUM_CLASS) != 0) {
254 appendHeaderContents(file, pkgString, importsList);
255 write(file, fileName, type, ENUM_CLASS);
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530256 } else if ((type & GENERATE_SERVICE_AND_MANAGER) != 0) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530257 appendHeaderContents(file, pkgString, importsList);
258 write(file, fileName, type, RPC_INTERFACE);
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530259 } else if ((type & GENERATE_EVENT_CLASS) != 0) {
260 appendHeaderContents(file, pkgString, importsList);
261 write(file, fileName, type, EVENT);
262 } else if ((type & GENERATE_EVENT_LISTENER_INTERFACE) != 0) {
263 appendHeaderContents(file, pkgString, importsList);
264 write(file, fileName, type, EVENT_LISTENER);
Bharat saraswale2d51d62016-03-23 19:40:35 +0530265 }
266 }
267
268 /**
269 * Removes base directory path from package and generates package string for file.
270 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530271 * @param javaPkg generated java package
Bharat saraswale2d51d62016-03-23 19:40:35 +0530272 * @param importsList list of imports
273 * @return package string
274 */
275 private static String parsePackageString(String javaPkg, List<String> importsList) {
276
277 if (javaPkg.contains(ORG)) {
278 String[] strArray = javaPkg.split(ORG);
Bharat saraswal2f11f652016-03-25 18:19:46 +0530279 javaPkg = ORG + getJavaPackageFromPackagePath(strArray[1]);
Bharat saraswale2d51d62016-03-23 19:40:35 +0530280 }
281 if (importsList != null) {
282 if (!importsList.isEmpty()) {
283 return PACKAGE + SPACE + javaPkg + SEMI_COLAN + NEW_LINE;
284 } else {
285 return PACKAGE + SPACE + javaPkg + SEMI_COLAN;
286 }
287 } else {
288 return PACKAGE + SPACE + javaPkg + SEMI_COLAN;
289 }
290 }
291
292 /**
293 * Appends other contents to interface, builder and typedef classes.
294 * for example : ONOS copyright, imports and package.
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530295 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530296 * @param file generated file
297 * @param pkg generated package
Bharat saraswale2d51d62016-03-23 19:40:35 +0530298 * @param importsList list of imports
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530299 * @throws IOException when fails to append contents
Bharat saraswale2d51d62016-03-23 19:40:35 +0530300 */
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530301 private static void appendHeaderContents(File file, String pkg, List<String> importsList)
302 throws IOException {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530303
304 insertDataIntoJavaFile(file, CopyrightHeader.getCopyrightHeader());
305 insertDataIntoJavaFile(file, pkg);
306
307 /*
308 * TODO: add the file header using
309 * JavaCodeSnippetGen.getFileHeaderComment
310 */
311
312 if (importsList != null) {
313 insertDataIntoJavaFile(file, NEW_LINE);
314 for (String imports : importsList) {
315 insertDataIntoJavaFile(file, imports);
316 }
317 }
318 }
319
320 /**
Bharat saraswald9822e92016-04-05 15:13:44 +0530321 * Writes data to the specific generated file.
Bharat saraswale2d51d62016-03-23 19:40:35 +0530322 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530323 * @param file generated file
324 * @param fileName file name
325 * @param genType generated file type
Bharat saraswale2d51d62016-03-23 19:40:35 +0530326 * @param javaDocType java doc type
327 * @throws IOException when fails to write into a file
328 */
329 private static void write(File file, String fileName, int genType, JavaDocType javaDocType)
330 throws IOException {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530331 insertDataIntoJavaFile(file, getJavaDoc(javaDocType, fileName, false));
332 insertDataIntoJavaFile(file, getJavaClassDefStart(genType, fileName));
333 }
334
Bharat saraswald72411a2016-04-19 01:00:16 +0530335 /**
336 * Returns integer attribute for enum's class to get the values.
337 *
338 * @param className enum's class name
339 * @return enum's attribute
340 */
341 public static String getEnumsValueAttribute(String className) {
342 return NEW_LINE + FOUR_SPACE_INDENTATION + PRIVATE + SPACE + INT + SPACE + getSmallCase(className) + SEMI_COLAN
343 + NEW_LINE;
344 }
345
Bharat saraswale2d51d62016-03-23 19:40:35 +0530346}