FileIO interface
Пакет: com.hypixel.hytale.procedurallib.file
Файл: com/hypixel/hytale/procedurallib/file/FileIO.java
Поля (19)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Strategy<Path> |
PATH_STRATEGY |
|
FileIOSystem |
var1 |
|
int |
var1 |
|
|
var1 |
|
Path |
var12 |
|
AssetPath |
var16 |
|
AssetPath |
var17 |
|
FileIOSystem |
var2 |
|
FileIOSystem |
var2 |
|
boolean |
var2 |
|
|
var2 |
|
Path |
var2 |
|
|
var2 |
|
AssetPath |
var3 |
|
FileIOSystem |
var3 |
|
Path |
var4 |
|
ObjectArrayList |
var5 |
|
ObjectOpenHashSet |
var6 |
|
ObjectOpenHashSet |
var7 |
Методы (17)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
Path |
appendPath append(Path var0, Path var1) |
static |
void |
closeFileIOSystemvoid closeFileIOSystem(@Nonnull FileIOSystem var0) |
|
public boolean |
equalspublic boolean equals(Path var1, Path var2) |
static |
boolean |
equalsboolean equals(@Nullable Path var0, @Nullable Path var1) |
static |
boolean |
existsboolean exists(@Nonnull AssetPath var0) |
static |
boolean |
existsboolean exists(@Nonnull Path var0, @Nonnull Path var1) |
|
|
for for(Path var15 : var13) |
abstract |
|
for for(int var3 = 0; var2 && var3 < var1.getNameCount() |
abstract |
|
for for(int var3 = 0; var3 < var1.getNameCount() |
abstract |
|
for for(int var2 = 0; var2 < var0.getNameCount() |
|
public int |
hashCodepublic int hashCode(Path var1) |
static |
int |
hashCodeint hashCode(@Nullable Path var0) |
|
|
if if(var17 != var16) |
|
|
if if(var0 == null) |
static |
Path |
relativizePath relativize(Path var0, Path var1) |
static |
void |
setDefaultRootvoid setDefaultRoot(@Nonnull Path var0) |
static |
boolean |
startsWithboolean startsWith(Path var0, Path var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.procedurallib.file;
class="kw">import it.unimi.dsi.fastutil.Hash.Strategy;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
class="kw">import java.io.IOException;
class="kw">import java.nio.file.DirectoryStream;
class="kw">import java.nio.file.Files;
class="kw">import java.nio.file.Path;
class="kw">import java.util.List;
class="kw">import java.util.function.Predicate;
class="kw">import java.util.function.UnaryOperator;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">interface FileIO {
Strategy<Path> PATH_STRATEGY = new Strategy<Path>() {
class="kw">public int hashCode(Path var1) {
class="kw">return FileIO.hashCode(var1);
}
class="kw">public boolean equals(Path var1, Path var2) {
class="kw">return FileIO.equals(var1, var2);
}
};
class="kw">static void setDefaultRoot(@Nonnull Path var0) {
FileIOSystem.Provider.setRoot(var0);
}
@Nonnull
class="kw">static <FS class="kw">extends FileIOSystem> FS openFileIOSystem(@Nonnull FS var0) {
FileIOSystem.Provider.set(var0);
class="kw">return var0;
}
class="kw">static void closeFileIOSystem(@Nonnull FileIOSystem var0) {
FileIOSystem.Provider.unset();
}
class="kw">static boolean exists(@Nonnull AssetPath var0) {
class="kw">return Files.exists(var0.filepath());
}
class="kw">static boolean exists(@Nonnull Path var0, @Nonnull Path var1) {
class="kw">return Files.exists(append(var0, var1));
}
@Nonnull
class="kw">static AssetPath resolve(@Nonnull Path var0) {
FileIOSystem var1 = FileIOSystem.Provider.get();
class="kw">return var1.resolve(var0);
}
@Nonnull
class="kw">static <T> T load(@Nonnull AssetPath var0, @Nonnull AssetLoader<T> var1) class="kw">throws IOException {
FileIOSystem var2 = FileIOSystem.Provider.get();
class="kw">return var2.load(var0, var1);
}
@Nonnull
class="kw">static <T> T load(@Nonnull Path var0, @Nonnull AssetLoader<T> var1) class="kw">throws IOException {
FileIOSystem var2 = FileIOSystem.Provider.get();
AssetPath var3 = var2.resolve(var0);
class="kw">return var2.load(var3, var1);
}
@Nonnull
class="kw">static List<AssetPath> list(@Nonnull Path var0, @Nonnull Predicate<AssetPath> var1, @Nonnull UnaryOperator<AssetPath> var2) class="kw">throws IOException {
FileIOSystem var3 = FileIOSystem.Provider.get();
Path var4 = relativize(var0, var3.baseRoot());
ObjectArrayList var5 = new ObjectArrayList();
ObjectOpenHashSet var6 = new ObjectOpenHashSet();
ObjectOpenHashSet var7 = new ObjectOpenHashSet();
for (Path var11 : var3.roots().paths) {
Path var12 = append(var11, var4);
if (Files.exists(var12) && Files.isDirectory(var12)) {
try (DirectoryStream var13 = Files.newDirectoryStream(var12)) {
var6.addAll(var7);
var7.clear();
for (Path var15 : var13) {
AssetPath var16 = AssetPath.fromAbsolute(var11, var15);
AssetPath var17 = var2.apply(var16);
if (var17 != var16) {
var7.add(var17);
} else if (var1.test(var16) && var6.add(var16)) {
var5.add(var16);
}
}
}
}
}
class="kw">return var5;
}
class="kw">static boolean startsWith(Path var0, Path var1) {
if (var1.getNameCount() > var0.getNameCount()) {
class="kw">return false;
}
boolean var2 = true;
for (int var3 = 0; var2 && var3 < var1.getNameCount(); var3++) {
var2 = var0.getName(var3).toString().equals(var1.getName(var3).toString());
}
class="kw">return var2;
}
class="kw">static Path relativize(Path var0, Path var1) {
if (var0.getNameCount() < var1.getNameCount()) {
class="kw">return var0;
} else {
class="kw">return !startsWith(var0, var1) ? var0 : var0.subpath(var1.getNameCount(), var0.getNameCount());
}
}
class="kw">static Path append(Path var0, Path var1) {
if (var1.getFileSystem() == var0.getFileSystem()) {
class="kw">return var0.resolve(var1);
}
Path var2 = var0;
for (int var3 = 0; var3 < var1.getNameCount(); var3++) {
var2 = var2.resolve(var1.getName(var3).toString());
}
class="kw">return var2;
}
class="kw">static boolean equals(@Nullable Path var0, @Nullable Path var1) {
class="kw">return var0 == var1 || var0 != null && var1 != null && var0.getNameCount() == var1.getNameCount() && startsWith(var0, var1);
}
class="kw">static int hashCode(@Nullable Path var0) {
if (var0 == null) {
class="kw">return 0;
}
int var1 = 1;
for (int var2 = 0; var2 < var0.getNameCount(); var2++) {
var1 = var1 * 31 + var0.getName(var2).toString().hashCode();
}
class="kw">return var1;
}
}