All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openqa.selenium.devtools.v90.profiler.model.ProfileNode Maven / Gradle / Ivy

Go to download

Selenium automates browsers. That's it! What you do with that power is entirely up to you.

There is a newer version: 4.0.0-beta-4
Show newest version
package org.openqa.selenium.devtools.v90.profiler.model;

import org.openqa.selenium.Beta;
import org.openqa.selenium.json.JsonInput;

/**
 * Profile node. Holds callsite information, execution statistics and child nodes.
 */
public class ProfileNode {

    private final java.lang.Integer id;

    private final org.openqa.selenium.devtools.v90.runtime.model.CallFrame callFrame;

    private final java.util.Optional hitCount;

    private final java.util.Optional> children;

    private final java.util.Optional deoptReason;

    private final java.util.Optional> positionTicks;

    public ProfileNode(java.lang.Integer id, org.openqa.selenium.devtools.v90.runtime.model.CallFrame callFrame, java.util.Optional hitCount, java.util.Optional> children, java.util.Optional deoptReason, java.util.Optional> positionTicks) {
        this.id = java.util.Objects.requireNonNull(id, "id is required");
        this.callFrame = java.util.Objects.requireNonNull(callFrame, "callFrame is required");
        this.hitCount = hitCount;
        this.children = children;
        this.deoptReason = deoptReason;
        this.positionTicks = positionTicks;
    }

    /**
     * Unique id of the node.
     */
    public java.lang.Integer getId() {
        return id;
    }

    /**
     * Function location.
     */
    public org.openqa.selenium.devtools.v90.runtime.model.CallFrame getCallFrame() {
        return callFrame;
    }

    /**
     * Number of samples where this node was on top of the call stack.
     */
    public java.util.Optional getHitCount() {
        return hitCount;
    }

    /**
     * Child node ids.
     */
    public java.util.Optional> getChildren() {
        return children;
    }

    /**
     * The reason of being not optimized. The function may be deoptimized or marked as don't
     * optimize.
     */
    public java.util.Optional getDeoptReason() {
        return deoptReason;
    }

    /**
     * An array of source position ticks.
     */
    public java.util.Optional> getPositionTicks() {
        return positionTicks;
    }

    private static ProfileNode fromJson(JsonInput input) {
        java.lang.Integer id = 0;
        org.openqa.selenium.devtools.v90.runtime.model.CallFrame callFrame = null;
        java.util.Optional hitCount = java.util.Optional.empty();
        java.util.Optional> children = java.util.Optional.empty();
        java.util.Optional deoptReason = java.util.Optional.empty();
        java.util.Optional> positionTicks = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "id":
                    id = input.nextNumber().intValue();
                    break;
                case "callFrame":
                    callFrame = input.read(org.openqa.selenium.devtools.v90.runtime.model.CallFrame.class);
                    break;
                case "hitCount":
                    hitCount = java.util.Optional.ofNullable(input.nextNumber().intValue());
                    break;
                case "children":
                    children = java.util.Optional.ofNullable(input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType()));
                    break;
                case "deoptReason":
                    deoptReason = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "positionTicks":
                    positionTicks = java.util.Optional.ofNullable(input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType()));
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new ProfileNode(id, callFrame, hitCount, children, deoptReason, positionTicks);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy