public class org.apache.kafkaesque.common.replica.RackAwareReplicaSelector extends java.lang.Object implements org.apache.kafkaesque.common.replica.ReplicaSelector
{
public void <init>()
{
org.apache.kafkaesque.common.replica.RackAwareReplicaSelector v;
v := @this: org.apache.kafkaesque.common.replica.RackAwareReplicaSelector;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public java.util.Optional select(org.apache.kafkaesque.common.TopicPartition, org.apache.kafkaesque.common.replica.ClientMetadata, org.apache.kafkaesque.common.replica.PartitionView)
{
org.apache.kafkaesque.common.replica.ReplicaView v, v, v, v;
org.apache.kafkaesque.common.TopicPartition v;
java.lang.String v, v;
java.util.stream.Collector v;
boolean v, v, v;
org.apache.kafkaesque.common.replica.PartitionView v;
java.util.function.Predicate v;
java.util.Set v;
org.apache.kafkaesque.common.replica.RackAwareReplicaSelector v;
org.apache.kafkaesque.common.replica.ClientMetadata v;
java.util.stream.Stream v, v, v;
java.util.Optional v, v, v, v;
java.lang.Object v;
java.util.Comparator v;
v := @this: org.apache.kafkaesque.common.replica.RackAwareReplicaSelector;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v := @parameter: org.apache.kafkaesque.common.replica.ClientMetadata;
v := @parameter: org.apache.kafkaesque.common.replica.PartitionView;
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.ClientMetadata: java.lang.String rackId()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.ClientMetadata: java.lang.String rackId()>();
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.PartitionView: java.util.Set replicas()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.kafkaesque.common.replica.RackAwareReplicaSelector$lambda_select_0__441: java.util.function.Predicate bootstrap$(org.apache.kafkaesque.common.replica.ClientMetadata)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(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 = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.PartitionView: org.apache.kafkaesque.common.replica.ReplicaView leader()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.PartitionView: org.apache.kafkaesque.common.replica.ReplicaView leader()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.PartitionView: org.apache.kafkaesque.common.replica.ReplicaView leader()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.kafkaesque.common.replica.ReplicaView: java.util.Comparator comparator()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.Optional max(java.util.Comparator)>(v);
return v;
label:
v = interfaceinvoke v.<org.apache.kafkaesque.common.replica.PartitionView: org.apache.kafkaesque.common.replica.ReplicaView leader()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
}
}