1 /*
2 * This file is part of *** M y C o R e ***
3 * See http://www.mycore.de/ for details.
4 *
5 * MyCoRe is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * MyCoRe is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with MyCoRe. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 package org.mycore.sword;
20
21 import java.io.FilterInputStream;
22 import java.io.IOException;
23 import java.io.InputStream;
24 import java.nio.file.Files;
25 import java.nio.file.Path;
26
27 import org.apache.logging.log4j.LogManager;
28 import org.apache.logging.log4j.Logger;
29
30 public class MCRDeleteFileOnCloseFilterInputStream extends FilterInputStream {
31
32 private static final Logger LOGGER = LogManager.getLogger();
33
34 private final Path fileToDelete;
35
36 public MCRDeleteFileOnCloseFilterInputStream(InputStream source, Path fileToDelete) {
37 super(source);
38 this.fileToDelete = fileToDelete;
39 }
40
41 @Override
42 public void close() throws IOException {
43 try {
44 in.close();
45 } catch (IOException e) {
46 throw e;
47 } finally {
48 LOGGER.info("Delete File : {}", fileToDelete);
49 Files.delete(fileToDelete);
50 }
51 }
52 }