public class nl.basjes.parse.useragent.config.ConfigLoader extends java.lang.Object
{
private static final org.apache.logging.log4j.Logger LOG;
public static final java.lang.String DEFAULT_RESOURCES;
private boolean doingOnlyASingleTest;
private final java.util.List mandatoryResources;
private final java.util.List optionalResources;
private final nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig;
private final java.util.Map yamlRules;
private boolean keepTests;
final boolean showLoading;
public void <init>(boolean)
{
java.util.LinkedHashMap v;
nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder v;
nl.basjes.parse.useragent.config.ConfigLoader v;
boolean v;
java.util.ArrayList v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean doingOnlyASingleTest> = 0;
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean keepTests> = 1;
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean showLoading> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.List mandatoryResources> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.List optionalResources> = v;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.Map yamlRules> = v;
v = staticinvoke <nl.basjes.parse.useragent.config.AnalyzerConfig: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder newBuilder()>();
v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig> = v;
return;
}
public nl.basjes.parse.useragent.config.ConfigLoader addResource(java.util.List, boolean)
{
java.util.function.Consumer v;
nl.basjes.parse.useragent.config.ConfigLoader v;
java.util.List v;
boolean v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: java.util.List;
v := @parameter: boolean;
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_addResource_0__629: java.util.function.Consumer bootstrap$(nl.basjes.parse.useragent.config.ConfigLoader,boolean)>(v, v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
return v;
}
public nl.basjes.parse.useragent.config.ConfigLoader addResource(java.lang.String, boolean)
{
nl.basjes.parse.useragent.config.ConfigLoader v;
java.util.List v, v;
nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException v, v;
java.lang.String v, v;
boolean v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v != null goto label;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>("The provided resource name was null.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>("The provided resource name was empty.");
throw v;
label:
if v == 0 goto label;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.List optionalResources>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.List mandatoryResources>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return v;
}
public nl.basjes.parse.useragent.config.ConfigLoader addYaml(java.lang.String, java.lang.String)
{
nl.basjes.parse.useragent.config.ConfigLoader v;
java.util.Map v;
java.lang.String v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.Map yamlRules>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
public nl.basjes.parse.useragent.config.ConfigLoader keepTests(boolean)
{
nl.basjes.parse.useragent.config.ConfigLoader v;
boolean v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: boolean;
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean keepTests> = v;
return v;
}
public nl.basjes.parse.useragent.config.ConfigLoader keepTests()
{
nl.basjes.parse.useragent.config.ConfigLoader v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean keepTests> = 1;
return v;
}
public nl.basjes.parse.useragent.config.ConfigLoader dropTests()
{
nl.basjes.parse.useragent.config.ConfigLoader v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean keepTests> = 0;
return v;
}
public nl.basjes.parse.useragent.config.AnalyzerConfig load()
{
nl.basjes.parse.useragent.config.AnalyzerConfig v;
java.util.function.Consumer v, v;
nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder v;
nl.basjes.parse.useragent.config.ConfigLoader v;
java.util.List v, v;
java.util.Map v;
java.util.function.BiConsumer v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.List mandatoryResources>;
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_load_1__630: java.util.function.Consumer bootstrap$(nl.basjes.parse.useragent.config.ConfigLoader)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.List optionalResources>;
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_load_2__631: java.util.function.Consumer bootstrap$(nl.basjes.parse.useragent.config.ConfigLoader)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = specialinvoke v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml createYaml()>();
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.Map yamlRules>;
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_load_3__632: java.util.function.BiConsumer bootstrap$(nl.basjes.parse.useragent.config.ConfigLoader,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml)>(v, v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
v = virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig build()>();
return v;
}
public void loadResources(java.lang.String, boolean, boolean)
{
java.lang.Integer v, v;
nl.basjes.parse.useragent.config.ConfigLoader v;
java.lang.Long v;
java.util.Map v, v, v;
java.util.stream.Collector v, v, v, v;
java.util.Set v, v, v, v, v;
java.util.stream.Stream v, v, v, v, v, v, v;
org.apache.logging.log4j.Logger v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Throwable v, v, v, v;
java.lang.Object[] v;
long v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
java.io.IOException v, v;
java.io.InputStreamReader v;
java.io.BufferedReader v;
java.util.Formatter v;
nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException v, v, v, v;
java.util.Locale v;
boolean v, v, v, v, v, v, v, v, v;
java.util.function.Predicate v;
java.util.List v;
java.util.function.Function v, v, v, v;
java.nio.charset.Charset v;
int v, v, v;
java.util.Iterator v, v;
java.util.function.Consumer v;
java.lang.Object v, v, v, v, v, v, v, v;
java.io.InputStream v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: boolean;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = "classpath*:UserAgents/**/*.yaml";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
v = specialinvoke v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.Map findAllResources(java.lang.String,boolean,boolean,boolean)>(v, v, v, v);
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean doingOnlyASingleTest> = 0;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
label:
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.io.InputStream getInputStream()>();
label:
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("Opening the resource worked. {}", v);
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String)>("Cannot load the resources (usually classloading problem).");
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("- Resource   : {}", v);
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.lang.String getFilename()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("- Filename   : {}", v);
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.lang.String getDescription()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("- Description: {}", v);
if v == 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String)>("Falling back to the built in list of resources");
interfaceinvoke v.<java.util.Map: void clear()>();
goto label;
label:
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("FATAL: Unable to load the specified resources for {}", v);
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error reading resources (\u): \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
if v == 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Object)>("NO optional resources were loaded from expression: {}", v);
goto label;
label:
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("NO config files were found matching this expression: {}", v);
if v == 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String)>("Unable to load the default resources, usually caused by classloader problems.");
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String)>("Retrying with built in list.");
v = staticinvoke <nl.basjes.parse.useragent.PackagedRules: java.util.List getRuleFileNames()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_loadResources_4__638: java.util.function.Consumer bootstrap$(nl.basjes.parse.useragent.config.ConfigLoader)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
goto label;
label:
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String)>("If you are using wildcards in your expression then try explicitly naming all yamls files explicitly.");
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("There were no resources found for the expression: \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean keepTests>;
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_loadResources_5__635: java.util.function.Predicate bootstrap$(boolean)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$getKey__636: java.util.function.Function bootstrap$()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$getValue__637: java.util.function.Function bootstrap$()>();
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toMap(java.util.function.Function,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
return;
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_loadResources_6__633: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.Map yamlRules>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$lambda_loadResources_7__634: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
interfaceinvoke v.<java.util.Set: boolean retainAll(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Trying to load these {} resources for the second time: {}", v, v);
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Trying to load \u resources for the second time");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.lang.String getFilename()>();
if v == null goto label;
v = new java.io.InputStreamReader;
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.io.InputStream getInputStream()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
label:
v = new java.io.BufferedReader;
specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader)>(v);
label:
v = virtualinvoke v.<java.io.BufferedReader: java.util.stream.Stream lines()>();
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>("\n");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
label:
virtualinvoke v.<java.io.BufferedReader: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
virtualinvoke v.<java.io.InputStreamReader: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: java.util.Map yamlRules>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error reading resources: \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v = staticinvoke <java.lang.System: long nanoTime()>();
v = new java.util.Formatter;
v = <java.util.Locale: java.util.Locale ENGLISH>;
specialinvoke v.<java.util.Formatter: void <init>(java.util.Locale)>(v);
label:
v = newarray (java.lang.Object)[3];
v = interfaceinvoke v.<java.util.Map: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = v - v;
v = v / 1000000L;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v[2] = v;
virtualinvoke v.<java.util.Formatter: java.util.Formatter format(java.lang.String,java.lang.Object[])>("- Loaded %2d files in %4d ms using expression: %s", v);
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void info(java.lang.String,java.lang.Object)>("{}", v);
label:
virtualinvoke v.<java.util.Formatter: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.util.Map findAllResources(java.lang.String, boolean, boolean, boolean)
{
long v;
nl.basjes.parse.useragent.utils.springframework.core.io.Resource v;
java.lang.Integer v;
nl.basjes.parse.useragent.config.ConfigLoader v;
nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException v;
java.lang.Long v;
java.util.Map v;
int v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v;
java.io.IOException v;
nl.basjes.parse.useragent.utils.springframework.core.io.support.PathMatchingResourcePatternResolver v;
org.apache.logging.log4j.Logger v, v, v;
java.util.TreeMap v;
java.lang.Class v;
java.lang.ClassLoader v;
nl.basjes.parse.useragent.utils.springframework.core.io.Resource[] v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v = new nl.basjes.parse.useragent.utils.springframework.core.io.support.PathMatchingResourcePatternResolver;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
specialinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.support.PathMatchingResourcePatternResolver: void <init>(java.lang.ClassLoader)>(v);
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.support.PathMatchingResourcePatternResolver: nl.basjes.parse.useragent.utils.springframework.core.io.Resource[] getResources(java.lang.String)>(v);
if v != 0 goto label;
if v == 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
v = lengthof v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.apache.logging.log4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Loading {} rule files using expression: {}", v, v);
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v != 0 goto label;
if v == 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.lang.String getFilename()>();
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: long contentLength()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.apache.logging.log4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("- Preparing {} ({} bytes)", v, v);
label:
v = interfaceinvoke v.<nl.basjes.parse.useragent.utils.springframework.core.io.Resource: java.lang.String getFilename()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v + 1;
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("The specified (optional) resource string is invalid: {}", v);
v = staticinvoke <java.util.Collections: java.util.Map emptyMap()>();
return v;
label:
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error reading resources: \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
return v;
catch java.io.IOException from label to label with label;
}
public static boolean isTestRulesOnlyFile(java.lang.String)
{
java.lang.String v;
boolean v, v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("-tests");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("-Tests");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml createYaml()
{
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.LoaderOptions v;
nl.basjes.parse.useragent.config.ConfigLoader v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v = new nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.LoaderOptions;
specialinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.LoaderOptions: void <init>()>();
virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.LoaderOptions: void setMaxAliasesForCollections(int)>(200);
v = new nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml;
specialinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml: void <init>(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.LoaderOptions)>(v);
return v;
}
private synchronized void loadYaml(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml, java.io.InputStream, java.lang.String)
{
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.reader.UnicodeReader v;
nl.basjes.parse.useragent.config.ConfigLoader v;
byte v;
nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException v, v;
boolean v, v, v, v, v, v, v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node v, v;
java.lang.Exception v;
java.util.List v, v;
org.apache.logging.log4j.Logger v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple v, v;
java.util.Iterator v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark v;
java.lang.Object v, v;
java.io.InputStream v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml;
v := @parameter: java.io.InputStream;
v := @parameter: java.lang.String;
label:
v = new nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.reader.UnicodeReader;
specialinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.reader.UnicodeReader: void <init>(java.io.InputStream)>(v);
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.Yaml: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node compose(java.io.Reader)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Parse error in the file \u0001: \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
if v != null goto label;
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Object)>("The file {} is empty", v);
return;
label:
staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: void requireNodeInstanceOf(java.lang.Class,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String,java.lang.String)>(class "Lnl/basjes/parse/useragent/yauaa/shaded/org/yaml/snakeyaml/nodes/MappingNode;", v, v, "File must be a Map");
v = null;
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = "config";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = "version";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
staticinvoke <nl.basjes.parse.useragent.utils.YauaaVersion: void assertSameVersion(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
return;
label:
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: void require(boolean,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String,java.lang.String)>(v, v, v, "The top level entry MUST be \'config\'.");
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode getValueAsSequenceNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: void requireNodeInstanceOf(java.lang.Class,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String,java.lang.String)>(class "Lnl/basjes/parse/useragent/yauaa/shaded/org/yaml/snakeyaml/nodes/MappingNode;", v, v, "The entry MUST be a mapping");
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple getExactlyOneNodeTuple(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode getValueAsMappingNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1097094790: goto label;
case 113762: goto label;
case 3556498: goto label;
case 840862002: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("lookup");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("set");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("matcher");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("test");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
specialinvoke v.<nl.basjes.parse.useragent.config.ConfigLoader: void loadYamlLookup(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode,java.lang.String)>(v, v);
goto label;
label:
specialinvoke v.<nl.basjes.parse.useragent.config.ConfigLoader: void loadYamlLookupSets(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode,java.lang.String)>(v, v);
goto label;
label:
specialinvoke v.<nl.basjes.parse.useragent.config.ConfigLoader: void loadYamlMatcher(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode,java.lang.String)>(v, v);
goto label;
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean keepTests>;
if v == 0 goto label;
specialinvoke v.<nl.basjes.parse.useragent.config.ConfigLoader: void loadYamlTestcase(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode,java.lang.String)>(v, v);
goto label;
label:
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark getStartMark()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark: int getLine()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Yaml config.(\u0001:\u): Found unexpected config entry: \u, allowed are \'lookup\', \'set\', \'matcher\' and \'test\'");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
private void loadYamlLookup(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode, java.lang.String)
{
nl.basjes.parse.useragent.config.ConfigLoader v;
byte v;
nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException v;
boolean v, v, v, v, v, v, v, v, v, v;
java.util.List v, v, v;
java.util.HashMap v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode v;
int v;
java.lang.String v, v, v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode v, v;
java.util.LinkedHashSet v;
java.util.Iterator v, v;
nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder v, v;
java.lang.Object v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode;
v := @parameter: java.lang.String;
v = null;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 107868: goto label;
case 3373707: goto label;
case 103785528: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("name");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("merge");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("map");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode getValueAsSequenceNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode getValueAsMappingNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("In the lookup \"\u0001\" the key \"\u0001\" appears multiple times.");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: void require(boolean,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String,java.lang.String)>(v, v, v, "Invalid lookup specified");
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder putLookupMerges(java.lang.String,java.util.Set)>(v, v);
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder putLookup(java.lang.String,java.util.Map)>(v, v);
return;
}
private void loadYamlLookupSets(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode, java.lang.String)
{
nl.basjes.parse.useragent.config.ConfigLoader v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode v, v;
byte v;
java.util.Locale v;
int v;
java.lang.String v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode v;
java.util.LinkedHashSet v, v;
boolean v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v;
nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder v, v;
java.util.List v, v, v;
java.lang.Object v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode;
v := @parameter: java.lang.String;
v = null;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -823812830: goto label;
case 3373707: goto label;
case 103785528: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("name");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("merge");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("values");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode getValueAsSequenceNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.SequenceNode getValueAsSequenceNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <java.util.Locale: java.util.Locale ROOT>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: void require(boolean,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String,java.lang.String)>(v, v, v, "Invalid lookup specified");
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder putLookupSetsMerges(java.lang.String,java.util.Set)>(v, v);
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder putLookupSets(java.lang.String,java.util.Set)>(v, v);
return;
}
private void loadYamlMatcher(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode, java.lang.String)
{
nl.basjes.parse.useragent.config.ConfigLoader v;
byte v;
java.lang.Long v;
nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine v, v, v, v;
long v;
java.util.ArrayList v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode v;
nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type v, v, v, v;
nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException v, v;
boolean v, v, v, v, v, v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node v, v, v, v;
java.util.List v, v, v, v, v;
java.lang.String[] v, v;
int v, v, v, v;
java.util.Iterator v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark v;
nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder v;
nl.basjes.parse.useragent.config.MatcherConfig v;
java.lang.Object v, v, v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode;
v := @parameter: java.lang.String;
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark getStartMark()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark: int getLine()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(16);
v = null;
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1305289599: goto label;
case -1249586564: goto label;
case -1249474914: goto label;
case 1095696741: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("options");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("variable");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("require");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("extract");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node getValueNode()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
goto label;
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node getValueNode()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String,int)>(":", 2);
v = lengthof v;
if v == 2 goto label;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid variable config line: \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v[0];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = v[1];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = new nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine;
v = <nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type: nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type VARIABLE>;
specialinvoke v.<nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine: void <init>(nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type,java.lang.String,java.lang.Long,java.lang.String)>(v, v, null, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node getValueNode()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("IsNull[");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("^IsNull\\[", "");
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("]$", "");
v = new nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine;
v = <nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type: nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type FAIL_IF_FOUND>;
specialinvoke v.<nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine: void <init>(nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type,java.lang.String,java.lang.Long,java.lang.String)>(v, null, null, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine;
v = <nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type: nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type REQUIRE>;
specialinvoke v.<nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine: void <init>(nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type,java.lang.String,java.lang.Long,java.lang.String)>(v, null, null, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node getValueNode()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String,int)>(":", 3);
v = lengthof v;
if v == 3 goto label;
v = new nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid extract config line: \u0001");
specialinvoke v.<nl.basjes.parse.useragent.analyze.InvalidParserConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v[0];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = v[1];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = v[2];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = new nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine;
v = <nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type: nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type EXTRACT>;
specialinvoke v.<nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine: void <init>(nl.basjes.parse.useragent.config.MatcherConfig$ConfigLine$Type,java.lang.String,java.lang.Long,java.lang.String)>(v, v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
v = new nl.basjes.parse.useragent.config.MatcherConfig;
specialinvoke v.<nl.basjes.parse.useragent.config.MatcherConfig: void <init>(java.lang.String,int,java.util.List,java.util.List)>(v, v, v, v);
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: void addMatcherConfigs(java.lang.String,nl.basjes.parse.useragent.config.MatcherConfig)>(v, v);
return;
}
private void loadYamlTestcase(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode, java.lang.String)
{
nl.basjes.parse.useragent.config.TestCase v;
nl.basjes.parse.useragent.config.ConfigLoader v;
byte v, v, v;
java.util.Set v;
java.util.stream.Stream v, v, v;
org.apache.logging.log4j.Logger v;
long v;
java.util.LinkedHashMap v, v;
java.util.function.BiConsumer v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode v, v, v;
java.util.Locale v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.function.Predicate v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node v;
java.util.List v, v, v, v;
java.util.function.Function v;
int v, v, v, v;
java.util.Iterator v, v, v, v;
nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark v, v;
nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder v, v;
java.lang.Object v, v, v, v, v;
v := @this: nl.basjes.parse.useragent.config.ConfigLoader;
v := @parameter: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode;
v := @parameter: java.lang.String;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean doingOnlyASingleTest>;
if v != 0 goto label;
v = null;
v = null;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1935718728: goto label;
case -1249474914: goto label;
case 3373707: goto label;
case 100358090: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("name");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("options");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("input");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("expected");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
goto label;
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node getValueNode()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.util.List getStringValues(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>("only");
if v == 0 goto label;
v.<nl.basjes.parse.useragent.config.ConfigLoader: boolean doingOnlyASingleTest> = 1;
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder clearAllTestCases()>();
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode getValueAsMappingNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1844712829: goto label;
case 3373707: goto label;
case 606067327: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("user_agent_string");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("User-Agent");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("name");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("User-Agent", v);
goto label;
label:
v = <nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void fatal(java.lang.String,java.lang.Object)>("FOUND TEST NAME IN INPUT SECTION {}", v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode getValueAsMappingNode(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: java.util.List getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getKeyAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
v = staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: java.lang.String getValueAsString(nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.NodeTuple,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = "User-Agent";
v = <java.util.Locale: java.util.Locale ROOT>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$toLowerCase__639: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$equals__640: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: long count()>();
v = v cmp 1L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <nl.basjes.parse.useragent.utils.YamlUtils: void require(boolean,nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.Node,java.lang.String,java.lang.String)>(v, v, v, "Test is missing input");
if v != null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("User-Agent");
label:
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark getStartMark()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark: int getLine()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = new nl.basjes.parse.useragent.config.TestCase;
specialinvoke v.<nl.basjes.parse.useragent.config.TestCase: void <init>(java.util.Map,java.lang.String,java.lang.String)>(v, v, v);
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <nl.basjes.parse.useragent.config.ConfigLoader$expect__641: java.util.function.BiConsumer bootstrap$(nl.basjes.parse.useragent.config.TestCase)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<nl.basjes.parse.useragent.config.TestCase: void addOption(java.lang.String)>(v);
goto label;
label:
virtualinvoke v.<nl.basjes.parse.useragent.config.TestCase: void addMetadata(java.lang.String,java.lang.String)>("filename", v);
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.nodes.MappingNode: nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark getStartMark()>();
v = virtualinvoke v.<nl.basjes.parse.useragent.yauaa.shaded.org.yaml.snakeyaml.error.Mark: int getLine()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
virtualinvoke v.<nl.basjes.parse.useragent.config.TestCase: void addMetadata(java.lang.String,java.lang.String)>("fileline", v);
v = v.<nl.basjes.parse.useragent.config.ConfigLoader: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder analyzerConfig>;
virtualinvoke v.<nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder: nl.basjes.parse.useragent.config.AnalyzerConfig$AnalyzerConfigBuilder addTestCase(nl.basjes.parse.useragent.config.TestCase)>(v);
label:
return;
}
static void <clinit>()
{
org.apache.logging.log4j.Logger v;
v = staticinvoke <org.apache.logging.log4j.LogManager: org.apache.logging.log4j.Logger getLogger(java.lang.Class)>(class "Lnl/basjes/parse/useragent/config/ConfigLoader;");
<nl.basjes.parse.useragent.config.ConfigLoader: org.apache.logging.log4j.Logger LOG> = v;
return;
}
}