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

org.openqa.selenium.devtools.v88.css.model.CSSMedia Maven / Gradle / Ivy

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

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

/**
 * CSS media rule descriptor.
 */
public class CSSMedia {

    public enum Source {

        MEDIARULE("mediaRule"), IMPORTRULE("importRule"), LINKEDSHEET("linkedSheet"), INLINESHEET("inlineSheet");

        private String value;

        Source(String value) {
            this.value = value;
        }

        public static Source fromString(String s) {
            return java.util.Arrays.stream(Source.values()).filter(rs -> rs.value.equalsIgnoreCase(s)).findFirst().orElseThrow(() -> new org.openqa.selenium.devtools.DevToolsException("Given value " + s + " is not found within Source "));
        }

        public String toString() {
            return value;
        }

        public String toJson() {
            return value;
        }

        private static Source fromJson(JsonInput input) {
            return fromString(input.nextString());
        }
    }

    private final java.lang.String text;

    private final Source source;

    private final java.util.Optional sourceURL;

    private final java.util.Optional range;

    private final java.util.Optional styleSheetId;

    private final java.util.Optional> mediaList;

    public CSSMedia(java.lang.String text, Source source, java.util.Optional sourceURL, java.util.Optional range, java.util.Optional styleSheetId, java.util.Optional> mediaList) {
        this.text = java.util.Objects.requireNonNull(text, "text is required");
        this.source = java.util.Objects.requireNonNull(source, "source is required");
        this.sourceURL = sourceURL;
        this.range = range;
        this.styleSheetId = styleSheetId;
        this.mediaList = mediaList;
    }

    /**
     * Media query text.
     */
    public java.lang.String getText() {
        return text;
    }

    /**
     * Source of the media query: "mediaRule" if specified by a @media rule, "importRule" if
     * specified by an @import rule, "linkedSheet" if specified by a "media" attribute in a linked
     * stylesheet's LINK tag, "inlineSheet" if specified by a "media" attribute in an inline
     * stylesheet's STYLE tag.
     */
    public Source getSource() {
        return source;
    }

    /**
     * URL of the document containing the media query description.
     */
    public java.util.Optional getSourceURL() {
        return sourceURL;
    }

    /**
     * The associated rule (@media or @import) header range in the enclosing stylesheet (if
     * available).
     */
    public java.util.Optional getRange() {
        return range;
    }

    /**
     * Identifier of the stylesheet containing this object (if exists).
     */
    public java.util.Optional getStyleSheetId() {
        return styleSheetId;
    }

    /**
     * Array of media queries.
     */
    public java.util.Optional> getMediaList() {
        return mediaList;
    }

    private static CSSMedia fromJson(JsonInput input) {
        java.lang.String text = null;
        Source source = null;
        java.util.Optional sourceURL = java.util.Optional.empty();
        java.util.Optional range = java.util.Optional.empty();
        java.util.Optional styleSheetId = java.util.Optional.empty();
        java.util.Optional> mediaList = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "text":
                    text = input.nextString();
                    break;
                case "source":
                    source = Source.fromString(input.nextString());
                    break;
                case "sourceURL":
                    sourceURL = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "range":
                    range = java.util.Optional.ofNullable(input.read(org.openqa.selenium.devtools.v88.css.model.SourceRange.class));
                    break;
                case "styleSheetId":
                    styleSheetId = java.util.Optional.ofNullable(input.read(org.openqa.selenium.devtools.v88.css.model.StyleSheetId.class));
                    break;
                case "mediaList":
                    mediaList = java.util.Optional.ofNullable(input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType()));
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new CSSMedia(text, source, sourceURL, range, styleSheetId, mediaList);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy