blob: 9ca6b4e27a972740342468f276dd195729717ad2 [file] [log] [blame]
Bharat saraswald50c6382016-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
19import java.io.File;
20import java.io.IOException;
21import java.util.ArrayList;
22import java.util.List;
23
24import org.onosproject.yangutils.datamodel.YangNode;
Shankara-Huaweibdf24bb2016-08-02 18:13:13 +053025import org.onosproject.yangutils.datamodel.javadatamodel.JavaFileInfo;
26import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaGroupingTranslator;
Bharat saraswald50c6382016-07-14 21:57:13 +053027import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
Shankara-Huaweibdf24bb2016-08-02 18:13:13 +053028import org.onosproject.yangutils.datamodel.javadatamodel.YangPluginConfig;
Bharat saraswald50c6382016-07-14 21:57:13 +053029
30import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
31import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_ENUM_MASK;
32import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_METHOD_MASK;
33import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_ATTRIBUTE_MASK;
34import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_GETTER_MASK;
35import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_SETTER_MASK;
36import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
Shankara-Huaweibdf24bb2016-08-02 18:13:13 +053037import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.getQualifiedTypeInfoOfCurNode;
Bharat saraswald50c6382016-07-14 21:57:13 +053038import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventFile;
39import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventListenerFile;
40import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventSubjectFile;
41import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
42import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
43import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
44import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
45import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
46import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
47import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
48import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
49import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
Bharat saraswale707f032016-07-14 23:33:55 +053050import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
Bharat saraswald50c6382016-07-14 21:57:13 +053051import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE;
52import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
53import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MANAGER_SETTER_METHOD;
54import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
55import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
56import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
57import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
58import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
59
60/**
61 * Represent temporary java fragments for event files.
62 */
63public class TempJavaEventFragmentFiles
64 extends TempJavaFragmentFiles {
65 /**
66 * File name for generated class file for special type like union, typedef suffix.
67 */
Bharat saraswale707f032016-07-14 23:33:55 +053068 private static final String EVENT_SUBJECT_NAME_SUFFIX = "EventSubject";
Bharat saraswald50c6382016-07-14 21:57:13 +053069
70 /**
71 * File name for event enum temp file.
72 */
Bharat saraswald50c6382016-07-14 21:57:13 +053073 private static final String EVENT_ENUM_FILE_NAME = "EventEnum";
74
75 /**
76 * File name for event method temp file.
77 */
78 private static final String EVENT_METHOD_FILE_NAME = "EventMethod";
79
80 /**
81 * File name for event subject attribute temp file.
82 */
83 private static final String EVENT_SUBJECT_ATTRIBUTE_FILE_NAME = "EventSubjectAttribute";
84
85 /**
86 * File name for event subject getter temp file.
87 */
88 private static final String EVENT_SUBJECT_GETTER_FILE_NAME = "EventSubjectGetter";
89
90 /**
91 * File name for event subject setter temp file.
92 */
93 private static final String EVENT_SUBJECT_SETTER_FILE_NAME = "EventSubjectSetter";
94
95 /**
96 * File name for generated class file for special type like union, typedef suffix.
97 */
98 private static final String EVENT_FILE_NAME_SUFFIX = "Event";
99
100 /**
101 * File name for generated class file for special type like union, typedef suffix.
102 */
Bharat saraswal6a5911f2016-08-02 18:43:16 +0530103 private static final String EVENT_LISTENER_FILE_NAME_SUFFIX = "EventListener";
Bharat saraswald50c6382016-07-14 21:57:13 +0530104
105 private static final String JAVA_FILE_EXTENSION = ".java";
106
107 /**
108 * Java file handle for event subject file.
109 */
110 private File eventSubjectJavaFileHandle;
111
112 /**
113 * Java file handle for event listener file.
114 */
115 private File eventListenerJavaFileHandle;
116
117 /**
118 * Java file handle for event file.
119 */
120 private File eventJavaFileHandle;
121
122 /**
123 * Java file handle for event enum impl file.
124 */
125 private File eventEnumTempFileHandle;
126
127 /**
128 * Java file handle for event method impl file.
129 */
130 private File eventMethodTempFileHandle;
131
132 /**
133 * Java file handle for event subject attribute file.
134 */
135 private File eventSubjectAttributeTempFileHandle;
136
137 /**
138 * Java file handle for event subject getter impl file.
139 */
140 private File eventSubjectGetterTempFileHandle;
141
142 /**
143 * Java file handle for event subject setter impl file.
144 */
145 private File eventSubjectSetterTempFileHandle;
146
147 /**
148 * Creates an instance of temporary java code fragment.
149 *
150 * @param javaFileInfo generated file information
151 * @throws IOException when fails to create new file handle
152 */
Bharat saraswale707f032016-07-14 23:33:55 +0530153 TempJavaEventFragmentFiles(JavaFileInfo javaFileInfo)
Bharat saraswald50c6382016-07-14 21:57:13 +0530154 throws IOException {
155 setJavaExtendsListHolder(new JavaExtendsListHolder());
156 setJavaImportData(new JavaImportData());
157 setJavaFileInfo(javaFileInfo);
158 setAbsoluteDirPath(getAbsolutePackagePath(getJavaFileInfo().getBaseCodeGenPath(),
159 getJavaFileInfo().getPackageFilePath()));
160
161 addGeneratedTempFile(EVENT_ENUM_MASK);
162 addGeneratedTempFile(EVENT_METHOD_MASK);
163 addGeneratedTempFile(EVENT_SUBJECT_ATTRIBUTE_MASK);
164 addGeneratedTempFile(EVENT_SUBJECT_GETTER_MASK);
165 addGeneratedTempFile(EVENT_SUBJECT_SETTER_MASK);
166
167 setEventEnumTempFileHandle(getTemporaryFileHandle(EVENT_ENUM_FILE_NAME));
168 setEventMethodTempFileHandle(getTemporaryFileHandle(EVENT_METHOD_FILE_NAME));
169 setEventSubjectAttributeTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_ATTRIBUTE_FILE_NAME));
170 setEventSubjectGetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_GETTER_FILE_NAME));
171 setEventSubjectSetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_SETTER_FILE_NAME));
172 }
173
174 /*Adds event method contents to event file.*/
175 private static String getEventFileContents(String eventClassname, String classname) {
176 return "\n" +
177 " /**\n" +
178 " * Creates " + classname + " event with type and subject.\n" +
179 " *\n" +
180 " * @param type event type\n" +
181 " * @param subject subject " + classname + "\n" +
182 " */\n" +
183 " public " + eventClassname + "(Type type, " + getCapitalCase(classname) + " subject) {\n" +
184 " super(type, subject);\n" +
185 " }\n" +
186 "\n" +
187 " /**\n" +
188 " * Creates " + classname + " event with type, subject and time.\n" +
189 " *\n" +
190 " * @param type event type\n" +
191 " * @param subject subject " + classname + "\n" +
192 " * @param time time of event\n" +
193 " */\n" +
194 " public " + eventClassname + "(Type type, " + getCapitalCase(classname)
195 + " subject, long time) {\n" +
196 " super(type, subject, time);\n" +
197 " }\n" +
198 "\n";
199 }
200
201 /**
202 * Returns event's java file handle.
203 *
204 * @return java file handle
205 */
206 private File getEventJavaFileHandle() {
207 return eventJavaFileHandle;
208 }
209
210 /**
211 * Sets event's java file handle.
212 *
213 * @param eventJavaFileHandle file handle for event
214 */
215 private void setEventJavaFileHandle(File eventJavaFileHandle) {
216 this.eventJavaFileHandle = eventJavaFileHandle;
217 }
218
219 /**
220 * Returns event listeners's java file handle.
221 *
222 * @return java file handle
223 */
224 private File getEventListenerJavaFileHandle() {
225 return eventListenerJavaFileHandle;
226 }
227
228 /**
229 * Sets event's java file handle.
230 *
231 * @param eventListenerJavaFileHandle file handle for event
232 */
233 private void setEventListenerJavaFileHandle(File eventListenerJavaFileHandle) {
234 this.eventListenerJavaFileHandle = eventListenerJavaFileHandle;
235 }
236
237 /**
238 * Returns event subject's java file handle.
239 *
240 * @return java file handle
241 */
242 private File getEventSubjectJavaFileHandle() {
243 return eventSubjectJavaFileHandle;
244 }
245
246 /**
247 * Sets event's subject java file handle.
248 *
249 * @param eventSubjectJavaFileHandle file handle for event's subject
250 */
251 private void setEventSubjectJavaFileHandle(File eventSubjectJavaFileHandle) {
252 this.eventSubjectJavaFileHandle = eventSubjectJavaFileHandle;
253 }
254
255 public void generateJavaFile(int fileType, YangNode curNode) throws IOException {
256 generateEventJavaFile(curNode);
257 generateEventListenerJavaFile(curNode);
258 generateEventSubjectJavaFile(curNode);
Bharat saraswale707f032016-07-14 23:33:55 +0530259
260 // Close all the file handles.
261 freeTemporaryResources(false);
Bharat saraswald50c6382016-07-14 21:57:13 +0530262 }
263
264 /**
265 * Constructs java code exit.
266 *
267 * @param curNode current YANG node
268 * @throws IOException when fails to generate java files
269 */
Bharat saraswale707f032016-07-14 23:33:55 +0530270 private void generateEventJavaFile(YangNode curNode)
Bharat saraswald50c6382016-07-14 21:57:13 +0530271 throws IOException {
272
273 List<String> imports = new ArrayList<>();
274
275 imports.add(getJavaImportData().getAbstractEventsImport());
276 String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName());
277 String nodeName = curNodeInfo + EVENT_STRING;
278
279 addEnumMethod(nodeName, curNodeInfo + EVENT_SUBJECT_NAME_SUFFIX);
280
Bharat saraswale707f032016-07-14 23:33:55 +0530281 //Creates event interface file.
Bharat saraswald50c6382016-07-14 21:57:13 +0530282 setEventJavaFileHandle(getJavaFileHandle(curNode, curNodeInfo + EVENT_FILE_NAME_SUFFIX));
283 generateEventFile(getEventJavaFileHandle(), curNode, imports);
284
Bharat saraswald50c6382016-07-14 21:57:13 +0530285 }
286
287 /**
288 * Constructs java code exit.
289 *
290 * @param curNode current YANG node
291 * @throws IOException when fails to generate java files
292 */
Bharat saraswale707f032016-07-14 23:33:55 +0530293 private void generateEventListenerJavaFile(YangNode curNode)
294 throws IOException {
295
296 List<String> imports = new ArrayList<>();
297
298 imports.add(getJavaImportData().getEventListenerImport());
299 String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode)
300 .getJavaFileInfo().getJavaName());
301
302 // Creates event listener interface file.
303 setEventListenerJavaFileHandle(
304 getJavaFileHandle(curNode, curNodeInfo + EVENT_LISTENER_FILE_NAME_SUFFIX));
305 generateEventListenerFile(getEventListenerJavaFileHandle(), curNode, imports);
306
307 }
308
309 /**
310 * Constructs java code exit.
311 *
312 * @param curNode current YANG node
313 * @throws IOException when fails to generate java files
314 */
315 private void generateEventSubjectJavaFile(YangNode curNode)
Bharat saraswald50c6382016-07-14 21:57:13 +0530316 throws IOException {
317
318 String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode)
319 .getJavaFileInfo().getJavaName());
Bharat saraswale707f032016-07-14 23:33:55 +0530320
321 //Creates event interface file.
Bharat saraswald50c6382016-07-14 21:57:13 +0530322 setEventSubjectJavaFileHandle(getJavaFileHandle(curNode, curNodeInfo +
Shankara-Huaweibdf24bb2016-08-02 18:13:13 +0530323 EVENT_SUBJECT_NAME_SUFFIX));
Bharat saraswald50c6382016-07-14 21:57:13 +0530324 generateEventSubjectFile(getEventSubjectJavaFileHandle(), curNode);
325
Bharat saraswald50c6382016-07-14 21:57:13 +0530326 }
327
328 /**
329 * Returns event enum temp file.
330 *
331 * @return event enum temp file
332 */
333 public File getEventEnumTempFileHandle() {
334 return eventEnumTempFileHandle;
335 }
336
337 /**
338 * Sets event enum temp file.
339 *
340 * @param eventEnumTempFileHandle event enum temp file
341 */
Bharat saraswale707f032016-07-14 23:33:55 +0530342 private void setEventEnumTempFileHandle(File eventEnumTempFileHandle) {
Bharat saraswald50c6382016-07-14 21:57:13 +0530343 this.eventEnumTempFileHandle = eventEnumTempFileHandle;
344 }
345
346 /**
347 * Returns event method temp file.
348 *
349 * @return event method temp file
350 */
351 public File getEventMethodTempFileHandle() {
352 return eventMethodTempFileHandle;
353 }
354
355 /**
356 * Sets event method temp file.
357 *
358 * @param eventMethodTempFileHandle event method temp file
359 */
Bharat saraswale707f032016-07-14 23:33:55 +0530360 private void setEventMethodTempFileHandle(File eventMethodTempFileHandle) {
Bharat saraswald50c6382016-07-14 21:57:13 +0530361 this.eventMethodTempFileHandle = eventMethodTempFileHandle;
362 }
363
364 /**
365 * Returns event subject attribute temp file.
366 *
367 * @return event subject attribute temp file
368 */
369 public File getEventSubjectAttributeTempFileHandle() {
370 return eventSubjectAttributeTempFileHandle;
371 }
372
373 /**
374 * Sets event subject attribute temp file.
375 *
376 * @param eventSubjectAttributeTempFileHandle event subject attribute temp file
377 */
Bharat saraswale707f032016-07-14 23:33:55 +0530378 private void setEventSubjectAttributeTempFileHandle(File eventSubjectAttributeTempFileHandle) {
Bharat saraswald50c6382016-07-14 21:57:13 +0530379 this.eventSubjectAttributeTempFileHandle = eventSubjectAttributeTempFileHandle;
380 }
381
382 /**
383 * Returns event subject getter temp file.
384 *
385 * @return event subject getter temp file
386 */
387 public File getEventSubjectGetterTempFileHandle() {
388 return eventSubjectGetterTempFileHandle;
389 }
390
391 /**
392 * Sets event subject getter temp file.
393 *
394 * @param eventSubjectGetterTempFileHandle event subject getter temp file
395 */
Bharat saraswale707f032016-07-14 23:33:55 +0530396 private void setEventSubjectGetterTempFileHandle(File eventSubjectGetterTempFileHandle) {
Bharat saraswald50c6382016-07-14 21:57:13 +0530397 this.eventSubjectGetterTempFileHandle = eventSubjectGetterTempFileHandle;
398 }
399
400 /**
401 * Returns event subject setter temp file.
402 *
403 * @return event subject setter temp file
404 */
405 public File getEventSubjectSetterTempFileHandle() {
406 return eventSubjectSetterTempFileHandle;
407 }
408
409 /**
410 * Sets event subject setter temp file.
411 *
412 * @param eventSubjectSetterTempFileHandle event subject setter temp file
413 */
Bharat saraswale707f032016-07-14 23:33:55 +0530414 private void setEventSubjectSetterTempFileHandle(File eventSubjectSetterTempFileHandle) {
Bharat saraswald50c6382016-07-14 21:57:13 +0530415 this.eventSubjectSetterTempFileHandle = eventSubjectSetterTempFileHandle;
416 }
417
418 /**
419 * Adds java snippet for events to event subject file.
420 *
421 * @param curNode current node
422 * @param pluginConfig plugin configurations
423 * @throws IOException when fails to do IO operations
424 */
Bharat saraswale707f032016-07-14 23:33:55 +0530425 void addJavaSnippetOfEvent(YangNode curNode, YangPluginConfig pluginConfig)
Bharat saraswald50c6382016-07-14 21:57:13 +0530426 throws IOException {
427
428 String currentInfo = getCapitalCase(getCamelCase(curNode.getName(),
429 pluginConfig.getConflictResolver()));
430 String notificationName = curNode.getName();
431
Shankara-Huaweibdf24bb2016-08-02 18:13:13 +0530432 JavaQualifiedTypeInfoTranslator qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
Bharat saraswald50c6382016-07-14 21:57:13 +0530433 getCapitalCase(currentInfo));
434
435 JavaAttributeInfo javaAttributeInfo = getAttributeInfoForTheData(qualifiedTypeInfo, getSmallCase(currentInfo),
436 null, false, false);
437
438 /*Adds java info for event in respective temp files.*/
439 addEventEnum(notificationName, pluginConfig);
440 addEventSubjectAttribute(javaAttributeInfo, pluginConfig);
441 addEventSubjectGetter(javaAttributeInfo, pluginConfig);
442 addEventSubjectSetter(javaAttributeInfo, pluginConfig, currentInfo);
443 }
444
445 /*Adds event to enum temp file.*/
446 private void addEventEnum(String notificationName, YangPluginConfig pluginConfig)
447 throws IOException {
448 appendToFile(getEventEnumTempFileHandle(),
449 getJavaDoc(ENUM_ATTRIBUTE, notificationName, false, pluginConfig) + FOUR_SPACE_INDENTATION
450 + getEnumJavaAttribute(notificationName).toUpperCase() + COMMA + NEW_LINE);
451 }
452
453 /*Adds event method in event class*/
454 private void addEnumMethod(String eventClassname, String className)
455 throws IOException {
456 appendToFile(getEventMethodTempFileHandle(), getEventFileContents(eventClassname, className));
457 }
458
459 /*Adds events to event subject file.*/
460 private void addEventSubjectAttribute(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
461 throws IOException {
462 appendToFile(getEventSubjectAttributeTempFileHandle(),
463 FOUR_SPACE_INDENTATION + parseAttribute(attr, pluginConfig));
464 }
465
466 /*Adds getter method for event in event subject class.*/
467 private void addEventSubjectGetter(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
468 throws IOException {
469 appendToFile(getEventSubjectGetterTempFileHandle(),
470 getJavaDoc(GETTER_METHOD, getCapitalCase(attr.getAttributeName()), false, pluginConfig)
471 + getGetterForClass(attr, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
472 }
473
474 /*Adds setter method for event in event subject class.*/
475 private void addEventSubjectSetter(JavaAttributeInfo attr, YangPluginConfig pluginConfig, String className)
476 throws IOException {
477 appendToFile(getEventSubjectSetterTempFileHandle(),
478 getJavaDoc(MANAGER_SETTER_METHOD, getCapitalCase(attr.getAttributeName()), false, pluginConfig)
479 + getSetterForClass(attr, className, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
480 }
481
482 /**
483 * Returns a temporary file handle for the event's file type.
484 *
485 * @param name file name
486 * @return temporary file handle
487 * @throws IOException when fails to create new file handle
488 */
489 private File getJavaFileHandle(YangNode curNode, String name)
490 throws IOException {
491
492 JavaFileInfo parentInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
janani befb554b2016-07-14 15:03:41 +0530493 YangNode childNode = curNode.getChild();
Bharat saraswald50c6382016-07-14 21:57:13 +0530494
janani befb554b2016-07-14 15:03:41 +0530495 // Skip grouping, as it wont have the package name.
Shankara-Huaweibdf24bb2016-08-02 18:13:13 +0530496 while (childNode instanceof YangJavaGroupingTranslator) {
janani befb554b2016-07-14 15:03:41 +0530497 childNode = childNode.getNextSibling();
498 }
499 JavaFileInfo childInfo = ((JavaFileInfoContainer) childNode).getJavaFileInfo();
Bharat saraswald50c6382016-07-14 21:57:13 +0530500 return getFileObject(getDirPath(parentInfo), name, JAVA_FILE_EXTENSION,
501 childInfo.getBaseCodeGenPath());
502 }
503
504 /**
505 * Returns the directory path.
506 *
507 * @return directory path
508 */
509 private String getDirPath(JavaFileInfo parentInfo) {
510 return (parentInfo.getPackageFilePath() + SLASH + parentInfo.getJavaName()).toLowerCase();
511 }
Bharat saraswale707f032016-07-14 23:33:55 +0530512
513 /**
514 * Removes all temporary file handles.
515 *
516 * @param isErrorOccurred flag to tell translator that error has occurred while file generation
517 * @throws IOException when failed to delete the temporary files
518 */
519 @Override
520 public void freeTemporaryResources(boolean isErrorOccurred)
521 throws IOException {
522
523 closeFile(getEventJavaFileHandle(), isErrorOccurred);
524 closeFile(getEventListenerJavaFileHandle(), isErrorOccurred);
525 closeFile(getEventSubjectJavaFileHandle(), isErrorOccurred);
526
527 closeFile(getEventEnumTempFileHandle(), true);
528 closeFile(getEventSubjectAttributeTempFileHandle(), true);
529 closeFile(getEventMethodTempFileHandle(), true);
530 closeFile(getEventSubjectGetterTempFileHandle(), true);
531 closeFile(getEventSubjectSetterTempFileHandle(), true);
532
533 super.freeTemporaryResources(isErrorOccurred);
534
535 }
Bharat saraswald50c6382016-07-14 21:57:13 +0530536}