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

View File

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