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

org.openqa.selenium.devtools.v88.runtime.model.StackTrace Maven / Gradle / Ivy

package org.openqa.selenium.devtools.v88.runtime.model;

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

/**
 * Call frames for assertions or error messages.
 */
public class StackTrace {

    private final java.util.Optional description;

    private final java.util.List callFrames;

    private final java.util.Optional parent;

    private final java.util.Optional parentId;

    public StackTrace(java.util.Optional description, java.util.List callFrames, java.util.Optional parent, java.util.Optional parentId) {
        this.description = description;
        this.callFrames = java.util.Objects.requireNonNull(callFrames, "callFrames is required");
        this.parent = parent;
        this.parentId = parentId;
    }

    /**
     * String label of this stack trace. For async traces this may be a name of the function that
     * initiated the async call.
     */
    public java.util.Optional getDescription() {
        return description;
    }

    /**
     * JavaScript function name.
     */
    public java.util.List getCallFrames() {
        return callFrames;
    }

    /**
     * Asynchronous JavaScript stack trace that preceded this stack, if available.
     */
    public java.util.Optional getParent() {
        return parent;
    }

    /**
     * Asynchronous JavaScript stack trace that preceded this stack, if available.
     */
    @Beta()
    public java.util.Optional getParentId() {
        return parentId;
    }

    private static StackTrace fromJson(JsonInput input) {
        java.util.Optional description = java.util.Optional.empty();
        java.util.List callFrames = null;
        java.util.Optional parent = java.util.Optional.empty();
        java.util.Optional parentId = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "description":
                    description = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "callFrames":
                    callFrames = input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType());
                    break;
                case "parent":
                    parent = java.util.Optional.ofNullable(input.read(org.openqa.selenium.devtools.v88.runtime.model.StackTrace.class));
                    break;
                case "parentId":
                    parentId = java.util.Optional.ofNullable(input.read(org.openqa.selenium.devtools.v88.runtime.model.StackTraceId.class));
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new StackTrace(description, callFrames, parent, parentId);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy