org.openqa.selenium.devtools.v88.headlessexperimental.model.ScreenshotParams Maven / Gradle / Ivy
package org.openqa.selenium.devtools.v88.headlessexperimental.model;
import org.openqa.selenium.Beta;
import org.openqa.selenium.json.JsonInput;
/**
* Encoding options for a screenshot.
*/
public class ScreenshotParams {
public enum Format {
JPEG("jpeg"), PNG("png");
private String value;
Format(String value) {
this.value = value;
}
public static Format fromString(String s) {
return java.util.Arrays.stream(Format.values()).filter(rs -> rs.value.equalsIgnoreCase(s)).findFirst().orElseThrow(() -> new org.openqa.selenium.devtools.DevToolsException("Given value " + s + " is not found within Format "));
}
public String toString() {
return value;
}
public String toJson() {
return value;
}
private static Format fromJson(JsonInput input) {
return fromString(input.nextString());
}
}
private final java.util.Optional format;
private final java.util.Optional quality;
public ScreenshotParams(java.util.Optional format, java.util.Optional quality) {
this.format = format;
this.quality = quality;
}
/**
* Image compression format (defaults to png).
*/
public java.util.Optional getFormat() {
return format;
}
/**
* Compression quality from range [0..100] (jpeg only).
*/
public java.util.Optional getQuality() {
return quality;
}
private static ScreenshotParams fromJson(JsonInput input) {
java.util.Optional format = java.util.Optional.empty();
java.util.Optional quality = java.util.Optional.empty();
input.beginObject();
while (input.hasNext()) {
switch(input.nextName()) {
case "format":
format = java.util.Optional.ofNullable(Format.fromString(input.nextString()));
break;
case "quality":
quality = java.util.Optional.ofNullable(input.nextNumber().intValue());
break;
default:
input.skipValue();
break;
}
}
input.endObject();
return new ScreenshotParams(format, quality);
}
}