Skip to content

Commit bd99da3

Browse files
committed
core: Move FileHandle-specific logic back from Inode
Move the FileHandle-specific methods that were previously moved to Inode back to FileHandle, which is now deprecated. Adjust FileHandleTest, and add a new test case that does call the Inode constructor directly instead of FileHandleBuilder. Related: #149 Signed-off-by: Christian Kohlschütter <[email protected]>
1 parent ce77a51 commit bd99da3

File tree

3 files changed

+59
-33
lines changed

3 files changed

+59
-33
lines changed

core/src/main/java/org/dcache/nfs/vfs/FileHandle.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,32 @@ public FileHandle build() {
6363
return build(fs_opaque);
6464
}
6565
}
66+
67+
public int getVersion() {
68+
return handleVersion();
69+
}
70+
71+
public int getMagic() {
72+
return super.getMagic();
73+
}
74+
75+
public int getGeneration() {
76+
return super.getGeneration();
77+
}
78+
79+
public int getExportIdx() {
80+
return super.getExportIdx();
81+
}
82+
83+
public int getType() {
84+
return super.getType();
85+
}
86+
87+
public byte[] getFsOpaque() {
88+
return super.getFsOpaque();
89+
}
90+
91+
public byte[] bytes() {
92+
return toNfsHandle();
93+
}
6694
}

core/src/main/java/org/dcache/nfs/vfs/Inode.java

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -130,48 +130,34 @@ public Inode(byte[] bytes) {
130130
}
131131
}
132132

133-
public int getVersion() {
134-
return version;
135-
}
136-
137-
public int getMagic() {
133+
@Deprecated(forRemoval = true)
134+
protected int getMagic() {
138135
return magic;
139136
}
140137

141-
public int getGeneration() {
138+
@Deprecated(forRemoval = true)
139+
protected int getGeneration() {
142140
return generation;
143141
}
144142

145-
public int getExportIdx() {
143+
@Deprecated(forRemoval = true)
144+
protected int getExportIdx() {
146145
return exportIdx;
147146
}
148147

149-
public int getType() {
148+
@Deprecated(forRemoval = true)
149+
protected int getType() {
150150
return type;
151151
}
152152

153-
public byte[] getFsOpaque() {
153+
@Deprecated(forRemoval = true)
154+
protected byte[] getFsOpaque() {
154155
return fs_opaque;
155156
}
156157

157-
public byte[] bytes() {
158-
int len = fs_opaque.length + MIN_LEN;
159-
byte[] bytes = new byte[len];
160-
ByteBuffer b = ByteBuffer.wrap(bytes);
161-
b.order(ByteOrder.BIG_ENDIAN);
162-
163-
b.putInt(version << 24 | magic);
164-
b.putInt(generation);
165-
b.putInt(exportIdx);
166-
b.put((byte) type);
167-
b.put((byte) fs_opaque.length);
168-
b.put(fs_opaque);
169-
return bytes;
170-
}
171-
172158
@Override
173159
public String toString() {
174-
return BaseEncoding.base16().lowerCase().encode(this.bytes());
160+
return BaseEncoding.base16().lowerCase().encode(this.toNfsHandle());
175161
}
176162

177163
private static boolean arrayEquals(byte[] a1, byte[] a2, int len) {
@@ -198,12 +184,23 @@ public byte[] getFileId() {
198184
}
199185

200186
public byte[] toNfsHandle() {
201-
return bytes();
202-
}
187+
int len = fs_opaque.length + MIN_LEN;
188+
byte[] bytes = new byte[len];
189+
ByteBuffer b = ByteBuffer.wrap(bytes);
190+
b.order(ByteOrder.BIG_ENDIAN);
191+
192+
b.putInt(version << 24 | magic);
193+
b.putInt(generation);
194+
b.putInt(exportIdx);
195+
b.put((byte) type);
196+
b.put((byte) fs_opaque.length);
197+
b.put(fs_opaque);
198+
return bytes;
199+
}
203200

204201
@Override
205202
public int hashCode() {
206-
return Arrays.hashCode(bytes());
203+
return Arrays.hashCode(toNfsHandle());
207204
}
208205

209206
@Override
@@ -215,7 +212,7 @@ public boolean equals(Object obj) {
215212
return false;
216213
}
217214
final Inode other = (Inode) obj;
218-
return Arrays.equals(bytes(), other.bytes());
215+
return Arrays.equals(toNfsHandle(), other.toNfsHandle());
219216
}
220217

221218
public boolean isPseudoInode() {
@@ -226,7 +223,8 @@ public int exportIndex() {
226223
return getExportIdx();
227224
}
228225

226+
@Deprecated
229227
public int handleVersion() {
230-
return getVersion();
228+
return version;
231229
}
232230
}

core/src/test/java/org/dcache/nfs/vfs/FileHandleTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,15 @@ public void testBuilder() {
7979

8080
@Test
8181
public void testFileHandleConstructor() {
82-
Inode fh = new Inode(0, "/export/data".hashCode(), 0, "0:INODE:0000C37233174392456EB83E44844E8D28D6:0".getBytes(
82+
Inode inode = new Inode(0, "/export/data".hashCode(), 0, "0:INODE:0000C37233174392456EB83E44844E8D28D6:0".getBytes(
8383
US_ASCII));
8484

8585
assertEquals(
8686
"01caffee00000000ea15b996002e303a494e4f44453a3030303043333732333331373433393234353645423833453434383434453844323844363a30",
87-
fh.toString());
87+
inode.toString());
8888
assertArrayEquals(BaseEncoding.base16().lowerCase().decode(
8989
"01caffee00000000ea15b996002e303a494e4f44453a3030303043333732333331373433393234353645423833453434383434453844323844363a30"),
90-
fh.bytes());
90+
inode.toNfsHandle());
9191
}
9292

9393
@Test

0 commit comments

Comments
 (0)