ManifestUtil class

Пакет: com.hypixel.hytale.common.util.java

Файл: com/hypixel/hytale/common/util/java/ManifestUtil.java

Поля (16)

МодификаторыТипИмя
final String VENDOR_ID_PROPERTY
break
ClassLoader var0
Manifest var0
Manifest var0
Manifest var0
String var0
Enumeration var1
String var1
Attributes var11
Manifest var2
var2
URL var3
Manifest var4
var4
String var6

Методы (2)

МодификаторыВозвратСигнатура
if if(var0 == null)
static boolean isJarboolean isJar()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.common.util.java;

class="kw">import com.hypixel.hytale.function.supplier.CachedSupplier;
class="kw">import com.hypixel.hytale.function.supplier.SupplierUtil;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import java.io.InputStream;
class="kw">import java.net.URL;
class="kw">import java.util.Enumeration;
class="kw">import java.util.Objects;
class="kw">import java.util.jar.Attributes;
class="kw">import java.util.jar.Manifest;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nullable;

class="kw">public class ManifestUtil {
   class="kw">public class="kw">static class="kw">final String VENDOR_ID_PROPERTY = "Implementation-Vendor-Id";
   class="kw">public class="kw">static class="kw">final String VERSION_PROPERTY = "Implementation-Version";
   class="kw">public class="kw">static class="kw">final String REVISION_ID_PROPERTY = "Implementation-Revision-Id";
   class="kw">public class="kw">static class="kw">final String PATCHLINE_PROPERTY = "Implementation-Patchline";
   class="kw">private class="kw">static class="kw">final CachedSupplier<Manifest> MANIFEST = SupplierUtil.cache(() -> {
      try {
         ClassLoader var0 = ManifestUtil.class.getClassLoader();
         Enumeration var1 = var0.getResources("META-INF/MANIFEST.MF");
         Manifest var2 = null;

         while (var1.hasMoreElements()) {
            URL var3 = var1.nextElement();

            Manifest var4;
            try (InputStream var5 = var3.openStream()) {
               var4 = new Manifest(var5);
            }

            Attributes var11 = var4.getMainAttributes();
            String var6 = var11.getValue("Implementation-Vendor-Id");
            if (var6 != null && var6.equals("com.hypixel.hytale")) {
               var2 = var4;
               break;
            }
         }

         class="kw">return var2;
      } catch (Throwable var10) {
         ((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.WARNING).withCause(var10)).log("Exception was thrown getting manifest!");
         class="kw">return null;
      }
   });
   class="kw">private class="kw">static class="kw">final CachedSupplier<String> IMPLEMENTATION_VERSION = SupplierUtil.cache(() -> {
      try {
         Manifest var0 = MANIFEST.get();
         class="kw">return var0 == null ? "NoJar" : Objects.requireNonNull(var0.getMainAttributes().getValue("Implementation-Version"), "Null implementation version!");
      } catch (Throwable var1) {
         ((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.WARNING).withCause(var1)).log("Exception was thrown getting implementation version!");
         class="kw">return "UNKNOWN";
      }
   });
   class="kw">private class="kw">static class="kw">final CachedSupplier<String> IMPLEMENTATION_REVISION_ID = SupplierUtil.cache(
      () -> {
         try {
            Manifest var0 = MANIFEST.get();
            class="kw">return var0 == null
               ? "NoJar"
               : Objects.requireNonNull(var0.getMainAttributes().getValue("Implementation-Revision-Id"), "Null implementation revision id!");
         } catch (Throwable var1) {
            ((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.WARNING).withCause(var1)).log("Exception was thrown getting implementation revision id!");
            class="kw">return "UNKNOWN";
         }
      }
   );
   class="kw">private class="kw">static class="kw">final CachedSupplier<String> IMPLEMENTATION_PATCHLINE = SupplierUtil.cache(() -> {
      try {
         Manifest var0 = MANIFEST.get();
         if (var0 == null) {
            class="kw">return "dev";
         }

         String var1 = var0.getMainAttributes().getValue("Implementation-Patchline");
         class="kw">return var1 != null && !var1.isEmpty() ? var1 : "dev";
      } catch (Throwable var2) {
         ((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.WARNING).withCause(var2)).log("Exception was thrown getting implementation patchline!");
         class="kw">return "dev";
      }
   });
   class="kw">private class="kw">static class="kw">final CachedSupplier<String> VERSION = SupplierUtil.cache(() -> {
      String var0 = IMPLEMENTATION_VERSION.get();
      class="kw">return "NoJar".equals(var0) ? null : var0;
   });

   class="kw">public ManifestUtil() {
   }

   class="kw">public class="kw">static boolean isJar() {
      class="kw">return MANIFEST.get() != null;
   }

   @Nullable
   class="kw">public class="kw">static Manifest getManifest() {
      class="kw">return MANIFEST.get();
   }

   @Nullable
   class="kw">public class="kw">static String getImplementationVersion() {
      class="kw">return IMPLEMENTATION_VERSION.get();
   }

   @Nullable
   class="kw">public class="kw">static String getVersion() {
      class="kw">return VERSION.get();
   }

   @Nullable
   class="kw">public class="kw">static String getImplementationRevisionId() {
      class="kw">return IMPLEMENTATION_REVISION_ID.get();
   }

   @Nullable
   class="kw">public class="kw">static String getPatchline() {
      class="kw">return IMPLEMENTATION_PATCHLINE.get();
   }
}