Remove unused DirectoryUtils class. (#30582)
This commit is contained in:
parent
28d4685d72
commit
41887e85df
|
@ -1,83 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.elasticsearch.index.store;
|
||||
|
||||
import org.apache.lucene.store.Directory;
|
||||
import org.apache.lucene.store.FileSwitchDirectory;
|
||||
import org.apache.lucene.store.FilterDirectory;
|
||||
|
||||
/**
|
||||
* Utils for working with {@link Directory} classes.
|
||||
*/
|
||||
public final class DirectoryUtils {
|
||||
|
||||
private DirectoryUtils() {} // no instance
|
||||
|
||||
static <T extends Directory> Directory getLeafDirectory(FilterDirectory dir, Class<T> targetClass) {
|
||||
Directory current = dir.getDelegate();
|
||||
while (true) {
|
||||
if ((current instanceof FilterDirectory)) {
|
||||
if (targetClass != null && targetClass.isAssignableFrom(current.getClass())) {
|
||||
break;
|
||||
}
|
||||
current = ((FilterDirectory) current).getDelegate();
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to extract the leaf of the {@link Directory} if the directory is a {@link FilterDirectory} and cast
|
||||
* it to the given target class or returns <code>null</code> if the leaf is not assignable to the target class.
|
||||
* If the given {@link Directory} is a concrete directory it will treated as a leaf and the above applies.
|
||||
*/
|
||||
public static <T extends Directory> T getLeaf(Directory dir, Class<T> targetClass) {
|
||||
return getLeaf(dir, targetClass, null);
|
||||
}
|
||||
/**
|
||||
* Tries to extract the leaf of the {@link Directory} if the directory is a {@link FilterDirectory} and cast
|
||||
* it to the given target class or returns the given default value, if the leaf is not assignable to the target class.
|
||||
* If the given {@link Directory} is a concrete directory it will treated as a leaf and the above applies.
|
||||
*/
|
||||
public static <T extends Directory> T getLeaf(Directory dir, Class<T> targetClass, T defaultValue) {
|
||||
Directory d = dir;
|
||||
if (dir instanceof FilterDirectory) {
|
||||
d = getLeafDirectory((FilterDirectory) dir, targetClass);
|
||||
}
|
||||
if (d instanceof FileSwitchDirectory) {
|
||||
T leaf = getLeaf(((FileSwitchDirectory) d).getPrimaryDir(), targetClass);
|
||||
if (leaf == null) {
|
||||
d = getLeaf(((FileSwitchDirectory) d).getSecondaryDir(), targetClass, defaultValue);
|
||||
} else {
|
||||
d = leaf;
|
||||
}
|
||||
}
|
||||
|
||||
if (d != null && targetClass.isAssignableFrom(d.getClass())) {
|
||||
return targetClass.cast(d);
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,86 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.elasticsearch.index.store;
|
||||
|
||||
import org.apache.lucene.store.BaseDirectoryWrapper;
|
||||
import org.apache.lucene.store.FSDirectory;
|
||||
import org.apache.lucene.store.FileSwitchDirectory;
|
||||
import org.apache.lucene.store.FilterDirectory;
|
||||
import org.apache.lucene.store.RAMDirectory;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.hamcrest.CoreMatchers.nullValue;
|
||||
import static org.hamcrest.CoreMatchers.sameInstance;
|
||||
|
||||
public class DirectoryUtilsTests extends ESTestCase {
|
||||
public void testGetLeave() throws IOException {
|
||||
Path file = createTempDir();
|
||||
final int iters = scaledRandomIntBetween(10, 100);
|
||||
for (int i = 0; i < iters; i++) {
|
||||
{
|
||||
BaseDirectoryWrapper dir = newFSDirectory(file);
|
||||
FSDirectory directory = DirectoryUtils.getLeaf(new FilterDirectory(dir) {}, FSDirectory.class, null);
|
||||
assertThat(directory, notNullValue());
|
||||
assertThat(directory, sameInstance(DirectoryUtils.getLeafDirectory(dir, null)));
|
||||
dir.close();
|
||||
}
|
||||
|
||||
{
|
||||
BaseDirectoryWrapper dir = newFSDirectory(file);
|
||||
FSDirectory directory = DirectoryUtils.getLeaf(dir, FSDirectory.class, null);
|
||||
assertThat(directory, notNullValue());
|
||||
assertThat(directory, sameInstance(DirectoryUtils.getLeafDirectory(dir, null)));
|
||||
dir.close();
|
||||
}
|
||||
|
||||
{
|
||||
Set<String> stringSet = Collections.emptySet();
|
||||
BaseDirectoryWrapper dir = newFSDirectory(file);
|
||||
FSDirectory directory = DirectoryUtils.getLeaf(new FileSwitchDirectory(stringSet, dir, dir, random().nextBoolean()), FSDirectory.class, null);
|
||||
assertThat(directory, notNullValue());
|
||||
assertThat(directory, sameInstance(DirectoryUtils.getLeafDirectory(dir, null)));
|
||||
dir.close();
|
||||
}
|
||||
|
||||
{
|
||||
Set<String> stringSet = Collections.emptySet();
|
||||
BaseDirectoryWrapper dir = newFSDirectory(file);
|
||||
FSDirectory directory = DirectoryUtils.getLeaf(new FilterDirectory(new FileSwitchDirectory(stringSet, dir, dir, random().nextBoolean())) {}, FSDirectory.class, null);
|
||||
assertThat(directory, notNullValue());
|
||||
assertThat(directory, sameInstance(DirectoryUtils.getLeafDirectory(dir, null)));
|
||||
dir.close();
|
||||
}
|
||||
|
||||
{
|
||||
Set<String> stringSet = Collections.emptySet();
|
||||
BaseDirectoryWrapper dir = newFSDirectory(file);
|
||||
RAMDirectory directory = DirectoryUtils.getLeaf(new FilterDirectory(new FileSwitchDirectory(stringSet, dir, dir, random().nextBoolean())) {}, RAMDirectory.class, null);
|
||||
assertThat(directory, nullValue());
|
||||
dir.close();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue