public final class org.eclipse.aether.util.graph.transformer.ConflictResolver extends java.lang.Object implements org.eclipse.aether.collection.DependencyGraphTransformer
{
public static final java.lang.String CONFIG_PROP_VERBOSE;
public static final java.lang.String NODE_DATA_WINNER;
public static final java.lang.String NODE_DATA_ORIGINAL_SCOPE;
public static final java.lang.String NODE_DATA_ORIGINAL_OPTIONALITY;
private final org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector versionSelector;
private final org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector scopeSelector;
private final org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver scopeDeriver;
private final org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector optionalitySelector;
private static org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity getVerbosity(org.eclipse.aether.RepositorySystemSession)
{
org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity v, v, v;
java.lang.IllegalArgumentException v;
org.eclipse.aether.RepositorySystemSession v;
java.util.Map v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v, v, v, v;
v := @parameter: org.eclipse.aether.RepositorySystemSession;
v = interfaceinvoke v.<org.eclipse.aether.RepositorySystemSession: java.util.Map getConfigProperties()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("aether.conflictResolver.verbose");
v = v instanceof java.lang.Boolean;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity STANDARD>;
goto label;
label:
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity NONE>;
label:
return v;
label:
v = v instanceof java.lang.String;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
if v == 0 goto label;
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity STANDARD>;
goto label;
label:
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity NONE>;
label:
return v;
label:
v = v instanceof org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity;
if v == 0 goto label;
return v;
label:
if v == null goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Unsupported Verbosity configuration: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity NONE>;
return v;
}
public void <init>(org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector, org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector, org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector, org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver)
{
org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector v;
org.eclipse.aether.util.graph.transformer.ConflictResolver v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector v;
java.lang.Object v, v, v, v;
v := @this: org.eclipse.aether.util.graph.transformer.ConflictResolver;
v := @parameter: org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector;
v := @parameter: org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector;
v := @parameter: org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector;
v := @parameter: org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "version selector cannot be null");
v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector versionSelector> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "scope selector cannot be null");
v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector scopeSelector> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "optionality selector cannot be null");
v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector optionalitySelector> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "scope deriver cannot be null");
v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeDeriver scopeDeriver> = v;
return;
}
public org.eclipse.aether.graph.DependencyNode transformGraph(org.eclipse.aether.graph.DependencyNode, org.eclipse.aether.collection.DependencyGraphTransformationContext) throws org.eclipse.aether.RepositoryException
{
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector v;
java.lang.Integer v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector v;
java.lang.Long v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem v, v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$State v;
org.eclipse.aether.graph.Dependency v, v;
long v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector v;
java.lang.String v, v, v;
org.eclipse.aether.RepositoryException v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver v;
boolean v, v, v, v, v, v, v;
java.util.List v, v;
org.eclipse.aether.collection.DependencyGraphTransformationContext v;
java.util.HashMap v;
java.util.function.Function v;
int v, v;
java.lang.Boolean v, v;
java.util.Iterator v, v, v;
org.eclipse.aether.graph.DependencyNode v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity v, v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictIdSorter v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.eclipse.aether.util.graph.transformer.ConflictResolver;
v := @parameter: org.eclipse.aether.graph.DependencyNode;
v := @parameter: org.eclipse.aether.collection.DependencyGraphTransformationContext;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "node cannot be null");
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "context cannot be null");
v = <org.eclipse.aether.util.graph.transformer.TransformationContextKeys: java.lang.Object SORTED_CONFLICT_IDS>;
v = interfaceinvoke v.<org.eclipse.aether.collection.DependencyGraphTransformationContext: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.eclipse.aether.util.graph.transformer.ConflictIdSorter;
specialinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictIdSorter: void <init>()>();
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictIdSorter: org.eclipse.aether.graph.DependencyNode transformGraph(org.eclipse.aether.graph.DependencyNode,org.eclipse.aether.collection.DependencyGraphTransformationContext)>(v, v);
v = <org.eclipse.aether.util.graph.transformer.TransformationContextKeys: java.lang.Object SORTED_CONFLICT_IDS>;
interfaceinvoke v.<org.eclipse.aether.collection.DependencyGraphTransformationContext: java.lang.Object get(java.lang.Object)>(v);
label:
v = <org.eclipse.aether.util.graph.transformer.TransformationContextKeys: java.lang.Object STATS>;
v = interfaceinvoke v.<org.eclipse.aether.collection.DependencyGraphTransformationContext: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.lang.System: long nanoTime()>();
v = <org.eclipse.aether.util.graph.transformer.TransformationContextKeys: java.lang.Object CYCLIC_CONFLICT_IDS>;
v = interfaceinvoke v.<org.eclipse.aether.collection.DependencyGraphTransformationContext: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.eclipse.aether.RepositoryException;
specialinvoke v.<org.eclipse.aether.RepositoryException: void <init>(java.lang.String)>("conflict id cycles have not been identified");
throw v;
label:
v = <org.eclipse.aether.util.graph.transformer.TransformationContextKeys: java.lang.Object CONFLICT_IDS>;
v = interfaceinvoke v.<org.eclipse.aether.collection.DependencyGraphTransformationContext: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.eclipse.aether.RepositoryException;
specialinvoke v.<org.eclipse.aether.RepositoryException: void <init>(java.lang.String)>("conflict groups have not been identified");
throw v;
label:
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = interfaceinvoke v.<java.util.Collection: 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 = interfaceinvoke v.<java.util.Collection: 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 <org.eclipse.aether.util.graph.transformer.ConflictResolver$lambda_transformGraph_0__8: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
interfaceinvoke v.<java.util.Collection: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = new org.eclipse.aether.util.graph.transformer.ConflictResolver$State;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void <init>(org.eclipse.aether.util.graph.transformer.ConflictResolver,org.eclipse.aether.graph.DependencyNode,java.util.Map,int,org.eclipse.aether.collection.DependencyGraphTransformationContext)>(v, v, v, 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 = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void prepare(java.lang.Object,java.util.Collection)>(v, v);
specialinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: boolean gatherConflictItems(org.eclipse.aether.graph.DependencyNode,org.eclipse.aether.util.graph.transformer.ConflictResolver$State)>(v, v);
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void finish()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: java.util.List items>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext conflictCtx>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector versionSelector>;
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$VersionSelector: void selectVersion(org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext)>(v);
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner>;
if v != null goto label;
v = new org.eclipse.aether.RepositoryException;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: java.util.List items>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(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[])>("conflict resolver did not select winner among \u0001");
specialinvoke v.<org.eclipse.aether.RepositoryException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector scopeSelector>;
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ScopeSelector: void selectScope(org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext)>(v);
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity NONE>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity verbosity>;
if v == v goto label;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.graph.Dependency getDependency()>();
v = virtualinvoke v.<org.eclipse.aether.graph.Dependency: java.lang.String getScope()>();
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setData(java.lang.Object,java.lang.Object)>("conflict.originalScope", v);
label:
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: java.lang.String scope>;
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setScope(java.lang.String)>(v);
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector optionalitySelector>;
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$OptionalitySelector: void selectOptionality(org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext)>(v);
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity NONE>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity verbosity>;
if v == v goto label;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.graph.Dependency getDependency()>();
v = virtualinvoke v.<org.eclipse.aether.graph.Dependency: boolean isOptional()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setData(java.lang.Object,java.lang.Object)>("conflict.originalOptionality", v);
label:
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: java.lang.Boolean optional>;
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setOptional(java.lang.Boolean)>(v);
staticinvoke <org.eclipse.aether.util.graph.transformer.ConflictResolver: void removeLosers(org.eclipse.aether.util.graph.transformer.ConflictResolver$State)>(v);
label:
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void winner()>();
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext conflictCtx>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner>;
if v == null goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext conflictCtx>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node>;
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void prepare(java.lang.Object,java.util.Collection)>(v, null);
specialinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: boolean gatherConflictItems(org.eclipse.aether.graph.DependencyNode,org.eclipse.aether.util.graph.transformer.ConflictResolver$State)>(v, v);
goto label;
label:
if v == null goto label;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("ConflictResolver.totalTime", v);
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: int totalConflictItems>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("ConflictResolver.conflictItemCount", v);
label:
return v;
}
private boolean gatherConflictItems(org.eclipse.aether.graph.DependencyNode, org.eclipse.aether.util.graph.transformer.ConflictResolver$State) throws org.eclipse.aether.RepositoryException
{
org.eclipse.aether.util.graph.transformer.ConflictResolver$State v;
java.util.Iterator v;
org.eclipse.aether.graph.DependencyNode v;
java.util.List v;
java.util.Map v;
org.eclipse.aether.util.graph.transformer.ConflictResolver v;
java.lang.Object v, v, v;
boolean v, v, v, v, v;
v := @this: org.eclipse.aether.util.graph.transformer.ConflictResolver;
v := @parameter: org.eclipse.aether.graph.DependencyNode;
v := @parameter: org.eclipse.aether.util.graph.transformer.ConflictResolver$State;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: java.util.Map conflictIds>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: java.lang.Object currentId>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void add(org.eclipse.aether.graph.DependencyNode)>(v);
goto label;
label:
v = virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: boolean loser(org.eclipse.aether.graph.DependencyNode,java.lang.Object)>(v, v);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: boolean push(org.eclipse.aether.graph.DependencyNode,java.lang.Object)>(v, v);
if v == 0 goto label;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: java.util.List getChildren()>();
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 = specialinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver: boolean gatherConflictItems(org.eclipse.aether.graph.DependencyNode,org.eclipse.aether.util.graph.transformer.ConflictResolver$State)>(v, v);
if v != 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: void pop()>();
label:
return 1;
}
private static void removeLosers(org.eclipse.aether.util.graph.transformer.ConflictResolver$State)
{
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext v;
java.util.ListIterator v;
byte v;
boolean v, v, v, v, v, v, v, v;
java.util.Collection v;
org.eclipse.aether.artifact.Artifact v, v, v, v;
java.util.List v, v, v, v, v, v, v, v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$State v;
org.eclipse.aether.graph.Dependency v, v;
long v;
java.util.HashSet v;
java.lang.Boolean v;
java.lang.String v, v, v, v;
java.util.Iterator v, v, v;
org.eclipse.aether.graph.DependencyNode v, v, v, v;
org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity v, v, v, v, v, v;
org.eclipse.aether.graph.DefaultDependencyNode v;
java.lang.Object v, v, v, v, v;
v := @parameter: org.eclipse.aether.util.graph.transformer.ConflictResolver$State;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext conflictCtx>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext: org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem winner>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node>;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.artifact.Artifact getArtifact()>();
v = staticinvoke <org.eclipse.aether.util.artifact.ArtifactIdUtils: java.lang.String toId(org.eclipse.aether.artifact.Artifact)>(v);
v = null;
v = null;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: java.util.List items>;
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()>();
if v == v goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
if v == v goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
v = interfaceinvoke v.<java.util.List: java.util.ListIterator listIterator()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
label:
v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.ListIterator: java.lang.Object next()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node>;
if v != v goto label;
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity NONE>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity verbosity>;
if v != v goto label;
interfaceinvoke v.<java.util.ListIterator: void remove()>();
goto label;
label:
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity STANDARD>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity verbosity>;
if v != v goto label;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.artifact.Artifact getArtifact()>();
v = staticinvoke <org.eclipse.aether.util.artifact.ArtifactIdUtils: java.lang.String toId(org.eclipse.aether.artifact.Artifact)>(v);
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
label:
v = new org.eclipse.aether.graph.DefaultDependencyNode;
specialinvoke v.<org.eclipse.aether.graph.DefaultDependencyNode: void <init>(org.eclipse.aether.graph.DependencyNode)>(v);
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node>;
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setData(java.lang.Object,java.lang.Object)>("conflict.winner", v);
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.graph.Dependency getDependency()>();
v = virtualinvoke v.<org.eclipse.aether.graph.Dependency: java.lang.String getScope()>();
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setData(java.lang.Object,java.lang.Object)>("conflict.originalScope", v);
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.graph.Dependency getDependency()>();
v = virtualinvoke v.<org.eclipse.aether.graph.Dependency: boolean isOptional()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setData(java.lang.Object,java.lang.Object)>("conflict.originalOptionality", v);
v = virtualinvoke v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.Collection getScopes()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setScope(java.lang.String)>(v);
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: void setChildren(java.util.List)>(v);
interfaceinvoke v.<java.util.ListIterator: void set(java.lang.Object)>(v);
v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node> = v;
goto label;
label:
v = <org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity STANDARD>;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: org.eclipse.aether.util.graph.transformer.ConflictResolver$Verbosity verbosity>;
if v != v goto label;
v = virtualinvoke v.<java.util.HashSet: boolean isEmpty()>();
if v != 0 goto label;
v = null;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$State: java.util.List items>;
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()>();
if v == v goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
if v == v goto label;
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
v = interfaceinvoke v.<java.util.List: java.util.ListIterator listIterator()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
label:
v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.ListIterator: java.lang.Object next()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: org.eclipse.aether.graph.DependencyNode node>;
if v != v goto label;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.artifact.Artifact getArtifact()>();
v = staticinvoke <org.eclipse.aether.util.artifact.ArtifactIdUtils: java.lang.String toId(org.eclipse.aether.artifact.Artifact)>(v);
v = virtualinvoke v.<java.util.HashSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.eclipse.aether.graph.DependencyNode: org.eclipse.aether.artifact.Artifact getArtifact()>();
v = v.<org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictItem: java.util.List parent>;
v = staticinvoke <org.eclipse.aether.util.graph.transformer.ConflictResolver: long relatedSiblingsCount(org.eclipse.aether.artifact.Artifact,java.util.List)>(v, v);
v = v cmp 1L;
if v <= 0 goto label;
interfaceinvoke v.<java.util.ListIterator: void remove()>();
goto label;
label:
return;
}
private static long relatedSiblingsCount(org.eclipse.aether.artifact.Artifact, java.util.List)
{
java.util.function.Predicate v;
org.eclipse.aether.artifact.Artifact v;
long v;
java.util.function.Function v;
java.util.List v;
java.util.stream.Stream v, v, v;
java.lang.String v, v, v;
v := @parameter: org.eclipse.aether.artifact.Artifact;
v := @parameter: java.util.List;
v = interfaceinvoke v.<org.eclipse.aether.artifact.Artifact: java.lang.String getGroupId()>();
v = interfaceinvoke v.<org.eclipse.aether.artifact.Artifact: java.lang.String getArtifactId()>();
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[])>("\u0001:\u0001");
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.eclipse.aether.util.graph.transformer.ConflictResolver$getArtifact__9: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.eclipse.aether.util.graph.transformer.ConflictResolver$lambda_relatedSiblingsCount_1__10: 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()>();
return v;
}
}