14ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/****************************************************************
24ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Licensed to the Apache Software Foundation (ASF) under one   *
34ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * or more contributor license agreements.  See the NOTICE file *
44ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * distributed with this work for additional information        *
54ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * regarding copyright ownership.  The ASF licenses this file   *
64ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * to you under the Apache License, Version 2.0 (the            *
74ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * "License"); you may not use this file except in compliance   *
84ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * with the License.  You may obtain a copy of the License at   *
94ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *                                                              *
104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *   http://www.apache.org/licenses/LICENSE-2.0                 *
114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *                                                              *
124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Unless required by applicable law or agreed to in writing,   *
134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * software distributed under the License is distributed on an  *
144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * KIND, either express or implied.  See the License for the    *
164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * specific language governing permissions and limitations      *
174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * under the License.                                           *
184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira ****************************************************************/
194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapackage org.apache.james.mime4j.util;
214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.BufferedInputStream;
234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.BufferedOutputStream;
244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.File;
254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.FileInputStream;
264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.FileOutputStream;
274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.IOException;
284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.InputStream;
294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.OutputStream;
304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.util.Random;
314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira//BEGIN android-changed: Stubbing out logging
334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.Log;
344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.LogFactory;
354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira//END android-changed
364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/**
384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *
394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * @version $Id: SimpleTempStorage.java,v 1.2 2004/10/02 12:41:11 ntherning Exp $
404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */
414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapublic class SimpleTempStorage extends TempStorage {
424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private static Log log = LogFactory.getLog(SimpleTempStorage.class);
434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private TempPath rootPath = null;
454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private Random random = new Random();
464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    /**
484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     * Creates a new <code>SimpleTempStorageManager</code> instance.
494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     */
504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    public SimpleTempStorage() {
514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        rootPath = new SimpleTempPath(System.getProperty("java.io.tmpdir"));
524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private TempPath createTempPath(TempPath parent, String prefix)
554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            throws IOException {
564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        if (prefix == null) {
584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            prefix = "";
594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        File p = null;
624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        int count = 1000;
634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        do {
644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            long n = Math.abs(random.nextLong());
654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            p = new File(parent.getAbsolutePath(), prefix + n);
664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            count--;
674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        } while (p.exists() && count > 0);
684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        if (p.exists() || !p.mkdirs()) {
704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            log.error("Unable to mkdirs on " + p.getAbsolutePath());
714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            throw new IOException("Creating dir '"
724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                    + p.getAbsolutePath() + "' failed.");
734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        return new SimpleTempPath(p);
764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private TempFile createTempFile(TempPath parent, String prefix,
794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                    String suffix) throws IOException {
804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        if (prefix == null) {
824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            prefix = "";
834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        if (suffix == null) {
854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            suffix = ".tmp";
864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        File f = null;
894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        int count = 1000;
914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        synchronized (this) {
924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            do {
934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                long n = Math.abs(random.nextLong());
944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                f = new File(parent.getAbsolutePath(), prefix + n + suffix);
954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                count--;
964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            } while (f.exists() && count > 0);
974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            if (f.exists()) {
994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                throw new IOException("Creating temp file failed: "
1004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                         + "Unable to find unique file name");
1014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            }
1024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            try {
1044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                f.createNewFile();
1054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            } catch (IOException e) {
1064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                throw new IOException("Creating dir '"
1074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                        + f.getAbsolutePath() + "' failed.");
1084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            }
1094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        return new SimpleTempFile(f);
1124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    /**
1154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     * @see org.apache.james.mime4j.util.TempStorage#getRootTempPath()
1164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     */
1174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    public TempPath getRootTempPath() {
1184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        return rootPath;
1194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private class SimpleTempPath implements TempPath {
1224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private File path = null;
1234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private SimpleTempPath(String path) {
1254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            this.path = new File(path);
1264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private SimpleTempPath(File path) {
1294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            this.path = path;
1304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempPath#createTempFile()
1344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public TempFile createTempFile() throws IOException {
1364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return SimpleTempStorage.this.createTempFile(this, null, null);
1374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempPath#createTempFile(java.lang.String, java.lang.String)
1414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public TempFile createTempFile(String prefix, String suffix)
1434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                throws IOException {
1444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return SimpleTempStorage.this.createTempFile(this, prefix, suffix);
1464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempPath#createTempFile(java.lang.String, java.lang.String, boolean)
1504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public TempFile createTempFile(String prefix, String suffix,
1524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                       boolean allowInMemory)
1534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            throws IOException {
1544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return SimpleTempStorage.this.createTempFile(this, prefix, suffix);
1564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempPath#getAbsolutePath()
1604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public String getAbsolutePath() {
1624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return path.getAbsolutePath();
1634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * Do nothing
1674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public void delete() {
1694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempPath#createTempPath()
1734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public TempPath createTempPath() throws IOException {
1754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return SimpleTempStorage.this.createTempPath(this, null);
1764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempPath#createTempPath(java.lang.String)
1804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public TempPath createTempPath(String prefix) throws IOException {
1824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return SimpleTempStorage.this.createTempPath(this, prefix);
1834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private class SimpleTempFile implements TempFile {
1884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private File file = null;
1894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private SimpleTempFile(File file) {
1914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            this.file = file;
1924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            this.file.deleteOnExit();
1934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
1964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempFile#getInputStream()
1974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
1984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public InputStream getInputStream() throws IOException {
1994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return new BufferedInputStream(new FileInputStream(file));
2004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
2034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempFile#getOutputStream()
2044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
2054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public OutputStream getOutputStream() throws IOException {
2064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return new BufferedOutputStream(new FileOutputStream(file));
2074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
2104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempFile#getAbsolutePath()
2114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
2124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public String getAbsolutePath() {
2134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return file.getAbsolutePath();
2144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
2174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * Do nothing
2184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
2194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public void delete() {
2204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            // Not implementated
2214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
2244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempFile#isInMemory()
2254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
2264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public boolean isInMemory() {
2274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return false;
2284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        /**
2314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         * @see org.apache.james.mime4j.util.TempFile#length()
2324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira         */
2334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public long length() {
2344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return file.length();
2354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira}
239