01: package org.apache.lucene.store;
02:
03: /**
04: * Licensed to the Apache Software Foundation (ASF) under one or more
05: * contributor license agreements. See the NOTICE file distributed with
06: * this work for additional information regarding copyright ownership.
07: * The ASF licenses this file to You under the Apache License, Version 2.0
08: * (the "License"); you may not use this file except in compliance with
09: * the License. You may obtain a copy of the License at
10: *
11: * http://www.apache.org/licenses/LICENSE-2.0
12: *
13: * Unless required by applicable law or agreed to in writing, software
14: * distributed under the License is distributed on an "AS IS" BASIS,
15: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16: * See the License for the specific language governing permissions and
17: * limitations under the License.
18: */
19:
20: import java.io.IOException;
21:
22: import org.apache.lucene.store.FSDirectory.FSIndexInput;
23:
24: /** This class provides access to package-level features defined in the
25: * store package. It is used for testing only.
26: */
27: public class _TestHelper {
28:
29: /** Returns true if the instance of the provided input stream is actually
30: * an FSIndexInput.
31: */
32: public static boolean isFSIndexInput(IndexInput is) {
33: return is instanceof FSIndexInput;
34: }
35:
36: /** Returns true if the provided input stream is an FSIndexInput and
37: * is a clone, that is it does not own its underlying file descriptor.
38: */
39: public static boolean isFSIndexInputClone(IndexInput is) {
40: if (isFSIndexInput(is)) {
41: return ((FSIndexInput) is).isClone;
42: } else {
43: return false;
44: }
45: }
46:
47: /** Given an instance of FSDirectory.FSIndexInput, this method returns
48: * true if the underlying file descriptor is valid, and false otherwise.
49: * This can be used to determine if the OS file has been closed.
50: * The descriptor becomes invalid when the non-clone instance of the
51: * FSIndexInput that owns this descriptor is closed. However, the
52: * descriptor may possibly become invalid in other ways as well.
53: */
54: public static boolean isFSIndexInputOpen(IndexInput is)
55: throws IOException {
56: if (isFSIndexInput(is)) {
57: FSIndexInput fis = (FSIndexInput) is;
58: return fis.isFDValid();
59: } else {
60: return false;
61: }
62: }
63:
64: }
|