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