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

org.openqa.selenium.devtools.v88.domsnapshot.model.LayoutTreeNode Maven / Gradle / Ivy

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

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

/**
 * Details of an element in the DOM tree with a LayoutObject.
 */
public class LayoutTreeNode {

    private final java.lang.Integer domNodeIndex;

    private final org.openqa.selenium.devtools.v88.dom.model.Rect boundingBox;

    private final java.util.Optional layoutText;

    private final java.util.Optional> inlineTextNodes;

    private final java.util.Optional styleIndex;

    private final java.util.Optional paintOrder;

    private final java.util.Optional isStackingContext;

    public LayoutTreeNode(java.lang.Integer domNodeIndex, org.openqa.selenium.devtools.v88.dom.model.Rect boundingBox, java.util.Optional layoutText, java.util.Optional> inlineTextNodes, java.util.Optional styleIndex, java.util.Optional paintOrder, java.util.Optional isStackingContext) {
        this.domNodeIndex = java.util.Objects.requireNonNull(domNodeIndex, "domNodeIndex is required");
        this.boundingBox = java.util.Objects.requireNonNull(boundingBox, "boundingBox is required");
        this.layoutText = layoutText;
        this.inlineTextNodes = inlineTextNodes;
        this.styleIndex = styleIndex;
        this.paintOrder = paintOrder;
        this.isStackingContext = isStackingContext;
    }

    /**
     * The index of the related DOM node in the `domNodes` array returned by `getSnapshot`.
     */
    public java.lang.Integer getDomNodeIndex() {
        return domNodeIndex;
    }

    /**
     * The bounding box in document coordinates. Note that scroll offset of the document is ignored.
     */
    public org.openqa.selenium.devtools.v88.dom.model.Rect getBoundingBox() {
        return boundingBox;
    }

    /**
     * Contents of the LayoutText, if any.
     */
    public java.util.Optional getLayoutText() {
        return layoutText;
    }

    /**
     * The post-layout inline text nodes, if any.
     */
    public java.util.Optional> getInlineTextNodes() {
        return inlineTextNodes;
    }

    /**
     * Index into the `computedStyles` array returned by `getSnapshot`.
     */
    public java.util.Optional getStyleIndex() {
        return styleIndex;
    }

    /**
     * Global paint order index, which is determined by the stacking order of the nodes. Nodes
     * that are painted together will have the same index. Only provided if includePaintOrder in
     * getSnapshot was true.
     */
    public java.util.Optional getPaintOrder() {
        return paintOrder;
    }

    /**
     * Set to true to indicate the element begins a new stacking context.
     */
    public java.util.Optional getIsStackingContext() {
        return isStackingContext;
    }

    private static LayoutTreeNode fromJson(JsonInput input) {
        java.lang.Integer domNodeIndex = 0;
        org.openqa.selenium.devtools.v88.dom.model.Rect boundingBox = null;
        java.util.Optional layoutText = java.util.Optional.empty();
        java.util.Optional> inlineTextNodes = java.util.Optional.empty();
        java.util.Optional styleIndex = java.util.Optional.empty();
        java.util.Optional paintOrder = java.util.Optional.empty();
        java.util.Optional isStackingContext = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "domNodeIndex":
                    domNodeIndex = input.nextNumber().intValue();
                    break;
                case "boundingBox":
                    boundingBox = input.read(org.openqa.selenium.devtools.v88.dom.model.Rect.class);
                    break;
                case "layoutText":
                    layoutText = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "inlineTextNodes":
                    inlineTextNodes = java.util.Optional.ofNullable(input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType()));
                    break;
                case "styleIndex":
                    styleIndex = java.util.Optional.ofNullable(input.nextNumber().intValue());
                    break;
                case "paintOrder":
                    paintOrder = java.util.Optional.ofNullable(input.nextNumber().intValue());
                    break;
                case "isStackingContext":
                    isStackingContext = java.util.Optional.ofNullable(input.nextBoolean());
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new LayoutTreeNode(domNodeIndex, boundingBox, layoutText, inlineTextNodes, styleIndex, paintOrder, isStackingContext);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy