minor improvement: Change FakeScanRequest and FakeScanController to use enums for quality, rotation, and colorspace. This resolves warning about deprecated API usage

This commit is contained in:
Balázs Szücs 2025-05-21 14:59:53 +02:00
parent bfd273c8a4
commit 5b657fdfd7
2 changed files with 40 additions and 33 deletions

View File

@ -58,10 +58,10 @@ public class FakeScanController {
// Apply preset first if needed
if (!request.isAdvancedEnabled()) {
switch (request.getQuality().toLowerCase()) {
case "high" -> request.applyHighQualityPreset();
case "medium" -> request.applyMediumQualityPreset();
case "low" -> request.applyLowQualityPreset();
switch (request.getQuality()) {
case high -> request.applyHighQualityPreset();
case medium -> request.applyMediumQualityPreset();
case low -> request.applyLowQualityPreset();
}
}
@ -75,7 +75,7 @@ public class FakeScanController {
float noise = request.getNoise();
boolean yellowish = request.isYellowish();
int resolution = request.getResolution();
String colorspace = request.getColorspace();
FakeScanRequest.Colorspace colorspace = request.getColorspace();
try (PDDocument document = pdfDocumentFactory.load(file)) {
PDDocument outputDocument = new PDDocument();
@ -87,7 +87,7 @@ public class FakeScanController {
// 1. Convert to grayscale or keep color
BufferedImage processed;
if ("grayscale".equalsIgnoreCase(colorspace)) {
if (colorspace == FakeScanRequest.Colorspace.grayscale) {
processed =
new BufferedImage(
image.getWidth(),

View File

@ -12,33 +12,42 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode
public class FakeScanRequest {
public enum Quality {
low,
medium,
high
}
public enum Rotation {
none,
slight,
moderate,
severe
}
public enum Colorspace {
grayscale,
color
}
@Schema(
description = "PDF file to process",
required = true,
requiredMode = Schema.RequiredMode.REQUIRED,
type = "string",
format = "binary")
@NotNull(message = "File input is required")
private MultipartFile fileInput;
@Schema(
description = "Scan quality preset",
example = "high",
allowableValues = {"low", "medium", "high"})
@Schema(description = "Scan quality preset", example = "high")
@NotNull(message = "Quality is required")
private String quality = "high";
private Quality quality = Quality.high;
@Schema(
description = "Rotation preset",
example = "none",
allowableValues = {"none", "slight", "moderate", "severe"})
@Schema(description = "Rotation preset", example = "none")
@NotNull(message = "Rotation is required")
private String rotation = "slight";
private Rotation rotation = Rotation.slight;
@Schema(
description = "Colorspace for output image",
example = "grayscale",
allowableValues = {"grayscale", "color"})
private String colorspace = "grayscale";
@Schema(description = "Colorspace for output image", example = "grayscale")
private Colorspace colorspace = Colorspace.grayscale;
@Schema(description = "Border thickness in pixels", example = "20")
private int border = 20;
@ -75,21 +84,19 @@ public class FakeScanRequest {
}
public int getQualityValue() {
return switch (quality.toLowerCase()) {
case "low" -> 30;
case "medium" -> 60;
case "high" -> 100;
default -> 100;
return switch (quality) {
case low -> 30;
case medium -> 60;
case high -> 100;
};
}
public int getRotationValue() {
return switch (rotation.toLowerCase()) {
case "none" -> 0;
case "slight" -> 2;
case "moderate" -> 5;
case "severe" -> 8;
default -> 0;
return switch (rotation) {
case none -> 0;
case slight -> 2;
case moderate -> 5;
case severe -> 8;
};
}