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

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

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

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

/**
 * Properties of a web font: https://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#font-descriptions
 * and additional information such as platformFontFamily and fontVariationAxes.
 */
public class FontFace {

    private final java.lang.String fontFamily;

    private final java.lang.String fontStyle;

    private final java.lang.String fontVariant;

    private final java.lang.String fontWeight;

    private final java.lang.String fontStretch;

    private final java.lang.String unicodeRange;

    private final java.lang.String src;

    private final java.lang.String platformFontFamily;

    private final java.util.Optional> fontVariationAxes;

    public FontFace(java.lang.String fontFamily, java.lang.String fontStyle, java.lang.String fontVariant, java.lang.String fontWeight, java.lang.String fontStretch, java.lang.String unicodeRange, java.lang.String src, java.lang.String platformFontFamily, java.util.Optional> fontVariationAxes) {
        this.fontFamily = java.util.Objects.requireNonNull(fontFamily, "fontFamily is required");
        this.fontStyle = java.util.Objects.requireNonNull(fontStyle, "fontStyle is required");
        this.fontVariant = java.util.Objects.requireNonNull(fontVariant, "fontVariant is required");
        this.fontWeight = java.util.Objects.requireNonNull(fontWeight, "fontWeight is required");
        this.fontStretch = java.util.Objects.requireNonNull(fontStretch, "fontStretch is required");
        this.unicodeRange = java.util.Objects.requireNonNull(unicodeRange, "unicodeRange is required");
        this.src = java.util.Objects.requireNonNull(src, "src is required");
        this.platformFontFamily = java.util.Objects.requireNonNull(platformFontFamily, "platformFontFamily is required");
        this.fontVariationAxes = fontVariationAxes;
    }

    /**
     * The font-family.
     */
    public java.lang.String getFontFamily() {
        return fontFamily;
    }

    /**
     * The font-style.
     */
    public java.lang.String getFontStyle() {
        return fontStyle;
    }

    /**
     * The font-variant.
     */
    public java.lang.String getFontVariant() {
        return fontVariant;
    }

    /**
     * The font-weight.
     */
    public java.lang.String getFontWeight() {
        return fontWeight;
    }

    /**
     * The font-stretch.
     */
    public java.lang.String getFontStretch() {
        return fontStretch;
    }

    /**
     * The unicode-range.
     */
    public java.lang.String getUnicodeRange() {
        return unicodeRange;
    }

    /**
     * The src.
     */
    public java.lang.String getSrc() {
        return src;
    }

    /**
     * The resolved platform font family
     */
    public java.lang.String getPlatformFontFamily() {
        return platformFontFamily;
    }

    /**
     * Available variation settings (a.k.a. "axes").
     */
    public java.util.Optional> getFontVariationAxes() {
        return fontVariationAxes;
    }

    private static FontFace fromJson(JsonInput input) {
        java.lang.String fontFamily = null;
        java.lang.String fontStyle = null;
        java.lang.String fontVariant = null;
        java.lang.String fontWeight = null;
        java.lang.String fontStretch = null;
        java.lang.String unicodeRange = null;
        java.lang.String src = null;
        java.lang.String platformFontFamily = null;
        java.util.Optional> fontVariationAxes = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "fontFamily":
                    fontFamily = input.nextString();
                    break;
                case "fontStyle":
                    fontStyle = input.nextString();
                    break;
                case "fontVariant":
                    fontVariant = input.nextString();
                    break;
                case "fontWeight":
                    fontWeight = input.nextString();
                    break;
                case "fontStretch":
                    fontStretch = input.nextString();
                    break;
                case "unicodeRange":
                    unicodeRange = input.nextString();
                    break;
                case "src":
                    src = input.nextString();
                    break;
                case "platformFontFamily":
                    platformFontFamily = input.nextString();
                    break;
                case "fontVariationAxes":
                    fontVariationAxes = java.util.Optional.ofNullable(input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType()));
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new FontFace(fontFamily, fontStyle, fontVariant, fontWeight, fontStretch, unicodeRange, src, platformFontFamily, fontVariationAxes);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy