package lombok.core; import com.discord.widgets.chat.input.autocomplete.AutocompleteViewModel; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import java.util.zip.ZipEntry; import lombok.Lombok; import lombok.patcher.ClassRootFinder; /* loaded from: com.discord-118108.apk:lombok/core/PublicApiCreatorApp.SCL.lombok */ public class PublicApiCreatorApp extends LombokApp { /* loaded from: com.discord-118108.apk:lombok/core/PublicApiCreatorApp$Fail.SCL.lombok */ private static class Fail extends Exception { Fail(String str) { super(str); } } @Override // lombok.core.LombokApp public String getAppName() { return "publicApi"; } @Override // lombok.core.LombokApp public String getAppDescription() { return "Creates a small lombok-api.jar with the annotations and other public API\nclasses of all lombok features. This is primarily useful to include in your\nandroid projects."; } @Override // lombok.core.LombokApp public int runApp(List list) throws Exception { String str = "."; switch (list.size()) { case 0: break; default: System.err.println("Supply 1 path to specify the directory where lombok-api.jar will be created. No path means the current directory is used."); return 1; case 1: str = list.get(0); break; } File file = new File(str, "lombok-api.jar"); try { return writeApiJar(file); } catch (Exception e) { System.err.println("ERROR: Creating " + canonical(file) + " failed: "); e.printStackTrace(); return 1; } } private static File findOurJar() { return new File(ClassRootFinder.findClassRootOfClass(PublicApiCreatorApp.class)); } /* JADX WARN: Finally extract failed */ private int writeApiJar(File file) throws Exception { File findOurJar = findOurJar(); if (findOurJar == null) { System.err.println("The publicApi option only works if lombok is a jar."); return 2; } ArrayList arrayList = new ArrayList(); JarFile jarFile = new JarFile(findOurJar); try { Enumeration entries = jarFile.entries(); while (entries.hasMoreElements()) { String name = entries.nextElement().getName(); if (name.startsWith("lombok/") && !name.endsWith("/package-info.class") && name.endsWith(".class")) { String substring = name.substring(7, name.length() - 6); int indexOf = substring.indexOf(47); if (indexOf != -1) { String substring2 = substring.substring(0, indexOf); if ("extern".equals(substring2) || "experimental".equals(substring2)) { arrayList.add(name); } } else if (!substring.startsWith("ConfigurationKeys")) { arrayList.add(name); } } } jarFile.close(); if (arrayList.isEmpty()) { System.out.println("Not generating lombok-api.jar: No lombok api classes required!"); return 1; } FileOutputStream fileOutputStream = new FileOutputStream(file); try { JarOutputStream jarOutputStream = new JarOutputStream(fileOutputStream); Iterator it = arrayList.iterator(); while (it.hasNext()) { String str = (String) it.next(); InputStream resourceAsStream = Lombok.class.getResourceAsStream(AutocompleteViewModel.COMMAND_DISCOVER_TOKEN + str); if (resourceAsStream == null) { throw new Fail(String.format("api class %s cannot be found", str)); } writeIntoJar(jarOutputStream, str, resourceAsStream); if (resourceAsStream != null) { resourceAsStream.close(); } } jarOutputStream.close(); fileOutputStream.close(); System.out.println("Successfully created: " + canonical(file)); return 0; } catch (Throwable th) { try { fileOutputStream.close(); } catch (Throwable unused) { } if (0 == 0) { file.delete(); } if (th instanceof Fail) { System.err.println(th.getMessage()); return 1; } else if (th instanceof Exception) { throw ((Exception) th); } else if (th instanceof Error) { throw ((Error) th); } else { throw new Exception(th); } } } catch (Throwable th2) { jarFile.close(); throw th2; } } private void writeIntoJar(JarOutputStream jarOutputStream, String str, InputStream inputStream) throws IOException { jarOutputStream.putNextEntry(new ZipEntry(str)); byte[] bArr = new byte[65536]; while (true) { int read = inputStream.read(bArr); if (read == -1) { jarOutputStream.closeEntry(); inputStream.close(); return; } jarOutputStream.write(bArr, 0, read); } } private static String canonical(File file) { try { return file.getCanonicalPath(); } catch (Exception unused) { return file.getAbsolutePath(); } } }