.class public Lcom/google/firebase/perf/metrics/TraceMetricBuilder; .super Ljava/lang/Object; .source "SourceFile" # instance fields .field public final trace:Lcom/google/firebase/perf/metrics/Trace; # direct methods .method public constructor (Lcom/google/firebase/perf/metrics/Trace;)V .locals 0 .line 33 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; return-void .end method # virtual methods .method public build()Lcom/google/firebase/perf/v1/TraceMetric; .locals 6 .line 39 invoke-static {}, Lcom/google/firebase/perf/v1/TraceMetric;->newBuilder()Lcom/google/firebase/perf/v1/TraceMetric$Builder; move-result-object v0 iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 40 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getName()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->setName(Ljava/lang/String;)Lcom/google/firebase/perf/v1/TraceMetric$Builder; move-result-object v0 iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 41 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getStartTime()Lcom/google/firebase/perf/util/Timer; move-result-object v1 invoke-virtual {v1}, Lcom/google/firebase/perf/util/Timer;->getMicros()J move-result-wide v1 invoke-virtual {v0, v1, v2}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->setClientStartTimeUs(J)Lcom/google/firebase/perf/v1/TraceMetric$Builder; move-result-object v0 iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 42 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getStartTime()Lcom/google/firebase/perf/util/Timer; move-result-object v1 iget-object v2, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; invoke-virtual {v2}, Lcom/google/firebase/perf/metrics/Trace;->getEndTime()Lcom/google/firebase/perf/util/Timer; move-result-object v2 invoke-virtual {v1, v2}, Lcom/google/firebase/perf/util/Timer;->getDurationMicros(Lcom/google/firebase/perf/util/Timer;)J move-result-wide v1 invoke-virtual {v0, v1, v2}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->setDurationUs(J)Lcom/google/firebase/perf/v1/TraceMetric$Builder; move-result-object v0 iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 43 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getCounters()Ljava/util/Map; move-result-object v1 .line 45 invoke-interface {v1}, Ljava/util/Map;->values()Ljava/util/Collection; move-result-object v1 invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_0 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_0 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/firebase/perf/metrics/Counter; .line 46 invoke-virtual {v2}, Lcom/google/firebase/perf/metrics/Counter;->getName()Ljava/lang/String; move-result-object v3 invoke-virtual {v2}, Lcom/google/firebase/perf/metrics/Counter;->getCount()J move-result-wide v4 invoke-virtual {v0, v3, v4, v5}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->putCounters(Ljava/lang/String;J)Lcom/google/firebase/perf/v1/TraceMetric$Builder; goto :goto_0 :cond_0 iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 49 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getSubtraces()Ljava/util/List; move-result-object v1 .line 50 invoke-interface {v1}, Ljava/util/List;->isEmpty()Z move-result v2 if-nez v2, :cond_1 .line 51 invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_1 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_1 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/firebase/perf/metrics/Trace; .line 52 new-instance v3, Lcom/google/firebase/perf/metrics/TraceMetricBuilder; invoke-direct {v3, v2}, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->(Lcom/google/firebase/perf/metrics/Trace;)V invoke-virtual {v3}, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->build()Lcom/google/firebase/perf/v1/TraceMetric; move-result-object v2 invoke-virtual {v0, v2}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->addSubtraces(Lcom/google/firebase/perf/v1/TraceMetric;)Lcom/google/firebase/perf/v1/TraceMetric$Builder; goto :goto_1 :cond_1 iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 56 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getAttributes()Ljava/util/Map; move-result-object v1 invoke-virtual {v0, v1}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->putAllCustomAttributes(Ljava/util/Map;)Lcom/google/firebase/perf/v1/TraceMetric$Builder; iget-object v1, p0, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->trace:Lcom/google/firebase/perf/metrics/Trace; .line 59 invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/Trace;->getSessions()Ljava/util/List; move-result-object v1 invoke-static {v1}, Lcom/google/firebase/perf/session/PerfSession;->buildAndSort(Ljava/util/List;)[Lcom/google/firebase/perf/v1/PerfSession; move-result-object v1 if-eqz v1, :cond_2 .line 61 invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v1 invoke-virtual {v0, v1}, Lcom/google/firebase/perf/v1/TraceMetric$Builder;->addAllPerfSessions(Ljava/lang/Iterable;)Lcom/google/firebase/perf/v1/TraceMetric$Builder; .line 64 :cond_2 invoke-virtual {v0}, Lcom/google/protobuf/GeneratedMessageLite$Builder;->build()Lcom/google/protobuf/GeneratedMessageLite; move-result-object v0 check-cast v0, Lcom/google/firebase/perf/v1/TraceMetric; return-object v0 .end method