2022-03-07 09:34:54 +00:00
|
|
|
package lombok.core.configuration;
|
|
|
|
|
|
|
|
import java.util.ArrayDeque;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.HashSet;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.List;
|
|
|
|
import lombok.ConfigurationKeys;
|
|
|
|
import lombok.core.configuration.ConfigurationSource;
|
2022-04-04 09:20:14 +00:00
|
|
|
/* loaded from: com.discord-122105.apk:lombok/core/configuration/BubblingConfigurationResolver.SCL.lombok */
|
2022-03-07 09:34:54 +00:00
|
|
|
public class BubblingConfigurationResolver implements ConfigurationResolver {
|
|
|
|
private final ConfigurationFile start;
|
|
|
|
private final ConfigurationFileToSource fileMapper;
|
|
|
|
|
|
|
|
public BubblingConfigurationResolver(ConfigurationFile configurationFile, ConfigurationFileToSource configurationFileToSource) {
|
|
|
|
this.start = configurationFile;
|
|
|
|
this.fileMapper = configurationFileToSource;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX WARN: Unknown variable types count: 1 */
|
|
|
|
@Override // lombok.core.configuration.ConfigurationResolver
|
|
|
|
/*
|
|
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
|
|
*/
|
|
|
|
public <T> T resolve(ConfigurationKey<T> configurationKey) {
|
|
|
|
ConfigurationSource parsed;
|
|
|
|
boolean isList = configurationKey.getType().isList();
|
|
|
|
ArrayList arrayList = null;
|
|
|
|
boolean z2 = false;
|
|
|
|
ConfigurationFile configurationFile = this.start;
|
|
|
|
HashSet hashSet = new HashSet();
|
|
|
|
while (true) {
|
|
|
|
if (z2 || configurationFile == null) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
ArrayDeque arrayDeque = new ArrayDeque();
|
|
|
|
arrayDeque.push(configurationFile);
|
|
|
|
while (!arrayDeque.isEmpty()) {
|
|
|
|
ConfigurationFile configurationFile2 = (ConfigurationFile) arrayDeque.pop();
|
|
|
|
if (!(configurationFile2 == null || !hashSet.add(configurationFile2) || (parsed = this.fileMapper.parsed(configurationFile2)) == null)) {
|
|
|
|
Iterator<ConfigurationFile> it = parsed.imports().iterator();
|
|
|
|
while (it.hasNext()) {
|
|
|
|
arrayDeque.push(it.next());
|
|
|
|
}
|
|
|
|
ConfigurationSource.Result resolve = parsed.resolve(ConfigurationKeys.STOP_BUBBLING);
|
|
|
|
z2 = z2 || (resolve != null && Boolean.TRUE.equals(resolve.getValue()));
|
|
|
|
ConfigurationSource.Result resolve2 = parsed.resolve(configurationKey);
|
|
|
|
if (resolve2 != null) {
|
|
|
|
if (isList) {
|
|
|
|
if (arrayList == null) {
|
|
|
|
arrayList = new ArrayList();
|
|
|
|
}
|
|
|
|
arrayList.add((List) resolve2.getValue());
|
|
|
|
}
|
|
|
|
if (resolve2.isAuthoritative()) {
|
|
|
|
if (!isList) {
|
|
|
|
return (T) resolve2.getValue();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
configurationFile = configurationFile.parent();
|
|
|
|
}
|
|
|
|
if (!isList) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if (arrayList == null) {
|
|
|
|
return (T) Collections.emptyList();
|
|
|
|
}
|
|
|
|
?? r0 = (T) new ArrayList();
|
|
|
|
Collections.reverse(arrayList);
|
|
|
|
Iterator it2 = arrayList.iterator();
|
|
|
|
while (it2.hasNext()) {
|
|
|
|
List list = (List) it2.next();
|
|
|
|
if (list != null) {
|
|
|
|
Iterator it3 = list.iterator();
|
|
|
|
while (it3.hasNext()) {
|
|
|
|
ConfigurationSource.ListModification listModification = (ConfigurationSource.ListModification) it3.next();
|
|
|
|
r0.remove(listModification.getValue());
|
|
|
|
if (listModification.isAdded()) {
|
|
|
|
r0.add(listModification.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return r0;
|
|
|
|
}
|
|
|
|
}
|