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;
   }
}