01: /* Copyright (C) 2004 - 2007 db4objects Inc. http://www.db4o.com
02:
03: This file is part of the db4o open source object database.
04:
05: db4o is free software; you can redistribute it and/or modify it under
06: the terms of version 2 of the GNU General Public License as published
07: by the Free Software Foundation and as clarified by db4objects' GPL
08: interpretation policy, available at
09: http://www.db4o.com/about/company/legalpolicies/gplinterpretation/
10: Alternatively you can write to db4objects, Inc., 1900 S Norfolk Street,
11: Suite 350, San Mateo, CA 94403, USA.
12:
13: db4o is distributed in the hope that it will be useful, but WITHOUT ANY
14: WARRANTY; without even the implied warranty of MERCHANTABILITY or
15: FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16: for more details.
17:
18: You should have received a copy of the GNU General Public License along
19: with this program; if not, write to the Free Software Foundation, Inc.,
20: 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
21: package com.db4o.foundation.io;
22:
23: /**
24: * IMPORTANT: Keep the interface of this class compatible with .NET System.IO.Path otherwise
25: * bad things will happen to you.
26: *
27: * @sharpen.ignore
28: */
29: public class Path4 {
30:
31: private static final java.util.Random _random = new java.util.Random();
32:
33: public static String combine(String parent, String child) {
34: return parent.endsWith(java.io.File.separator) ? parent + child
35: : parent + java.io.File.separator + child;
36: }
37:
38: public static String getTempPath() {
39: String path = System.getProperty("java.io.tmpdir");
40: if (path != null && path.length() > 0) {
41: return path;
42: }
43: return "/temp";
44: }
45:
46: public static String getTempFileName() {
47: String tempPath = getTempPath();
48: while (true) {
49: String fname = combine(tempPath, "db4o-test-"
50: + nextRandom() + ".tmp");
51: if (!File4.exists(fname)) {
52: return fname;
53: }
54: }
55: }
56:
57: private static String nextRandom() {
58: return Integer.toHexString(_random.nextInt());
59: }
60: }
|