blob: 4c5d69b396dd93fb4b2a77862dbab7521d212035 [file] [log] [blame]
Bharat saraswal039f59c2016-07-14 21:57:13 +05301/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
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;
18
Bharat saraswal9fab16b2016-09-23 23:27:24 +053019import org.onosproject.yangutils.datamodel.YangNode;
20import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
21import org.onosproject.yangutils.utils.io.YangPluginConfig;
22
Bharat saraswal039f59c2016-07-14 21:57:13 +053023import java.io.File;
24import java.io.IOException;
25import java.util.ArrayList;
26import java.util.List;
Bharat saraswal8beac342016-08-04 02:00:03 +053027
Bharat saraswal039f59c2016-07-14 21:57:13 +053028import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
29import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_ENUM_MASK;
30import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_METHOD_MASK;
31import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_ATTRIBUTE_MASK;
32import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_GETTER_MASK;
33import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_SETTER_MASK;
34import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
Shankara-Huaweib7564772016-08-02 18:13:13 +053035import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.getQualifiedTypeInfoOfCurNode;
Bharat saraswal039f59c2016-07-14 21:57:13 +053036import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventFile;
37import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventListenerFile;
38import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventSubjectFile;
39import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
40import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
41import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
42import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
43import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
Bharat saraswal748fc3c2016-09-06 16:38:20 +053044import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
Bharat saraswal9fab16b2016-09-23 23:27:24 +053045import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER;
Bharat saraswal039f59c2016-07-14 21:57:13 +053046import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
Bharat saraswal039f59c2016-07-14 21:57:13 +053047import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
48import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
Bharat saraswal64e7e232016-07-14 23:33:55 +053049import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
Bharat saraswal039f59c2016-07-14 21:57:13 +053050import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
51import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MANAGER_SETTER_METHOD;
Bharat saraswal748fc3c2016-09-06 16:38:20 +053052import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.enumJavaDocForInnerClass;
Bharat saraswal039f59c2016-07-14 21:57:13 +053053import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
54import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
55import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
56import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
Bharat saraswal039f59c2016-07-14 21:57:13 +053057
58/**
59 * Represent temporary java fragments for event files.
60 */
61public class TempJavaEventFragmentFiles
62 extends TempJavaFragmentFiles {
63 /**
64 * File name for generated class file for special type like union, typedef suffix.
65 */
Bharat saraswal64e7e232016-07-14 23:33:55 +053066 private static final String EVENT_SUBJECT_NAME_SUFFIX = "EventSubject";
Bharat saraswal039f59c2016-07-14 21:57:13 +053067
68 /**
69 * File name for event enum temp file.
70 */
Bharat saraswal039f59c2016-07-14 21:57:13 +053071 private static final String EVENT_ENUM_FILE_NAME = "EventEnum";
72
73 /**
74 * File name for event method temp file.
75 */
76 private static final String EVENT_METHOD_FILE_NAME = "EventMethod";
77
78 /**
79 * File name for event subject attribute temp file.
80 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +053081 private static final String EVENT_SUBJECT_ATTRIBUTE_FILE_NAME
82 = "EventSubjectAttribute";
Bharat saraswal039f59c2016-07-14 21:57:13 +053083
84 /**
85 * File name for event subject getter temp file.
86 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +053087 private static final String EVENT_SUBJECT_GETTER_FILE_NAME
88 = "EventSubjectGetter";
Bharat saraswal039f59c2016-07-14 21:57:13 +053089
90 /**
91 * File name for event subject setter temp file.
92 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +053093 private static final String EVENT_SUBJECT_SETTER_FILE_NAME
94 = "EventSubjectSetter";
Bharat saraswal039f59c2016-07-14 21:57:13 +053095
96 private static final String JAVA_FILE_EXTENSION = ".java";
97
98 /**
99 * Java file handle for event subject file.
100 */
101 private File eventSubjectJavaFileHandle;
102
103 /**
104 * Java file handle for event listener file.
105 */
106 private File eventListenerJavaFileHandle;
107
108 /**
109 * Java file handle for event file.
110 */
111 private File eventJavaFileHandle;
112
113 /**
114 * Java file handle for event enum impl file.
115 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530116 private final File eventEnumTempFileHandle;
Bharat saraswal039f59c2016-07-14 21:57:13 +0530117
118 /**
119 * Java file handle for event method impl file.
120 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530121 private final File eventMethodTempFileHandle;
Bharat saraswal039f59c2016-07-14 21:57:13 +0530122
123 /**
124 * Java file handle for event subject attribute file.
125 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530126 private final File eventSubjectAttributeTempFileHandle;
Bharat saraswal039f59c2016-07-14 21:57:13 +0530127
128 /**
129 * Java file handle for event subject getter impl file.
130 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530131 private final File eventSubjectGetterTempFileHandle;
Bharat saraswal039f59c2016-07-14 21:57:13 +0530132
133 /**
134 * Java file handle for event subject setter impl file.
135 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530136 private final File eventSubjectSetterTempFileHandle;
Bharat saraswal039f59c2016-07-14 21:57:13 +0530137
138 /**
139 * Creates an instance of temporary java code fragment.
140 *
141 * @param javaFileInfo generated file information
142 * @throws IOException when fails to create new file handle
143 */
Bharat saraswale50edca2016-08-05 01:58:25 +0530144 TempJavaEventFragmentFiles(JavaFileInfoTranslator javaFileInfo)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530145 throws IOException {
146 setJavaExtendsListHolder(new JavaExtendsListHolder());
147 setJavaImportData(new JavaImportData());
148 setJavaFileInfo(javaFileInfo);
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530149 setAbsoluteDirPath(getAbsolutePackagePath(
150 getJavaFileInfo().getBaseCodeGenPath(),
151 getJavaFileInfo().getPackageFilePath()));
Bharat saraswal039f59c2016-07-14 21:57:13 +0530152
153 addGeneratedTempFile(EVENT_ENUM_MASK);
154 addGeneratedTempFile(EVENT_METHOD_MASK);
155 addGeneratedTempFile(EVENT_SUBJECT_ATTRIBUTE_MASK);
156 addGeneratedTempFile(EVENT_SUBJECT_GETTER_MASK);
157 addGeneratedTempFile(EVENT_SUBJECT_SETTER_MASK);
158
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530159 eventEnumTempFileHandle = getTemporaryFileHandle(EVENT_ENUM_FILE_NAME);
160 eventMethodTempFileHandle = getTemporaryFileHandle(
161 EVENT_METHOD_FILE_NAME);
162 eventSubjectAttributeTempFileHandle = getTemporaryFileHandle
163 (EVENT_SUBJECT_ATTRIBUTE_FILE_NAME);
164 eventSubjectGetterTempFileHandle = getTemporaryFileHandle(
165 EVENT_SUBJECT_GETTER_FILE_NAME);
166 eventSubjectSetterTempFileHandle = getTemporaryFileHandle(
167 EVENT_SUBJECT_SETTER_FILE_NAME);
168 }
169
170 /**
171 * Returns event enum temp file.
172 *
173 * @return event enum temp file
174 */
175 public File getEventEnumTempFileHandle() {
176 return eventEnumTempFileHandle;
177 }
178
179 /**
180 * Returns event method temp file.
181 *
182 * @return event method temp file
183 */
184 public File getEventMethodTempFileHandle() {
185 return eventMethodTempFileHandle;
186 }
187
188 /**
189 * Returns event subject attribute temp file.
190 *
191 * @return event subject attribute temp file
192 */
193 public File getEventSubjectAttributeTempFileHandle() {
194 return eventSubjectAttributeTempFileHandle;
195 }
196
197 /**
198 * Returns event subject getter temp file.
199 *
200 * @return event subject getter temp file
201 */
202 public File getEventSubjectGetterTempFileHandle() {
203 return eventSubjectGetterTempFileHandle;
204 }
205
206 /**
207 * Returns event subject setter temp file.
208 *
209 * @return event subject setter temp file
210 */
211 public File getEventSubjectSetterTempFileHandle() {
212 return eventSubjectSetterTempFileHandle;
Bharat saraswal039f59c2016-07-14 21:57:13 +0530213 }
214
215 /*Adds event method contents to event file.*/
216 private static String getEventFileContents(String eventClassname, String classname) {
217 return "\n" +
218 " /**\n" +
219 " * Creates " + classname + " event with type and subject.\n" +
220 " *\n" +
221 " * @param type event type\n" +
222 " * @param subject subject " + classname + "\n" +
223 " */\n" +
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530224 " public " + eventClassname + "(Type type, " +
225 getCapitalCase(classname) + " subject) {\n" +
Bharat saraswal039f59c2016-07-14 21:57:13 +0530226 " super(type, subject);\n" +
227 " }\n" +
228 "\n" +
229 " /**\n" +
230 " * Creates " + classname + " event with type, subject and time.\n" +
231 " *\n" +
232 " * @param type event type\n" +
233 " * @param subject subject " + classname + "\n" +
234 " * @param time time of event\n" +
235 " */\n" +
236 " public " + eventClassname + "(Type type, " + getCapitalCase(classname)
237 + " subject, long time) {\n" +
238 " super(type, subject, time);\n" +
239 " }\n" +
240 "\n";
241 }
242
Bharat saraswal748fc3c2016-09-06 16:38:20 +0530243 public void generateJavaFile(int fileType, YangNode curNode)
244 throws IOException {
Bharat saraswal039f59c2016-07-14 21:57:13 +0530245 generateEventJavaFile(curNode);
246 generateEventListenerJavaFile(curNode);
247 generateEventSubjectJavaFile(curNode);
Bharat saraswal64e7e232016-07-14 23:33:55 +0530248
249 // Close all the file handles.
250 freeTemporaryResources(false);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530251 }
252
253 /**
254 * Constructs java code exit.
255 *
256 * @param curNode current YANG node
257 * @throws IOException when fails to generate java files
258 */
Bharat saraswal64e7e232016-07-14 23:33:55 +0530259 private void generateEventJavaFile(YangNode curNode)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530260 throws IOException {
261
262 List<String> imports = new ArrayList<>();
263
264 imports.add(getJavaImportData().getAbstractEventsImport());
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530265 String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode)
266 .getJavaFileInfo().getJavaName());
Bharat saraswal039f59c2016-07-14 21:57:13 +0530267 String nodeName = curNodeInfo + EVENT_STRING;
268
269 addEnumMethod(nodeName, curNodeInfo + EVENT_SUBJECT_NAME_SUFFIX);
270
Bharat saraswal64e7e232016-07-14 23:33:55 +0530271 //Creates event interface file.
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530272 eventJavaFileHandle = getJavaFileHandle(curNode, curNodeInfo +
273 EVENT_STRING);
274 generateEventFile(eventJavaFileHandle, curNode, imports);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530275 }
276
277 /**
278 * Constructs java code exit.
279 *
280 * @param curNode current YANG node
281 * @throws IOException when fails to generate java files
282 */
Bharat saraswal64e7e232016-07-14 23:33:55 +0530283 private void generateEventListenerJavaFile(YangNode curNode)
284 throws IOException {
285
286 List<String> imports = new ArrayList<>();
287
288 imports.add(getJavaImportData().getEventListenerImport());
289 String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode)
Bharat saraswal748fc3c2016-09-06 16:38:20 +0530290 .getJavaFileInfo().getJavaName());
Bharat saraswal64e7e232016-07-14 23:33:55 +0530291
292 // Creates event listener interface file.
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530293 eventListenerJavaFileHandle =
294 getJavaFileHandle(curNode, curNodeInfo + EVENT_LISTENER);
295 generateEventListenerFile(eventListenerJavaFileHandle, curNode, imports);
Bharat saraswal64e7e232016-07-14 23:33:55 +0530296 }
297
298 /**
299 * Constructs java code exit.
300 *
301 * @param curNode current YANG node
302 * @throws IOException when fails to generate java files
303 */
304 private void generateEventSubjectJavaFile(YangNode curNode)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530305 throws IOException {
306
307 String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode)
Bharat saraswal748fc3c2016-09-06 16:38:20 +0530308 .getJavaFileInfo().getJavaName());
Bharat saraswal64e7e232016-07-14 23:33:55 +0530309
310 //Creates event interface file.
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530311 eventSubjectJavaFileHandle = getJavaFileHandle(curNode, curNodeInfo +
312 EVENT_SUBJECT_NAME_SUFFIX);
313 generateEventSubjectFile(eventSubjectJavaFileHandle, curNode);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530314 }
315
316 /**
317 * Adds java snippet for events to event subject file.
318 *
319 * @param curNode current node
320 * @param pluginConfig plugin configurations
321 * @throws IOException when fails to do IO operations
322 */
Bharat saraswal64e7e232016-07-14 23:33:55 +0530323 void addJavaSnippetOfEvent(YangNode curNode, YangPluginConfig pluginConfig)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530324 throws IOException {
325
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530326 String currentInfo = getCamelCase(curNode.getName(), pluginConfig
327 .getConflictResolver());
Bharat saraswal039f59c2016-07-14 21:57:13 +0530328 String notificationName = curNode.getName();
329
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530330 JavaQualifiedTypeInfoTranslator qualifiedTypeInfo
331 = getQualifiedTypeInfoOfCurNode(curNode, getCapitalCase(currentInfo));
Bharat saraswal039f59c2016-07-14 21:57:13 +0530332
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530333 JavaAttributeInfo javaAttributeInfo
334 = getAttributeInfoForTheData(qualifiedTypeInfo, currentInfo,
335 null, false, false);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530336
337 /*Adds java info for event in respective temp files.*/
Bharat saraswal748fc3c2016-09-06 16:38:20 +0530338 addEventEnum(notificationName);
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530339 addEventSubjectAttribute(javaAttributeInfo);
340 addEventSubjectGetter(javaAttributeInfo);
341 addEventSubjectSetter(javaAttributeInfo, currentInfo);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530342 }
343
344 /*Adds event to enum temp file.*/
Bharat saraswal748fc3c2016-09-06 16:38:20 +0530345 private void addEventEnum(String notificationName)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530346 throws IOException {
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530347 appendToFile(getEventEnumTempFileHandle(), enumJavaDocForInnerClass(
348 notificationName) + EIGHT_SPACE_INDENTATION
349 + getEnumJavaAttribute(notificationName).toUpperCase() +
350 COMMA + NEW_LINE);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530351 }
352
353 /*Adds event method in event class*/
354 private void addEnumMethod(String eventClassname, String className)
355 throws IOException {
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530356 appendToFile(getEventMethodTempFileHandle(),
357 getEventFileContents(eventClassname, className));
Bharat saraswal039f59c2016-07-14 21:57:13 +0530358 }
359
360 /*Adds events to event subject file.*/
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530361 private void addEventSubjectAttribute(JavaAttributeInfo attr)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530362 throws IOException {
363 appendToFile(getEventSubjectAttributeTempFileHandle(),
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530364 parseAttribute(attr));
Bharat saraswal039f59c2016-07-14 21:57:13 +0530365 }
366
367 /*Adds getter method for event in event subject class.*/
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530368 private void addEventSubjectGetter(JavaAttributeInfo attr)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530369 throws IOException {
Vidyashree Ramab3670472016-08-06 15:49:56 +0530370 String appDataStructure = null;
371 if (attr.getCompilerAnnotation() != null) {
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530372 appDataStructure = attr.getCompilerAnnotation()
373 .getYangAppDataStructure().getDataStructure().name();
Vidyashree Ramab3670472016-08-06 15:49:56 +0530374 }
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530375 appendToFile(getEventSubjectGetterTempFileHandle(), getJavaDoc(
376 GETTER_METHOD, attr.getAttributeName(), false,
377 appDataStructure) + getGetterForClass(
378 attr, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530379 }
380
381 /*Adds setter method for event in event subject class.*/
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530382 private void addEventSubjectSetter(JavaAttributeInfo attr,
383 String className)
Bharat saraswal039f59c2016-07-14 21:57:13 +0530384 throws IOException {
Vidyashree Ramab3670472016-08-06 15:49:56 +0530385 String appDataStructure = null;
386 if (attr.getCompilerAnnotation() != null) {
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530387 appDataStructure = attr.getCompilerAnnotation()
388 .getYangAppDataStructure().getDataStructure().name();
Vidyashree Ramab3670472016-08-06 15:49:56 +0530389 }
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530390 appendToFile(getEventSubjectSetterTempFileHandle(), getJavaDoc(
391 MANAGER_SETTER_METHOD, attr.getAttributeName(),
392 false, appDataStructure) + getSetterForClass(
393 attr, className, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530394 }
395
396 /**
397 * Returns a temporary file handle for the event's file type.
398 *
399 * @param name file name
400 * @return temporary file handle
Bharat saraswal039f59c2016-07-14 21:57:13 +0530401 */
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530402 private File getJavaFileHandle(YangNode curNode, String name) {
Bharat saraswal039f59c2016-07-14 21:57:13 +0530403
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530404 JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) curNode)
405 .getJavaFileInfo();
Bharat saraswal039f59c2016-07-14 21:57:13 +0530406 return getFileObject(getDirPath(parentInfo), name, JAVA_FILE_EXTENSION,
Bharat saraswal748fc3c2016-09-06 16:38:20 +0530407 parentInfo);
Bharat saraswal039f59c2016-07-14 21:57:13 +0530408 }
409
410 /**
411 * Returns the directory path.
412 *
413 * @return directory path
414 */
Bharat saraswale50edca2016-08-05 01:58:25 +0530415 private String getDirPath(JavaFileInfoTranslator parentInfo) {
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530416 return (parentInfo.getPackageFilePath() + SLASH +
417 parentInfo.getJavaName()).toLowerCase();
Bharat saraswal039f59c2016-07-14 21:57:13 +0530418 }
Bharat saraswal64e7e232016-07-14 23:33:55 +0530419
420 /**
421 * Removes all temporary file handles.
422 *
423 * @param isErrorOccurred flag to tell translator that error has occurred while file generation
424 * @throws IOException when failed to delete the temporary files
425 */
426 @Override
427 public void freeTemporaryResources(boolean isErrorOccurred)
428 throws IOException {
429
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530430 closeFile(eventJavaFileHandle, isErrorOccurred);
431 closeFile(eventListenerJavaFileHandle, isErrorOccurred);
432 closeFile(eventSubjectJavaFileHandle, isErrorOccurred);
Bharat saraswal64e7e232016-07-14 23:33:55 +0530433
Bharat saraswal9fab16b2016-09-23 23:27:24 +0530434 closeFile(eventEnumTempFileHandle, true);
435 closeFile(eventSubjectAttributeTempFileHandle, true);
436 closeFile(eventMethodTempFileHandle, true);
437 closeFile(eventSubjectGetterTempFileHandle, true);
438 closeFile(eventSubjectSetterTempFileHandle, true);
Bharat saraswal64e7e232016-07-14 23:33:55 +0530439
440 super.freeTemporaryResources(isErrorOccurred);
Bharat saraswal64e7e232016-07-14 23:33:55 +0530441 }
Bharat saraswal039f59c2016-07-14 21:57:13 +0530442}