mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-09 06:25:07 +00:00
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…
x
Reference in New Issue
Block a user