1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.cache;
18
19 import org.apache.commons.vfs.FileName;
20 import org.apache.commons.vfs.FileSystem;
21
22 /***
23 * Key for various cache implementations.<br>
24 * It compares the fileSystem (by hashCode) and the filename.
25 *
26 * @author <a href="mailto:imario@apache.org">Mario Ivankovits</a>
27 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
28 */
29 class FileSystemAndNameKey implements Comparable
30 {
31 private final FileSystem fileSystem;
32 private final FileName fileName;
33 private final int fileSystemId;
34
35 FileSystemAndNameKey(final FileSystem fileSystem, final FileName fileName)
36 {
37 this.fileSystem = fileSystem;
38 this.fileSystemId = System.identityHashCode(fileSystem);
39
40 this.fileName = fileName;
41 }
42
43 public int compareTo(Object o)
44 {
45 FileSystemAndNameKey other = (FileSystemAndNameKey) o;
46
47 if (fileSystemId < other.fileSystemId)
48 {
49 return -1;
50 }
51 if (fileSystemId > other.fileSystemId)
52 {
53 return 1;
54 }
55
56 return fileName.compareTo(other.fileName);
57 }
58
59 FileSystem getFileSystem()
60 {
61 return fileSystem;
62 }
63
64 FileName getFileName()
65 {
66 return fileName;
67 }
68 }