1 /* 2 * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package sun.nio.fs; 27 28 /** 29 * Container for device/inode to uniquely identify file. 30 */ 31 32 class UnixFileKey { 33 private final long st_dev; 34 private final long st_ino; 35 UnixFileKey(long st_dev, long st_ino)36 UnixFileKey(long st_dev, long st_ino) { 37 this.st_dev = st_dev; 38 this.st_ino = st_ino; 39 } 40 41 @Override hashCode()42 public int hashCode() { 43 return (int)(st_dev ^ (st_dev >>> 32)) + 44 (int)(st_ino ^ (st_ino >>> 32)); 45 } 46 47 @Override equals(Object obj)48 public boolean equals(Object obj) { 49 if (obj == this) 50 return true; 51 if (!(obj instanceof UnixFileKey)) 52 return false; 53 UnixFileKey other = (UnixFileKey)obj; 54 return (this.st_dev == other.st_dev) && (this.st_ino == other.st_ino); 55 } 56 57 @Override toString()58 public String toString() { 59 StringBuilder sb = new StringBuilder(); 60 sb.append("(dev=") 61 .append(Long.toHexString(st_dev)) 62 .append(",ino=") 63 .append(st_ino) 64 .append(')'); 65 return sb.toString(); 66 } 67 } 68