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

org.openqa.selenium.devtools.css.model.CSSRule 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-rc-1
Show newest version
package org.openqa.selenium.devtools.css.model;

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

/**
 * CSS rule representation.
 */
public class CSSRule {

    private final java.util.Optional styleSheetId;

    private final org.openqa.selenium.devtools.css.model.SelectorList selectorList;

    private final org.openqa.selenium.devtools.css.model.StyleSheetOrigin origin;

    private final org.openqa.selenium.devtools.css.model.CSSStyle style;

    private final java.util.Optional> media;

    public CSSRule(java.util.Optional styleSheetId, org.openqa.selenium.devtools.css.model.SelectorList selectorList, org.openqa.selenium.devtools.css.model.StyleSheetOrigin origin, org.openqa.selenium.devtools.css.model.CSSStyle style, java.util.Optional> media) {
        this.styleSheetId = styleSheetId;
        this.selectorList = java.util.Objects.requireNonNull(selectorList, "selectorList is required");
        this.origin = java.util.Objects.requireNonNull(origin, "origin is required");
        this.style = java.util.Objects.requireNonNull(style, "style is required");
        this.media = media;
    }

    /**
     * The css style sheet identifier (absent for user agent stylesheet and user-specified
     * stylesheet rules) this rule came from.
     */
    public java.util.Optional getStyleSheetId() {
        return styleSheetId;
    }

    /**
     * Rule selector data.
     */
    public org.openqa.selenium.devtools.css.model.SelectorList getSelectorList() {
        return selectorList;
    }

    /**
     * Parent stylesheet's origin.
     */
    public org.openqa.selenium.devtools.css.model.StyleSheetOrigin getOrigin() {
        return origin;
    }

    /**
     * Associated style declaration.
     */
    public org.openqa.selenium.devtools.css.model.CSSStyle getStyle() {
        return style;
    }

    /**
     * Media list array (for rules involving media queries). The array enumerates media queries
     * starting with the innermost one, going outwards.
     */
    public java.util.Optional> getMedia() {
        return media;
    }

    private static CSSRule fromJson(JsonInput input) {
        java.util.Optional styleSheetId = java.util.Optional.empty();
        org.openqa.selenium.devtools.css.model.SelectorList selectorList = null;
        org.openqa.selenium.devtools.css.model.StyleSheetOrigin origin = null;
        org.openqa.selenium.devtools.css.model.CSSStyle style = null;
        java.util.Optional> media = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "styleSheetId":
                    styleSheetId = java.util.Optional.ofNullable(input.read(org.openqa.selenium.devtools.css.model.StyleSheetId.class));
                    break;
                case "selectorList":
                    selectorList = input.read(org.openqa.selenium.devtools.css.model.SelectorList.class);
                    break;
                case "origin":
                    origin = input.read(org.openqa.selenium.devtools.css.model.StyleSheetOrigin.class);
                    break;
                case "style":
                    style = input.read(org.openqa.selenium.devtools.css.model.CSSStyle.class);
                    break;
                case "media":
                    media = java.util.Optional.ofNullable(input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType()));
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new CSSRule(styleSheetId, selectorList, origin, style, media);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy