discord-jadx/app/src/main/java/lombok/javac/handlers/HandleSuperBuilder.java

1100 lines
71 KiB
Java

package lombok.javac.handlers;
import com.discord.api.permission.Permission;
import com.sun.source.tree.Tree;
import com.sun.tools.javac.code.BoundKind;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.List;
import com.sun.tools.javac.util.ListBuffer;
import com.sun.tools.javac.util.Name;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.ConfigurationKeys;
import lombok.Singular;
import lombok.Value;
import lombok.core.AST;
import lombok.core.AnnotationValues;
import lombok.core.HandlerPriority;
import lombok.core.configuration.CheckerFrameworkVersion;
import lombok.core.handlers.HandlerUtil;
import lombok.experimental.NonFinal;
import lombok.experimental.SuperBuilder;
import lombok.javac.Javac;
import lombok.javac.JavacAnnotationHandler;
import lombok.javac.JavacNode;
import lombok.javac.JavacTreeMaker;
import lombok.javac.handlers.HandleBuilder;
import lombok.javac.handlers.JavacHandlerUtil;
import lombok.javac.handlers.JavacSingularsRecipes;
@HandlerPriority(-1024)
/* loaded from: com.discord-119010.apk:lombok/javac/handlers/HandleSuperBuilder.SCL.lombok */
public class HandleSuperBuilder extends JavacAnnotationHandler<SuperBuilder> {
private static final String SELF_METHOD = "self";
private static final String FILL_VALUES_METHOD_NAME = "$fillValuesFrom";
private static final String STATIC_FILL_VALUES_METHOD_NAME = "$fillValuesFromInstanceIntoBuilder";
private static final String INSTANCE_VARIABLE_NAME = "instance";
private static final String BUILDER_VARIABLE_NAME = "b";
private static /* synthetic */ int[] $SWITCH_TABLE$lombok$javac$handlers$JavacHandlerUtil$MemberExistsResult;
/* renamed from: lombok.javac.handlers.HandleSuperBuilder$1 reason: invalid class name */
/* loaded from: com.discord-119010.apk:lombok/javac/handlers/HandleSuperBuilder$1.SCL.lombok */
class AnonymousClass1 implements JavacSingularsRecipes.ExpressionMaker {
private final /* synthetic */ JavacTreeMaker val$maker;
private final /* synthetic */ SuperBuilderJob val$job;
private final /* synthetic */ String val$builderGenericName;
AnonymousClass1(JavacTreeMaker javacTreeMaker, SuperBuilderJob superBuilderJob, String str) {
this.val$maker = javacTreeMaker;
this.val$job = superBuilderJob;
this.val$builderGenericName = str;
}
@Override // lombok.javac.handlers.JavacSingularsRecipes.ExpressionMaker
public JCTree.JCExpression make() {
return this.val$maker.Ident(this.val$job.toName(this.val$builderGenericName));
}
}
/* renamed from: lombok.javac.handlers.HandleSuperBuilder$2 reason: invalid class name */
/* loaded from: com.discord-119010.apk:lombok/javac/handlers/HandleSuperBuilder$2.SCL.lombok */
class AnonymousClass2 implements JavacSingularsRecipes.StatementMaker {
private final /* synthetic */ JavacTreeMaker val$maker;
private final /* synthetic */ SuperBuilderJob val$job;
AnonymousClass2(JavacTreeMaker javacTreeMaker, SuperBuilderJob superBuilderJob) {
this.val$maker = javacTreeMaker;
this.val$job = superBuilderJob;
}
@Override // lombok.javac.handlers.JavacSingularsRecipes.StatementMaker
public JCTree.JCStatement make() {
return this.val$maker.Return(this.val$maker.Apply(List.nil(), this.val$maker.Ident(this.val$job.toName(HandleSuperBuilder.SELF_METHOD)), List.nil()));
}
}
/* loaded from: com.discord-119010.apk:lombok/javac/handlers/HandleSuperBuilder$SuperBuilderJob.SCL.lombok */
class SuperBuilderJob extends HandleBuilder.BuilderJob {
JavacNode builderAbstractType;
String builderAbstractClassName;
JavacNode builderImplType;
String builderImplClassName;
List<JCTree.JCTypeParameter> builderTypeParams_;
SuperBuilderJob() {
}
void init(AnnotationValues<SuperBuilder> annotationValues, SuperBuilder superBuilder, JavacNode javacNode) {
AccessLevel accessLevel = AccessLevel.PUBLIC;
this.accessInners = accessLevel;
this.accessOuters = accessLevel;
this.oldFluent = true;
this.oldChain = true;
this.builderMethodName = superBuilder.builderMethodName();
this.buildMethodName = superBuilder.buildMethodName();
this.toBuilder = superBuilder.toBuilder();
if (this.builderMethodName == null) {
this.builderMethodName = "builder";
}
if (this.buildMethodName == null) {
this.buildMethodName = "build";
}
this.builderClassName = fixBuilderClassName(javacNode, "");
}
void setBuilderToImpl() {
this.builderType = this.builderImplType;
this.builderClassName = this.builderImplClassName;
this.builderTypeParams = this.typeParams;
}
void setBuilderToAbstract() {
this.builderType = this.builderAbstractType;
this.builderClassName = this.builderAbstractClassName;
this.builderTypeParams = this.builderTypeParams_;
}
}
/* JADX WARN: Code restructure failed: missing block: B:100:0x0547, code lost:
if (r0.builderAbstractType != null) goto L_0x0574;
*/
/* JADX WARN: Code restructure failed: missing block: B:101:0x054a, code lost:
r0.builderAbstractType = generateBuilderAbstractClass(r0, r28, r17, r0, r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0.builderAbstractType.get(), r10, r11.getContext());
*/
/* JADX WARN: Code restructure failed: missing block: B:102:0x0574, code lost:
r0 = r0.builderAbstractType.get();
*/
/* JADX WARN: Code restructure failed: missing block: B:103:0x0591, code lost:
if (r0.getModifiers().getFlags().contains(javax.lang.model.element.Modifier.STATIC) == false) goto L_0x05a7;
*/
/* JADX WARN: Code restructure failed: missing block: B:105:0x05a4, code lost:
if (r0.getModifiers().getFlags().contains(javax.lang.model.element.Modifier.ABSTRACT) != false) goto L_0x05af;
*/
/* JADX WARN: Code restructure failed: missing block: B:106:0x05a7, code lost:
r11.addError("Existing Builder must be an abstract static inner class.");
*/
/* JADX WARN: Code restructure failed: missing block: B:107:0x05ae, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:108:0x05af, code lost:
lombok.javac.handlers.JavacHandlerUtil.sanityCheckForMethodGeneratingAnnotationsOnBuilderClass(r0.builderAbstractType, r11);
r0 = r0.builderFields.iterator();
*/
/* JADX WARN: Code restructure failed: missing block: B:109:0x05c7, code lost:
r0 = r0.next();
r0 = r0.singularData;
*/
/* JADX WARN: Code restructure failed: missing block: B:110:0x05dc, code lost:
if (r0 != null) goto L_0x05e2;
*/
/* JADX WARN: Code restructure failed: missing block: B:111:0x05e2, code lost:
r0 = r0.getSingularizer();
*/
/* JADX WARN: Code restructure failed: missing block: B:112:0x05eb, code lost:
if (r0 != null) goto L_0x05f1;
*/
/* JADX WARN: Code restructure failed: missing block: B:114:0x05fd, code lost:
if (r0.checkForAlreadyExistingNodesAndGenerateError(r0.builderType, r0) == false) goto L_0x0606;
*/
/* JADX WARN: Code restructure failed: missing block: B:115:0x0600, code lost:
r0.singularData = null;
*/
/* JADX WARN: Code restructure failed: missing block: B:117:0x060d, code lost:
if (r0.hasNext() != false) goto L_0x05c7;
*/
/* JADX WARN: Code restructure failed: missing block: B:118:0x0610, code lost:
r0.setBuilderToAbstract();
generateBuilderFields(r0.builderType, r0.builderFields, r10);
*/
/* JADX WARN: Code restructure failed: missing block: B:119:0x0626, code lost:
if (r18 == false) goto L_0x065f;
*/
/* JADX WARN: Code restructure failed: missing block: B:120:0x0629, code lost:
r0 = r0.VarDef(r0.Modifiers(2), r0.toName("$lombokUnclean"), r0.TypeIdent(lombok.javac.Javac.CTC_BOOLEAN), null);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectFieldAndMarkGenerated(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:122:0x0664, code lost:
if (r0.toBuilder == false) goto L_0x06b6;
*/
/* JADX WARN: Code restructure failed: missing block: B:124:0x066c, code lost:
if (r28 == null) goto L_0x0673;
*/
/* JADX WARN: Code restructure failed: missing block: B:125:0x066f, code lost:
r2 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:126:0x0673, code lost:
r2 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:127:0x0674, code lost:
r0 = generateFillValuesMethod(r0, r2, r0, r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
r0 = generateStaticFillValuesMethod(r0, r0.setterPrefix());
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:129:0x06bb, code lost:
if (r28 == null) goto L_0x06c2;
*/
/* JADX WARN: Code restructure failed: missing block: B:130:0x06be, code lost:
r2 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:131:0x06c2, code lost:
r2 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:132:0x06c3, code lost:
r0 = generateAbstractSelfMethod(r0, r2, r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:133:0x06e4, code lost:
if (r28 == null) goto L_0x06eb;
*/
/* JADX WARN: Code restructure failed: missing block: B:134:0x06e7, code lost:
r2 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:135:0x06eb, code lost:
r2 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:136:0x06ec, code lost:
r0 = generateAbstractBuildMethod(r0, r2, r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
r0 = r0.builderFields.iterator();
*/
/* JADX WARN: Code restructure failed: missing block: B:137:0x0717, code lost:
generateSetterMethodsForBuilder(r0, r0.next(), r0, r0.setterPrefix());
*/
/* JADX WARN: Code restructure failed: missing block: B:139:0x073b, code lost:
if (r0.hasNext() != false) goto L_0x0717;
*/
/* JADX WARN: Code restructure failed: missing block: B:140:0x073e, code lost:
r0 = new java.util.ArrayList();
r0 = r0.builderFields.iterator();
*/
/* JADX WARN: Code restructure failed: missing block: B:141:0x0756, code lost:
r0 = r0.next().createdFields.iterator();
*/
/* JADX WARN: Code restructure failed: missing block: B:142:0x0771, code lost:
r0.add(new lombok.core.handlers.InclusionExclusionUtils.Included(r0.next(), null, true, false));
*/
/* JADX WARN: Code restructure failed: missing block: B:144:0x0798, code lost:
if (r0.hasNext() != false) goto L_0x0771;
*/
/* JADX WARN: Code restructure failed: missing block: B:146:0x07a2, code lost:
if (r0.hasNext() != false) goto L_0x0756;
*/
/* JADX WARN: Code restructure failed: missing block: B:147:0x07a5, code lost:
r0 = r0.builderType;
*/
/* JADX WARN: Code restructure failed: missing block: B:148:0x07af, code lost:
if (r28 == null) goto L_0x07b6;
*/
/* JADX WARN: Code restructure failed: missing block: B:149:0x07b2, code lost:
r3 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:150:0x07b6, code lost:
r3 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:151:0x07b7, code lost:
r0 = lombok.javac.handlers.HandleToString.createToString(r0, r0, true, r3, lombok.core.handlers.HandlerUtil.FieldAccess.ALWAYS_FIELD, r10);
*/
/* JADX WARN: Code restructure failed: missing block: B:152:0x07c2, code lost:
if (r0 == null) goto L_0x07cf;
*/
/* JADX WARN: Code restructure failed: missing block: B:153:0x07c5, code lost:
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:155:0x07d1, code lost:
if (r18 == false) goto L_0x07fa;
*/
/* JADX WARN: Code restructure failed: missing block: B:156:0x07d4, code lost:
r0 = generateCleanMethod(r0.builderFields, r0.builderType, r10);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:158:0x0808, code lost:
if ((r0.mods.flags & com.discord.api.permission.Permission.VIEW_CHANNEL) == 0) goto L_0x080f;
*/
/* JADX WARN: Code restructure failed: missing block: B:159:0x080b, code lost:
r0 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:160:0x080f, code lost:
r0 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:162:0x0814, code lost:
if (r0 != false) goto L_0x090e;
*/
/* JADX WARN: Code restructure failed: missing block: B:163:0x0817, code lost:
r0.builderImplType = findInnerClass(r0, r0.builderImplClassName);
*/
/* JADX WARN: Code restructure failed: missing block: B:164:0x082c, code lost:
if (r0.builderImplType != null) goto L_0x0851;
*/
/* JADX WARN: Code restructure failed: missing block: B:165:0x082f, code lost:
r0.builderImplType = generateBuilderImplClass(r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0.builderImplType.get(), r10, r11.getContext());
*/
/* JADX WARN: Code restructure failed: missing block: B:166:0x0851, code lost:
r0 = r0.builderImplType.get();
*/
/* JADX WARN: Code restructure failed: missing block: B:167:0x086e, code lost:
if (r0.getModifiers().getFlags().contains(javax.lang.model.element.Modifier.STATIC) == false) goto L_0x0884;
*/
/* JADX WARN: Code restructure failed: missing block: B:169:0x0881, code lost:
if (r0.getModifiers().getFlags().contains(javax.lang.model.element.Modifier.ABSTRACT) == false) goto L_0x088c;
*/
/* JADX WARN: Code restructure failed: missing block: B:170:0x0884, code lost:
r11.addError("Existing BuilderImpl must be a non-abstract static inner class.");
*/
/* JADX WARN: Code restructure failed: missing block: B:171:0x088b, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:172:0x088c, code lost:
lombok.javac.handlers.JavacHandlerUtil.sanityCheckForMethodGeneratingAnnotationsOnBuilderClass(r0.builderImplType, r11);
*/
/* JADX WARN: Code restructure failed: missing block: B:173:0x0895, code lost:
r0 = lombok.javac.handlers.HandleConstructor.createConstructor(lombok.AccessLevel.PRIVATE, com.sun.tools.javac.util.List.nil(), r0.builderImplType, com.sun.tools.javac.util.List.nil(), false, r11);
*/
/* JADX WARN: Code restructure failed: missing block: B:174:0x08ac, code lost:
if (r0 == null) goto L_0x08b9;
*/
/* JADX WARN: Code restructure failed: missing block: B:175:0x08af, code lost:
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderImplType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:176:0x08b9, code lost:
r0.setBuilderToImpl();
r0 = generateSelfMethod(r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:177:0x08ec, code lost:
if (lombok.javac.handlers.JavacHandlerUtil.methodExists(r0.buildMethodName, r0.builderType, -1) != lombok.javac.handlers.JavacHandlerUtil.MemberExistsResult.NOT_EXISTS) goto L_0x090e;
*/
/* JADX WARN: Code restructure failed: missing block: B:178:0x08ef, code lost:
r0 = generateBuildMethod(r0, r0);
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.builderType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:180:0x091c, code lost:
if (constructorExists(r0.parentType, r0.builderAbstractClassName) != false) goto L_0x0934;
*/
/* JADX WARN: Code restructure failed: missing block: B:181:0x091f, code lost:
r0.setBuilderToAbstract();
*/
/* JADX WARN: Code restructure failed: missing block: B:182:0x0929, code lost:
if (r28 == null) goto L_0x0930;
*/
/* JADX WARN: Code restructure failed: missing block: B:183:0x092c, code lost:
r2 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:184:0x0930, code lost:
r2 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:185:0x0931, code lost:
generateBuilderBasedConstructor(r0, r2);
*/
/* JADX WARN: Code restructure failed: missing block: B:187:0x0936, code lost:
if (r0 != false) goto L_0x09d5;
*/
/* JADX WARN: Code restructure failed: missing block: B:189:0x093b, code lost:
if (r14 == false) goto L_0x0955;
*/
/* JADX WARN: Code restructure failed: missing block: B:191:0x094f, code lost:
if (lombok.javac.handlers.JavacHandlerUtil.methodExists(r0.builderMethodName, r0.parentType, -1) == lombok.javac.handlers.JavacHandlerUtil.MemberExistsResult.NOT_EXISTS) goto L_0x0955;
*/
/* JADX WARN: Code restructure failed: missing block: B:192:0x0952, code lost:
r14 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:194:0x0957, code lost:
if (r14 == false) goto L_0x097c;
*/
/* JADX WARN: Code restructure failed: missing block: B:195:0x095a, code lost:
r0 = generateBuilderMethod(r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:196:0x0964, code lost:
if (r0 == null) goto L_0x097c;
*/
/* JADX WARN: Code restructure failed: missing block: B:197:0x0967, code lost:
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.parentType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:199:0x0981, code lost:
if (r0.toBuilder == false) goto L_0x09d5;
*/
/* JADX WARN: Code restructure failed: missing block: B:201:0x0997, code lost:
switch($SWITCH_TABLE$lombok$javac$handlers$JavacHandlerUtil$MemberExistsResult()[lombok.javac.handlers.JavacHandlerUtil.methodExists("toBuilder", r0.parentType, 0).ordinal()]) {
case 1: goto L_0x09b3;
case 2: goto L_0x09d5;
case 3: goto L_0x09b0;
default: goto L_0x09d5;
};
*/
/* JADX WARN: Code restructure failed: missing block: B:202:0x09b3, code lost:
r0 = generateToBuilderMethod(r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:203:0x09bd, code lost:
if (r0 == null) goto L_0x09d5;
*/
/* JADX WARN: Code restructure failed: missing block: B:204:0x09c0, code lost:
lombok.javac.handlers.JavacHandlerUtil.recursiveSetGeneratedBy(r0, r10, r11.getContext());
lombok.javac.handlers.JavacHandlerUtil.injectMethod(r0.parentType, r0);
*/
/* JADX WARN: Code restructure failed: missing block: B:206:0x09d7, code lost:
if (r21 == null) goto L_0x0a07;
*/
/* JADX WARN: Code restructure failed: missing block: B:208:0x09dc, code lost:
if (r14 == false) goto L_?;
*/
/* JADX WARN: Code restructure failed: missing block: B:209:0x09df, code lost:
r0 = r21.iterator();
*/
/* JADX WARN: Code restructure failed: missing block: B:210:0x09e9, code lost:
((lombok.javac.JavacNode) r0.next()).addWarning("@SuperBuilder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.");
*/
/* JADX WARN: Code restructure failed: missing block: B:212:0x0a04, code lost:
if (r0.hasNext() != false) goto L_0x09e9;
*/
/* JADX WARN: Code restructure failed: missing block: B:213:0x0a07, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:244:?, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:245:?, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:99:0x0500, code lost:
r2 = r0.replaceBuilderClassName(r0.name);
r0.builderClassName = r2;
r0.builderAbstractClassName = r2;
r0.builderImplClassName = java.lang.String.valueOf(r0.builderAbstractClassName) + "Impl";
r0.builderAbstractType = findInnerClass(r0, r0.builderClassName);
*/
@Override // lombok.javac.JavacAnnotationHandler
/*
Code decompiled incorrectly, please refer to instructions dump.
*/
public void handle(AnnotationValues<SuperBuilder> annotationValues, JCTree.JCAnnotation jCAnnotation, JavacNode javacNode) {
boolean z2;
HandlerUtil.handleExperimentalFlagUsage(javacNode, ConfigurationKeys.SUPERBUILDER_FLAG_USAGE, "@SuperBuilder");
SuperBuilderJob superBuilderJob = new SuperBuilderJob();
superBuilderJob.sourceNode = javacNode;
superBuilderJob.source = jCAnnotation;
superBuilderJob.checkerFramework = JavacHandlerUtil.getCheckerFrameworkVersion(javacNode);
superBuilderJob.isStatic = true;
SuperBuilder instance = annotationValues.getInstance();
superBuilderJob.init(annotationValues, instance, javacNode);
if (superBuilderJob.builderMethodName.isEmpty()) {
z2 = false;
} else if (HandlerUtil.checkName("builderMethodName", superBuilderJob.builderMethodName, javacNode)) {
z2 = true;
} else {
return;
}
if (HandlerUtil.checkName("buildMethodName", superBuilderJob.buildMethodName, javacNode)) {
JavacNode up = javacNode.up();
superBuilderJob.builderFields = new ArrayList();
superBuilderJob.typeParams = List.nil();
List<JCTree.JCExpression> nil = List.nil();
List<JCTree.JCExpression> nil2 = List.nil();
boolean z3 = false;
if (up.get() instanceof JCTree.JCClassDecl) {
superBuilderJob.parentType = up;
JCTree.JCClassDecl jCClassDecl = (JCTree.JCClassDecl) up.get();
ListBuffer listBuffer = new ListBuffer();
ArrayList arrayList = null;
boolean z4 = JavacHandlerUtil.hasAnnotation(Value.class, up) || JavacHandlerUtil.hasAnnotation("lombok.experimental.Value", up);
Iterator it = HandleConstructor.findAllFields(up, true).iterator();
while (it.hasNext()) {
JavacNode javacNode2 = (JavacNode) it.next();
JCTree.JCVariableDecl jCVariableDecl = javacNode2.get();
JavacNode findAnnotation = JavacHandlerUtil.findAnnotation(Builder.Default.class, javacNode2, true);
boolean z5 = (jCVariableDecl.mods.flags & 16) != 0 || (z4 && !JavacHandlerUtil.hasAnnotation(NonFinal.class, javacNode2));
HandleBuilder.BuilderFieldData builderFieldData = new HandleBuilder.BuilderFieldData();
builderFieldData.rawName = jCVariableDecl.name;
builderFieldData.name = JavacHandlerUtil.removePrefixFromField(javacNode2);
builderFieldData.builderFieldName = builderFieldData.name;
builderFieldData.annotations = JavacHandlerUtil.findCopyableAnnotations(javacNode2);
builderFieldData.type = jCVariableDecl.vartype;
builderFieldData.singularData = getSingularData(javacNode2, instance.setterPrefix());
builderFieldData.originalFieldNode = javacNode2;
if (!(builderFieldData.singularData == null || findAnnotation == null)) {
findAnnotation.addError("@Builder.Default and @Singular cannot be mixed.");
findAnnotation = null;
}
if (jCVariableDecl.init == null && findAnnotation != null) {
findAnnotation.addWarning("@Builder.Default requires an initializing expression (' = something;').");
findAnnotation = null;
}
if (jCVariableDecl.init != null && findAnnotation == null) {
if (!z5) {
if (arrayList == null) {
arrayList = new ArrayList();
}
arrayList.add(javacNode2);
}
}
if (findAnnotation != null) {
builderFieldData.nameOfDefaultProvider = up.toName("$default$" + builderFieldData.name);
builderFieldData.nameOfSetFlag = up.toName(builderFieldData.name + "$set");
builderFieldData.builderFieldName = up.toName(builderFieldData.name + "$value");
JCTree.JCMethodDecl generateDefaultProvider = HandleBuilder.generateDefaultProvider(builderFieldData.nameOfDefaultProvider, javacNode2, jCClassDecl.typarams);
JavacHandlerUtil.recursiveSetGeneratedBy(generateDefaultProvider, jCAnnotation, javacNode.getContext());
if (generateDefaultProvider != null) {
JavacHandlerUtil.injectMethod(up, generateDefaultProvider);
}
}
addObtainVia(builderFieldData, javacNode2);
superBuilderJob.builderFields.add(builderFieldData);
listBuffer.append(javacNode2);
}
List<JCTree.JCTypeParameter> list = jCClassDecl.typarams;
superBuilderJob.builderTypeParams = list;
superBuilderJob.typeParams = list;
superBuilderJob.builderClassName = superBuilderJob.replaceBuilderClassName(jCClassDecl.name);
if (HandlerUtil.checkName("builderClassName", superBuilderJob.builderClassName, javacNode)) {
HashSet<String> gatherUsedTypeNames = gatherUsedTypeNames(superBuilderJob.typeParams, jCClassDecl);
String generateNonclashingNameFor = generateNonclashingNameFor("C", gatherUsedTypeNames);
String generateNonclashingNameFor2 = generateNonclashingNameFor("B", gatherUsedTypeNames);
JavacTreeMaker treeMaker = javacNode.getTreeMaker();
JCTree.JCTypeParameter TypeParameter = treeMaker.TypeParameter(up.toName(generateNonclashingNameFor), List.of(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, up, superBuilderJob.typeParams)));
ListBuffer<JCTree.JCExpression> typeParamExpressions = getTypeParamExpressions(superBuilderJob.typeParams, treeMaker, superBuilderJob.sourceNode.getContext());
typeParamExpressions.add(treeMaker.Ident(up.toName(generateNonclashingNameFor)));
typeParamExpressions.add(treeMaker.Ident(up.toName(generateNonclashingNameFor2)));
JCTree.JCTypeParameter TypeParameter2 = treeMaker.TypeParameter(up.toName(generateNonclashingNameFor2), List.of(treeMaker.TypeApply(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, up, superBuilderJob.getBuilderClassName(), false, List.nil()), typeParamExpressions.toList())));
if (superBuilderJob.typeParams == null || superBuilderJob.typeParams.isEmpty()) {
superBuilderJob.builderTypeParams_ = List.of(TypeParameter, TypeParameter2);
} else {
superBuilderJob.builderTypeParams_ = superBuilderJob.typeParams.append(TypeParameter).append(TypeParameter2);
}
JCTree extendsClause = Javac.getExtendsClause(jCClassDecl);
JCTree.JCFieldAccess jCFieldAccess = null;
if (extendsClause instanceof JCTree.JCTypeApply) {
nil2 = ((JCTree.JCTypeApply) extendsClause).getTypeArguments();
extendsClause = ((JCTree.JCTypeApply) extendsClause).getType();
}
if (extendsClause instanceof JCTree.JCFieldAccess) {
jCFieldAccess = up.getTreeMaker().Select((JCTree.JCFieldAccess) extendsClause, up.toName(String.valueOf(((JCTree.JCFieldAccess) extendsClause).getIdentifier().toString()) + "Builder"));
} else if (extendsClause != null) {
jCFieldAccess = JavacHandlerUtil.chainDots(up, extendsClause.toString(), String.valueOf(extendsClause.toString()) + "Builder", new String[0]);
}
Iterator<HandleBuilder.BuilderFieldData> it2 = superBuilderJob.builderFields.iterator();
while (true) {
if (it2.hasNext()) {
HandleBuilder.BuilderFieldData next = it2.next();
if (next.singularData != null && next.singularData.getSingularizer() != null && next.singularData.getSingularizer().requiresCleaning()) {
z3 = true;
break;
} else if (next.obtainVia != null) {
if (next.obtainVia.field().isEmpty() == next.obtainVia.method().isEmpty()) {
next.obtainViaNode.addError("The syntax is either @ObtainVia(field = \"fieldName\") or @ObtainVia(method = \"methodName\").");
return;
} else if (next.obtainVia.method().isEmpty() && next.obtainVia.isStatic()) {
next.obtainViaNode.addError("@ObtainVia(isStatic = true) is not valid unless 'method' has been set.");
return;
}
}
} else {
break;
}
}
}
} else {
javacNode.addError("@SuperBuilder is only supported on types.");
}
}
}
private JavacNode generateBuilderAbstractClass(SuperBuilderJob superBuilderJob, JCTree.JCExpression jCExpression, List<JCTree.JCExpression> list, String str, String str2) {
JavacTreeMaker treeMaker = superBuilderJob.parentType.getTreeMaker();
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(1033L);
ListBuffer listBuffer = new ListBuffer();
listBuffer.addAll(JavacHandlerUtil.copyTypeParams(superBuilderJob.sourceNode, superBuilderJob.typeParams));
listBuffer.add(treeMaker.TypeParameter(superBuilderJob.toName(str), List.of(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.typeParams))));
Name name = superBuilderJob.toName(superBuilderJob.builderClassName);
ListBuffer<JCTree.JCExpression> typeParamExpressions = getTypeParamExpressions(superBuilderJob.typeParams, treeMaker, superBuilderJob.sourceNode.getContext());
typeParamExpressions.add(treeMaker.Ident(superBuilderJob.toName(str)));
typeParamExpressions.add(treeMaker.Ident(superBuilderJob.toName(str2)));
listBuffer.add(treeMaker.TypeParameter(superBuilderJob.toName(str2), List.of(treeMaker.TypeApply(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, name, false, List.nil()), typeParamExpressions.toList()))));
JCTree.JCTypeApply jCTypeApply = null;
if (jCExpression != null) {
ListBuffer<JCTree.JCExpression> typeParamExpressions2 = getTypeParamExpressions(list, treeMaker, superBuilderJob.sourceNode.getContext());
typeParamExpressions2.add(treeMaker.Ident(superBuilderJob.toName(str)));
typeParamExpressions2.add(treeMaker.Ident(superBuilderJob.toName(str2)));
jCTypeApply = treeMaker.TypeApply(jCExpression, typeParamExpressions2.toList());
}
return JavacHandlerUtil.injectType(superBuilderJob.parentType, treeMaker.ClassDef(Modifiers, name, listBuffer.toList(), jCTypeApply, List.nil(), List.nil()));
}
private JavacNode generateBuilderImplClass(SuperBuilderJob superBuilderJob) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(26L);
JCTree.JCExpression namePlusTypeParamsToTypeReference = JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.toName(superBuilderJob.builderAbstractClassName), false, List.nil());
new ListBuffer().addAll(JavacHandlerUtil.copyTypeParams(superBuilderJob.sourceNode, superBuilderJob.typeParams));
JCTree.JCExpression namePlusTypeParamsToTypeReference2 = JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.typeParams);
JCTree.JCExpression namePlusTypeParamsToTypeReference3 = JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.toName(superBuilderJob.builderImplClassName), false, superBuilderJob.typeParams);
ListBuffer<JCTree.JCExpression> typeParamExpressions = getTypeParamExpressions(superBuilderJob.typeParams, treeMaker, superBuilderJob.getContext());
typeParamExpressions.add(namePlusTypeParamsToTypeReference2);
typeParamExpressions.add(namePlusTypeParamsToTypeReference3);
return JavacHandlerUtil.injectType(superBuilderJob.parentType, treeMaker.ClassDef(Modifiers, superBuilderJob.toName(superBuilderJob.builderImplClassName), JavacHandlerUtil.copyTypeParams(superBuilderJob.parentType, superBuilderJob.typeParams), treeMaker.TypeApply(namePlusTypeParamsToTypeReference, typeParamExpressions.toList()), List.nil(), List.nil()));
}
private void generateBuilderBasedConstructor(SuperBuilderJob superBuilderJob, boolean z2) {
JCTree.JCIdent jCIdent;
JCTree.JCStatement generateNullCheck;
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
AccessLevel accessLevel = AccessLevel.PROTECTED;
ListBuffer<JCTree.JCStatement> listBuffer = new ListBuffer<>();
Name name = superBuilderJob.toName(BUILDER_VARIABLE_NAME);
Iterator<HandleBuilder.BuilderFieldData> it = superBuilderJob.builderFields.iterator();
while (it.hasNext()) {
HandleBuilder.BuilderFieldData next = it.next();
if (next.singularData == null || next.singularData.getSingularizer() == null) {
jCIdent = treeMaker.Select(treeMaker.Ident(name), next.builderFieldName);
} else {
next.singularData.getSingularizer().appendBuildCode(next.singularData, next.originalFieldNode, next.type, listBuffer, next.builderFieldName, BUILDER_VARIABLE_NAME);
jCIdent = treeMaker.Ident(next.singularData.getPluralName());
}
JCTree.JCExpressionStatement Exec = treeMaker.Exec(treeMaker.Assign(treeMaker.Select(treeMaker.Ident(superBuilderJob.toName("this")), next.rawName), jCIdent));
if (next.nameOfSetFlag != null) {
listBuffer.append(treeMaker.If(treeMaker.Select(treeMaker.Ident(name), next.nameOfSetFlag), Exec, treeMaker.Exec(treeMaker.Assign(treeMaker.Select(treeMaker.Ident(superBuilderJob.toName("this")), next.rawName), treeMaker.Apply(JavacHandlerUtil.typeParameterNames(treeMaker, superBuilderJob.parentType.get().typarams), treeMaker.Select(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, List.nil()), next.nameOfDefaultProvider), List.nil())))));
} else {
listBuffer.append(Exec);
}
if (JavacHandlerUtil.hasNonNullAnnotations(next.originalFieldNode) && (generateNullCheck = JavacHandlerUtil.generateNullCheck(treeMaker, next.originalFieldNode, superBuilderJob.sourceNode)) != null) {
listBuffer.append(generateNullCheck);
}
}
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(JavacHandlerUtil.toJavacModifier(accessLevel), superBuilderJob.checkerFramework.generateUnique() ? List.of(treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.parentType, CheckerFrameworkVersion.NAME__SIDE_EFFECT_FREE), List.nil())) : List.nil());
ListBuffer listBuffer2 = new ListBuffer();
long addFinalIfNeeded = JavacHandlerUtil.addFinalIfNeeded(Permission.MANAGE_EVENTS, superBuilderJob.getContext());
ListBuffer<JCTree.JCExpression> typeParamExpressions = getTypeParamExpressions(superBuilderJob.typeParams, treeMaker, superBuilderJob.getContext());
typeParamExpressions.add(treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null));
typeParamExpressions.add(treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null));
listBuffer2.append(treeMaker.VarDef(treeMaker.Modifiers(addFinalIfNeeded), name, treeMaker.TypeApply(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.getBuilderClassName(), false, List.nil()), typeParamExpressions.toList()), null));
if (z2) {
listBuffer.prepend(treeMaker.Exec(treeMaker.Apply(List.nil(), treeMaker.Ident(superBuilderJob.toName("super")), List.of(treeMaker.Ident(name)))));
}
JavacHandlerUtil.injectMethod(superBuilderJob.parentType, JavacHandlerUtil.recursiveSetGeneratedBy(treeMaker.MethodDef(Modifiers, superBuilderJob.toName("<init>"), null, List.nil(), listBuffer2.toList(), List.nil(), treeMaker.Block(0L, listBuffer.toList()), null), superBuilderJob.source, superBuilderJob.getContext()), null, Javac.createVoidType(superBuilderJob.builderType.getSymbolTable(), Javac.CTC_VOID));
}
private JCTree.JCMethodDecl generateBuilderMethod(SuperBuilderJob superBuilderJob) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
ListBuffer listBuffer = new ListBuffer();
Iterator it = superBuilderJob.typeParams.iterator();
while (it.hasNext()) {
listBuffer.append(treeMaker.Ident(((JCTree.JCTypeParameter) it.next()).name));
}
JCTree.JCBlock Block = treeMaker.Block(0L, List.of(treeMaker.Return(treeMaker.NewClass(null, List.nil(), JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.toName(superBuilderJob.builderImplClassName), false, superBuilderJob.typeParams), List.nil(), null))));
int i = 1 | 8;
ListBuffer listBuffer2 = new ListBuffer();
listBuffer2.addAll(JavacHandlerUtil.typeParameterNames(treeMaker, superBuilderJob.typeParams));
JCTree.JCWildcard Wildcard = treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null);
listBuffer2.add(Wildcard);
listBuffer2.add(Wildcard);
JCTree.JCMethodDecl MethodDef = treeMaker.MethodDef(treeMaker.Modifiers(i, superBuilderJob.checkerFramework.generateUnique() ? List.of(treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.parentType, CheckerFrameworkVersion.NAME__SIDE_EFFECT_FREE), List.nil())) : List.nil()), superBuilderJob.toName(superBuilderJob.builderMethodName), treeMaker.TypeApply(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.toName(superBuilderJob.builderAbstractClassName), false, List.nil()), listBuffer2.toList()), JavacHandlerUtil.copyTypeParams(superBuilderJob.sourceNode, superBuilderJob.typeParams), List.nil(), List.nil(), Block, null);
JavacHandlerUtil.createRelevantNonNullAnnotation(superBuilderJob.parentType, MethodDef);
return MethodDef;
}
private JCTree.JCMethodDecl generateToBuilderMethod(SuperBuilderJob superBuilderJob) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
ListBuffer listBuffer = new ListBuffer();
Iterator it = superBuilderJob.typeParams.iterator();
while (it.hasNext()) {
listBuffer.append(treeMaker.Ident(((JCTree.JCTypeParameter) it.next()).name));
}
JCTree.JCBlock Block = treeMaker.Block(0L, List.of(treeMaker.Return(treeMaker.Apply(List.nil(), treeMaker.Select(treeMaker.NewClass(null, List.nil(), JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.toName(superBuilderJob.builderImplClassName), false, superBuilderJob.typeParams), List.nil(), null), superBuilderJob.toName(FILL_VALUES_METHOD_NAME)), List.of(treeMaker.Ident(superBuilderJob.toName("this")))))));
ListBuffer listBuffer2 = new ListBuffer();
listBuffer2.addAll(JavacHandlerUtil.typeParameterNames(treeMaker, superBuilderJob.typeParams));
JCTree.JCWildcard Wildcard = treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null);
listBuffer2.add(Wildcard);
listBuffer2.add(Wildcard);
JCTree.JCMethodDecl MethodDef = treeMaker.MethodDef(treeMaker.Modifiers(1, superBuilderJob.checkerFramework.generateUnique() ? List.of(treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.parentType, CheckerFrameworkVersion.NAME__SIDE_EFFECT_FREE), List.nil())) : List.nil()), superBuilderJob.toName("toBuilder"), treeMaker.TypeApply(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.toName(superBuilderJob.builderAbstractClassName), false, List.nil()), listBuffer2.toList()), List.nil(), List.nil(), List.nil(), Block, null);
JavacHandlerUtil.createRelevantNonNullAnnotation(superBuilderJob.parentType, MethodDef);
return MethodDef;
}
private JCTree.JCMethodDecl generateFillValuesMethod(SuperBuilderJob superBuilderJob, boolean z2, String str, String str2) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
List<JCTree.JCAnnotation> nil = List.nil();
if (z2) {
nil = List.of(treeMaker.Annotation(JavacHandlerUtil.genJavaLangTypeRef(superBuilderJob.builderType, "Override"), List.nil()));
}
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(4L, nil);
Name name = superBuilderJob.toName(FILL_VALUES_METHOD_NAME);
JCTree.JCIdent Ident = treeMaker.Ident(superBuilderJob.toName(str));
JCTree.JCVariableDecl VarDef = treeMaker.VarDef(treeMaker.Modifiers(8589934608L), superBuilderJob.toName(INSTANCE_VARIABLE_NAME), treeMaker.Ident(superBuilderJob.toName(str2)), null);
ListBuffer listBuffer = new ListBuffer();
if (z2) {
listBuffer.append(treeMaker.Exec(treeMaker.Apply(List.nil(), treeMaker.Select(treeMaker.Ident(superBuilderJob.toName("super")), name), List.of(treeMaker.Ident(superBuilderJob.toName(INSTANCE_VARIABLE_NAME))))));
}
listBuffer.append(treeMaker.Exec(treeMaker.Apply(List.nil(), treeMaker.Select(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.getBuilderClassName(), false, List.nil()), superBuilderJob.toName(STATIC_FILL_VALUES_METHOD_NAME)), List.of(treeMaker.Ident(superBuilderJob.toName(INSTANCE_VARIABLE_NAME)), treeMaker.Ident(superBuilderJob.toName("this"))))));
listBuffer.append(treeMaker.Return(treeMaker.Apply(List.nil(), treeMaker.Ident(superBuilderJob.toName(SELF_METHOD)), List.nil())));
return treeMaker.MethodDef(Modifiers, name, Ident, List.nil(), List.of(VarDef), List.nil(), treeMaker.Block(0L, listBuffer.toList()), null);
}
private JCTree.JCMethodDecl generateStaticFillValuesMethod(SuperBuilderJob superBuilderJob, String str) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(10L, List.nil());
Name name = superBuilderJob.toName(STATIC_FILL_VALUES_METHOD_NAME);
JCTree.JCPrimitiveTypeTree TypeIdent = treeMaker.TypeIdent(Javac.CTC_VOID);
JCTree.JCVariableDecl VarDef = treeMaker.VarDef(treeMaker.Modifiers(8589934608L), superBuilderJob.toName(INSTANCE_VARIABLE_NAME), JavacHandlerUtil.cloneSelfType(superBuilderJob.parentType), null);
ListBuffer<JCTree.JCExpression> typeParamExpressions = getTypeParamExpressions(superBuilderJob.typeParams, treeMaker, superBuilderJob.getContext());
typeParamExpressions.add(treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null));
typeParamExpressions.add(treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null));
JCTree.JCVariableDecl VarDef2 = treeMaker.VarDef(treeMaker.Modifiers(8589934608L), superBuilderJob.toName(BUILDER_VARIABLE_NAME), treeMaker.TypeApply(JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.parentType, superBuilderJob.getBuilderClassName(), false, List.nil()), typeParamExpressions.toList()), null);
ListBuffer listBuffer = new ListBuffer();
Iterator<HandleBuilder.BuilderFieldData> it = superBuilderJob.builderFields.iterator();
while (it.hasNext()) {
listBuffer.append(createSetterCallWithInstanceValue(it.next(), superBuilderJob.parentType, treeMaker, str));
}
return treeMaker.MethodDef(Modifiers, name, TypeIdent, JavacHandlerUtil.copyTypeParams(superBuilderJob.builderType, superBuilderJob.typeParams), List.of(VarDef, VarDef2), List.nil(), treeMaker.Block(0L, listBuffer.toList()), null);
}
private JCTree.JCExpressionStatement createSetterCallWithInstanceValue(HandleBuilder.BuilderFieldData builderFieldData, JavacNode javacNode, JavacTreeMaker javacTreeMaker, String str) {
JCTree.JCConditional[] jCConditionalArr = new JCTree.JCExpression[builderFieldData.singularData == null ? 1 : 2];
if (builderFieldData.obtainVia == null || !builderFieldData.obtainVia.field().isEmpty()) {
for (int i = 0; i < jCConditionalArr.length; i++) {
jCConditionalArr[i] = javacTreeMaker.Select(javacTreeMaker.Ident(javacNode.toName(INSTANCE_VARIABLE_NAME)), builderFieldData.obtainVia == null ? builderFieldData.rawName : javacNode.toName(builderFieldData.obtainVia.field()));
}
} else if (builderFieldData.obtainVia.isStatic()) {
for (int i2 = 0; i2 < jCConditionalArr.length; i2++) {
jCConditionalArr[i2] = javacTreeMaker.Apply(List.nil(), javacTreeMaker.Select(JavacHandlerUtil.namePlusTypeParamsToTypeReference(javacTreeMaker, javacNode, List.nil()), javacNode.toName(builderFieldData.obtainVia.method())), List.of(javacTreeMaker.Ident(javacNode.toName(INSTANCE_VARIABLE_NAME))));
}
} else {
for (int i3 = 0; i3 < jCConditionalArr.length; i3++) {
jCConditionalArr[i3] = javacTreeMaker.Apply(List.nil(), javacTreeMaker.Select(javacTreeMaker.Ident(javacNode.toName(INSTANCE_VARIABLE_NAME)), javacNode.toName(builderFieldData.obtainVia.method())), List.nil());
}
}
return javacTreeMaker.Exec(javacTreeMaker.Apply(List.nil(), javacTreeMaker.Select(javacTreeMaker.Ident(javacNode.toName(BUILDER_VARIABLE_NAME)), javacNode.toName(HandlerUtil.buildAccessorName(str, builderFieldData.name.toString()))), List.of(builderFieldData.singularData == null ? jCConditionalArr[0] : javacTreeMaker.Conditional(javacTreeMaker.Binary(Javac.CTC_EQUAL, jCConditionalArr[0], javacTreeMaker.Literal(Javac.CTC_BOT, null)), javacTreeMaker.Apply(List.nil(), JavacHandlerUtil.chainDots(javacNode, builderFieldData.singularData.getSingularizer().getEmptyMaker(builderFieldData.singularData.getTargetFqn()).split("\\.")), List.nil()), jCConditionalArr[1]))));
}
private JCTree.JCMethodDecl generateAbstractSelfMethod(SuperBuilderJob superBuilderJob, boolean z2, String str) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
List<JCTree.JCAnnotation> nil = List.nil();
JCTree.JCAnnotation Annotation = z2 ? treeMaker.Annotation(JavacHandlerUtil.genJavaLangTypeRef(superBuilderJob.builderType, "Override"), List.nil()) : null;
JCTree.JCAnnotation Annotation2 = superBuilderJob.checkerFramework.generateReturnsReceiver() ? treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__RETURNS_RECEIVER), List.nil()) : null;
JCTree.JCAnnotation Annotation3 = superBuilderJob.checkerFramework.generatePure() ? treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__PURE), List.nil()) : null;
if (Annotation3 != null) {
nil = nil.prepend(Annotation3);
}
if (Annotation2 != null) {
nil = nil.prepend(Annotation2);
}
if (Annotation != null) {
nil = nil.prepend(Annotation);
}
return treeMaker.MethodDef(treeMaker.Modifiers(1028L, nil), superBuilderJob.toName(SELF_METHOD), treeMaker.Ident(superBuilderJob.toName(str)), List.nil(), List.nil(), List.nil(), null, null);
}
private JCTree.JCMethodDecl generateSelfMethod(SuperBuilderJob superBuilderJob) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
JCTree.JCAnnotation Annotation = treeMaker.Annotation(JavacHandlerUtil.genJavaLangTypeRef(superBuilderJob.builderType, "Override"), List.nil());
JCTree.JCAnnotation Annotation2 = superBuilderJob.checkerFramework.generateReturnsReceiver() ? treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__RETURNS_RECEIVER), List.nil()) : null;
JCTree.JCAnnotation Annotation3 = superBuilderJob.checkerFramework.generatePure() ? treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__PURE), List.nil()) : null;
List nil = List.nil();
if (Annotation3 != null) {
nil = nil.prepend(Annotation3);
}
if (Annotation2 != null) {
nil = nil.prepend(Annotation2);
}
return treeMaker.MethodDef(treeMaker.Modifiers(4L, nil.prepend(Annotation)), superBuilderJob.toName(SELF_METHOD), JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.builderType.up(), superBuilderJob.getBuilderClassName(), false, superBuilderJob.typeParams), List.nil(), List.nil(), List.nil(), treeMaker.Block(0L, List.of(treeMaker.Return(treeMaker.Ident(superBuilderJob.toName("this"))))), null);
}
private JCTree.JCMethodDecl generateAbstractBuildMethod(SuperBuilderJob superBuilderJob, boolean z2, String str) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
List<JCTree.JCAnnotation> nil = List.nil();
if (z2) {
nil = List.of(treeMaker.Annotation(JavacHandlerUtil.genJavaLangTypeRef(superBuilderJob.builderType, "Override"), List.nil()));
}
if (superBuilderJob.checkerFramework.generateSideEffectFree()) {
nil = nil.prepend(treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__SIDE_EFFECT_FREE), List.nil()));
}
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(1025L, nil);
Name name = superBuilderJob.toName(superBuilderJob.buildMethodName);
JCTree.JCIdent Ident = treeMaker.Ident(superBuilderJob.toName(str));
JCTree.JCVariableDecl generateReceiver = HandleBuilder.generateReceiver(superBuilderJob);
return (generateReceiver == null || !treeMaker.hasMethodDefWithRecvParam()) ? treeMaker.MethodDef(Modifiers, name, Ident, List.nil(), List.nil(), List.nil(), null, null) : treeMaker.MethodDefWithRecvParam(Modifiers, name, Ident, List.nil(), generateReceiver, List.nil(), List.nil(), null, null);
}
private JCTree.JCMethodDecl generateBuildMethod(SuperBuilderJob superBuilderJob, List<JCTree.JCExpression> list) {
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
ListBuffer listBuffer = new ListBuffer();
listBuffer.append(treeMaker.Return(treeMaker.NewClass(null, List.nil(), JavacHandlerUtil.cloneSelfType(superBuilderJob.parentType), List.of(treeMaker.Ident(superBuilderJob.toName("this"))), null)));
JCTree.JCBlock Block = treeMaker.Block(0L, listBuffer.toList());
List<JCTree.JCAnnotation> of = List.of(treeMaker.Annotation(JavacHandlerUtil.genJavaLangTypeRef(superBuilderJob.builderType, "Override"), List.nil()));
if (superBuilderJob.checkerFramework.generateSideEffectFree()) {
of = of.prepend(treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__SIDE_EFFECT_FREE), List.nil()));
}
JCTree.JCModifiers Modifiers = treeMaker.Modifiers(1L, of);
JCTree.JCVariableDecl generateReceiver = HandleBuilder.generateReceiver(superBuilderJob);
JCTree.JCMethodDecl MethodDef = (generateReceiver == null || !treeMaker.hasMethodDefWithRecvParam()) ? treeMaker.MethodDef(Modifiers, superBuilderJob.toName(superBuilderJob.buildMethodName), JavacHandlerUtil.cloneSelfType(superBuilderJob.parentType), List.nil(), List.nil(), list, Block, null) : treeMaker.MethodDefWithRecvParam(Modifiers, superBuilderJob.toName(superBuilderJob.buildMethodName), JavacHandlerUtil.cloneSelfType(superBuilderJob.parentType), List.nil(), generateReceiver, List.nil(), list, Block, null);
JavacHandlerUtil.createRelevantNonNullAnnotation(superBuilderJob.builderType, MethodDef);
return MethodDef;
}
private JCTree.JCMethodDecl generateCleanMethod(java.util.List<HandleBuilder.BuilderFieldData> list, JavacNode javacNode, JCTree jCTree) {
JavacTreeMaker treeMaker = javacNode.getTreeMaker();
ListBuffer<JCTree.JCStatement> listBuffer = new ListBuffer<>();
Iterator<HandleBuilder.BuilderFieldData> it = list.iterator();
while (it.hasNext()) {
HandleBuilder.BuilderFieldData next = it.next();
if (!(next.singularData == null || next.singularData.getSingularizer() == null)) {
next.singularData.getSingularizer().appendCleaningCode(next.singularData, javacNode, jCTree, listBuffer);
}
}
listBuffer.append(treeMaker.Exec(treeMaker.Assign(treeMaker.Select(treeMaker.Ident(javacNode.toName("this")), javacNode.toName("$lombokUnclean")), treeMaker.Literal(Javac.CTC_BOOLEAN, 0))));
return treeMaker.MethodDef(treeMaker.Modifiers(1L), javacNode.toName("$lombokClean"), treeMaker.Type(Javac.createVoidType(javacNode.getSymbolTable(), Javac.CTC_VOID)), List.nil(), List.nil(), List.nil(), treeMaker.Block(0L, listBuffer.toList()), null);
}
private void generateBuilderFields(JavacNode javacNode, java.util.List<HandleBuilder.BuilderFieldData> list, JCTree jCTree) {
int size = list.size();
ArrayList arrayList = new ArrayList();
Iterator<JavacNode> it = javacNode.down().iterator();
while (it.hasNext()) {
JavacNode next = it.next();
if (next.getKind() == AST.Kind.FIELD) {
arrayList.add(next);
}
}
ArrayList arrayList2 = new ArrayList();
for (int i = size - 1; i >= 0; i--) {
HandleBuilder.BuilderFieldData builderFieldData = list.get(i);
if (builderFieldData.singularData == null || builderFieldData.singularData.getSingularizer() == null) {
JavacNode javacNode2 = null;
JavacNode javacNode3 = null;
Iterator it2 = arrayList.iterator();
while (it2.hasNext()) {
JavacNode javacNode4 = (JavacNode) it2.next();
Name name = javacNode4.get().name;
if (name.equals(builderFieldData.builderFieldName)) {
javacNode2 = javacNode4;
}
if (name.equals(builderFieldData.nameOfSetFlag)) {
javacNode3 = javacNode4;
}
}
JavacTreeMaker treeMaker = javacNode.getTreeMaker();
if (javacNode2 == null) {
JCTree.JCVariableDecl VarDef = treeMaker.VarDef(treeMaker.Modifiers(2L), builderFieldData.builderFieldName, JavacHandlerUtil.cloneType(treeMaker, builderFieldData.type, jCTree, javacNode.getContext()), null);
javacNode2 = JavacHandlerUtil.injectFieldAndMarkGenerated(javacNode, VarDef);
arrayList2.add(VarDef);
}
if (javacNode3 == null && builderFieldData.nameOfSetFlag != null) {
JCTree.JCVariableDecl VarDef2 = treeMaker.VarDef(treeMaker.Modifiers(2L), builderFieldData.nameOfSetFlag, treeMaker.TypeIdent(Javac.CTC_BOOLEAN), null);
JavacHandlerUtil.injectFieldAndMarkGenerated(javacNode, VarDef2);
arrayList2.add(VarDef2);
}
builderFieldData.createdFields.add(javacNode2);
} else {
builderFieldData.createdFields.addAll(builderFieldData.singularData.getSingularizer().generateFields(builderFieldData.singularData, javacNode, jCTree));
}
}
Iterator it3 = arrayList2.iterator();
while (it3.hasNext()) {
JavacHandlerUtil.recursiveSetGeneratedBy((JCTree.JCVariableDecl) it3.next(), jCTree, javacNode.getContext());
}
}
private void generateSetterMethodsForBuilder(SuperBuilderJob superBuilderJob, HandleBuilder.BuilderFieldData builderFieldData, String str, String str2) {
boolean isFieldDeprecated = JavacHandlerUtil.isFieldDeprecated(builderFieldData.originalFieldNode);
JavacTreeMaker treeMaker = superBuilderJob.getTreeMaker();
AnonymousClass1 r0 = new AnonymousClass1(treeMaker, superBuilderJob, str);
AnonymousClass2 r02 = new AnonymousClass2(treeMaker, superBuilderJob);
if (builderFieldData.singularData == null || builderFieldData.singularData.getSingularizer() == null) {
generateSimpleSetterMethodForBuilder(superBuilderJob, isFieldDeprecated, builderFieldData.createdFields.get(0), builderFieldData.name, builderFieldData.nameOfSetFlag, r0.make(), r02.make(), builderFieldData.annotations, builderFieldData.originalFieldNode, str2);
} else {
builderFieldData.singularData.getSingularizer().generateMethods(superBuilderJob.checkerFramework, builderFieldData.singularData, isFieldDeprecated, superBuilderJob.builderType, superBuilderJob.source, true, r0, r02, AccessLevel.PUBLIC);
}
}
private void generateSimpleSetterMethodForBuilder(SuperBuilderJob superBuilderJob, boolean z2, JavacNode javacNode, Name name, Name name2, JCTree.JCExpression jCExpression, JCTree.JCStatement jCStatement, List<JCTree.JCAnnotation> list, JavacNode javacNode2, String str) {
String buildAccessorName = HandlerUtil.buildAccessorName(str, name.toString());
Name name3 = superBuilderJob.builderType.toName(buildAccessorName);
Iterator<JavacNode> it = superBuilderJob.builderType.down().iterator();
while (it.hasNext()) {
JavacNode next = it.next();
if (next.getKind() == AST.Kind.METHOD) {
JCTree.JCMethodDecl jCMethodDecl = next.get();
if (jCMethodDecl.name.equals(name3) && !JavacHandlerUtil.isTolerate(javacNode, jCMethodDecl)) {
return;
}
}
}
JavacTreeMaker treeMaker = javacNode.getTreeMaker();
List<JCTree.JCAnnotation> findCopyableToSetterAnnotations = JavacHandlerUtil.findCopyableToSetterAnnotations(javacNode2);
JCTree.JCMethodDecl jCMethodDecl2 = null;
if (superBuilderJob.checkerFramework.generateCalledMethods() && treeMaker.hasMethodDefWithRecvParam()) {
jCMethodDecl2 = HandleSetter.createSetterWithRecv(1L, z2, javacNode, treeMaker, buildAccessorName, name, name2, jCExpression, jCStatement, superBuilderJob.sourceNode, findCopyableToSetterAnnotations, list, treeMaker.VarDef(treeMaker.Modifiers(0L, List.nil()), superBuilderJob.toName("this"), JavacHandlerUtil.namePlusTypeParamsToTypeReference(treeMaker, superBuilderJob.builderType, superBuilderJob.builderType.get().typarams, List.of(treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.sourceNode, CheckerFrameworkVersion.NAME__NOT_CALLED), List.of(treeMaker.Literal(buildAccessorName.toString()))))), null));
}
if (jCMethodDecl2 == null) {
jCMethodDecl2 = HandleSetter.createSetter(1L, z2, javacNode, treeMaker, buildAccessorName, name, name2, jCExpression, jCStatement, superBuilderJob.sourceNode, findCopyableToSetterAnnotations, list);
}
if (superBuilderJob.checkerFramework.generateReturnsReceiver()) {
List list2 = jCMethodDecl2.mods.annotations;
if (list2 == null) {
list2 = List.nil();
}
JCTree.JCAnnotation Annotation = treeMaker.Annotation(JavacHandlerUtil.genTypeRef(superBuilderJob.builderType, CheckerFrameworkVersion.NAME__RETURNS_RECEIVER), List.nil());
JavacHandlerUtil.recursiveSetGeneratedBy(Annotation, superBuilderJob.source, superBuilderJob.getContext());
jCMethodDecl2.mods.annotations = list2.prepend(Annotation);
}
JavacHandlerUtil.injectMethod(superBuilderJob.builderType, jCMethodDecl2);
}
private void addObtainVia(HandleBuilder.BuilderFieldData builderFieldData, JavacNode javacNode) {
Iterator<JavacNode> it = javacNode.down().iterator();
while (it.hasNext()) {
JavacNode next = it.next();
if (JavacHandlerUtil.annotationTypeMatches(Builder.ObtainVia.class, next)) {
builderFieldData.obtainVia = JavacHandlerUtil.createAnnotation(Builder.ObtainVia.class, next).getInstance();
builderFieldData.obtainViaNode = next;
JavacHandlerUtil.deleteAnnotationIfNeccessary(next, Builder.ObtainVia.class);
return;
}
}
}
private JavacSingularsRecipes.SingularData getSingularData(JavacNode javacNode, String str) {
Iterator<JavacNode> it = javacNode.down().iterator();
while (it.hasNext()) {
JavacNode next = it.next();
if (JavacHandlerUtil.annotationTypeMatches(Singular.class, next)) {
Name removePrefixFromField = javacNode.getKind() == AST.Kind.FIELD ? JavacHandlerUtil.removePrefixFromField(javacNode) : javacNode.get().name;
Singular instance = JavacHandlerUtil.createAnnotation(Singular.class, next).getInstance();
JavacHandlerUtil.deleteAnnotationIfNeccessary(next, Singular.class);
String value = instance.value();
if (value.isEmpty()) {
if (Boolean.FALSE.equals(javacNode.getAst().readConfiguration(ConfigurationKeys.SINGULAR_AUTO))) {
javacNode.addError("The singular must be specified explicitly (e.g. @Singular(\"task\")) because auto singularization is disabled.");
value = removePrefixFromField.toString();
} else {
value = HandlerUtil.autoSingularize(removePrefixFromField.toString());
if (value == null) {
javacNode.addError("Can't singularize this name; please specify the singular explicitly (i.e. @Singular(\"sheep\"))");
value = removePrefixFromField.toString();
}
}
}
Name name = javacNode.toName(value);
JCTree.JCExpression jCExpression = null;
if (javacNode.get() instanceof JCTree.JCVariableDecl) {
jCExpression = javacNode.get().vartype;
}
List nil = List.nil();
if (jCExpression instanceof JCTree.JCTypeApply) {
nil = ((JCTree.JCTypeApply) jCExpression).arguments;
jCExpression = ((JCTree.JCTypeApply) jCExpression).clazz;
}
String jCExpression2 = jCExpression.toString();
String qualified = JavacSingularsRecipes.get().toQualified(jCExpression2);
JavacSingularsRecipes.JavacSingularizer singularizer = JavacSingularsRecipes.get().getSingularizer(qualified, javacNode);
if (singularizer != null) {
return new JavacSingularsRecipes.SingularData(next, name, removePrefixFromField, nil, qualified, singularizer, instance.ignoreNullCollections(), str);
}
javacNode.addError("Lombok does not know how to create the singular-form builder methods for type '" + jCExpression2 + "'; they won't be generated.");
return null;
}
}
return null;
}
private HashSet<String> gatherUsedTypeNames(List<JCTree.JCTypeParameter> list, JCTree.JCClassDecl jCClassDecl) {
HashSet<String> hashSet = new HashSet<>();
Iterator it = list.iterator();
while (it.hasNext()) {
hashSet.add(((JCTree.JCTypeParameter) it.next()).getName().toString());
}
hashSet.add(jCClassDecl.name.toString());
Iterator it2 = jCClassDecl.getMembers().iterator();
while (it2.hasNext()) {
JCTree.JCVariableDecl jCVariableDecl = (JCTree) it2.next();
if (jCVariableDecl.getKind() == Tree.Kind.VARIABLE && (jCVariableDecl instanceof JCTree.JCVariableDecl)) {
JCTree.JCIdent type = jCVariableDecl.getType();
if (type instanceof JCTree.JCIdent) {
hashSet.add(type.getName().toString());
}
}
}
return hashSet;
}
private String generateNonclashingNameFor(String str, HashSet<String> hashSet) {
if (!hashSet.contains(str)) {
return str;
}
int i = 2;
while (hashSet.contains(String.valueOf(str) + i)) {
i++;
}
return String.valueOf(str) + i;
}
private JavacNode findInnerClass(JavacNode javacNode, String str) {
Iterator<JavacNode> it = javacNode.down().iterator();
while (it.hasNext()) {
JavacNode next = it.next();
if (next.getKind() == AST.Kind.TYPE && next.get().name.contentEquals(str)) {
return next;
}
}
return null;
}
private ListBuffer<JCTree.JCExpression> getTypeParamExpressions(List<? extends JCTree> list, JavacTreeMaker javacTreeMaker, Context context) {
ListBuffer<JCTree.JCExpression> listBuffer = new ListBuffer<>();
Iterator it = list.iterator();
while (it.hasNext()) {
JCTree.JCTypeApply jCTypeApply = (JCTree) it.next();
if (jCTypeApply instanceof JCTree.JCTypeParameter) {
listBuffer.add(javacTreeMaker.Ident(((JCTree.JCTypeParameter) jCTypeApply).getName()));
} else if (jCTypeApply instanceof JCTree.JCIdent) {
listBuffer.add(javacTreeMaker.Ident(((JCTree.JCIdent) jCTypeApply).getName()));
} else if (jCTypeApply instanceof JCTree.JCFieldAccess) {
listBuffer.add(copySelect(javacTreeMaker, (JCTree.JCFieldAccess) jCTypeApply));
} else if (jCTypeApply instanceof JCTree.JCTypeApply) {
listBuffer.add(JavacHandlerUtil.cloneType(javacTreeMaker, jCTypeApply, jCTypeApply, context));
}
}
return listBuffer;
}
private JCTree.JCExpression copySelect(JavacTreeMaker javacTreeMaker, JCTree.JCFieldAccess jCFieldAccess) {
ArrayList arrayList = new ArrayList();
JCTree.JCFieldAccess jCFieldAccess2 = jCFieldAccess;
while (jCFieldAccess2 != null) {
if (jCFieldAccess2 instanceof JCTree.JCFieldAccess) {
arrayList.add(jCFieldAccess2.getIdentifier());
jCFieldAccess2 = jCFieldAccess2.getExpression();
} else if (jCFieldAccess2 instanceof JCTree.JCIdent) {
arrayList.add(((JCTree.JCIdent) jCFieldAccess2).getName());
jCFieldAccess2 = null;
}
}
Collections.reverse(arrayList);
JCTree.JCFieldAccess jCFieldAccess3 = null;
Iterator it = arrayList.iterator();
while (it.hasNext()) {
Name name = (Name) it.next();
jCFieldAccess3 = jCFieldAccess3 == null ? javacTreeMaker.Ident(name) : javacTreeMaker.Select(jCFieldAccess3, name);
}
return jCFieldAccess3;
}
private boolean constructorExists(JavacNode javacNode, String str) {
if (javacNode == null || !(javacNode.get() instanceof JCTree.JCClassDecl)) {
return false;
}
Iterator it = javacNode.get().defs.iterator();
while (it.hasNext()) {
JCTree.JCMethodDecl jCMethodDecl = (JCTree) it.next();
if (jCMethodDecl instanceof JCTree.JCMethodDecl) {
JCTree.JCMethodDecl jCMethodDecl2 = jCMethodDecl;
boolean equals = jCMethodDecl2.name.toString().equals("<init>");
if (!JavacHandlerUtil.isTolerate(javacNode, jCMethodDecl2) && equals && jCMethodDecl2.params != null && jCMethodDecl2.params.length() == 1) {
String jCTree = ((JCTree.JCVariableDecl) jCMethodDecl2.params.get(0)).getType().toString();
int lastIndexOf = jCTree.lastIndexOf(46);
if (lastIndexOf >= 0) {
jCTree = jCTree.substring(lastIndexOf + 1);
}
if ((String.valueOf(str) + "<?, ?>").equals(jCTree)) {
return true;
}
}
}
}
return false;
}
static /* synthetic */ int[] $SWITCH_TABLE$lombok$javac$handlers$JavacHandlerUtil$MemberExistsResult() {
int[] iArr = $SWITCH_TABLE$lombok$javac$handlers$JavacHandlerUtil$MemberExistsResult;
if (iArr != null) {
return iArr;
}
int[] iArr2 = new int[JavacHandlerUtil.MemberExistsResult.values().length];
try {
iArr2[JavacHandlerUtil.MemberExistsResult.EXISTS_BY_LOMBOK.ordinal()] = 2;
} catch (NoSuchFieldError unused) {
}
try {
iArr2[JavacHandlerUtil.MemberExistsResult.EXISTS_BY_USER.ordinal()] = 3;
} catch (NoSuchFieldError unused2) {
}
try {
iArr2[JavacHandlerUtil.MemberExistsResult.NOT_EXISTS.ordinal()] = 1;
} catch (NoSuchFieldError unused3) {
}
$SWITCH_TABLE$lombok$javac$handlers$JavacHandlerUtil$MemberExistsResult = iArr2;
return iArr2;
}
}