-
Notifications
You must be signed in to change notification settings - Fork 339
Expand file tree
/
Copy pathClassLoaderResourcePathLocator.java
More file actions
34 lines (27 loc) · 1.07 KB
/
Copy pathClassLoaderResourcePathLocator.java
File metadata and controls
34 lines (27 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package datadog.nativeloader;
import java.net.URL;
import java.util.Objects;
/** ClassLoaderResourcePathLocator locates library paths inside a {@link ClassLoader} */
final class ClassLoaderResourcePathLocator implements PathLocator {
private final ClassLoader classLoader;
private final String baseResource;
public ClassLoaderResourcePathLocator(final ClassLoader classLoader, final String baseResource) {
this.classLoader = classLoader;
this.baseResource = baseResource;
}
@Override
public URL locate(String component, String path) {
return this.classLoader.getResource(PathUtils.concatPath(component, this.baseResource, path));
}
@Override
public int hashCode() {
return Objects.hash(this.classLoader, this.baseResource);
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof ClassLoaderResourcePathLocator)) return false;
ClassLoaderResourcePathLocator that = (ClassLoaderResourcePathLocator) obj;
return this.classLoader.equals(that.classLoader)
&& Objects.equals(this.baseResource, that.baseResource);
}
}