pingtool/ScanMaker.java
2025-05-28 09:42:37 +02:00

48 lines
2 KiB
Java

import java.util.Optional;
public class ScanMaker {
public static Optional<ScanType> createScan(String type, String accessString) {
return switch (type) {
case "HTTPGet" -> Optional.of(new HTTPGet(accessString));
case "HTTPHead" -> Optional.of(new HTTPHead(accessString));
case "Ping" -> Optional.of(new Ping(accessString));
case "PortConnect" -> Optional.of(new PortConnect(accessString));
default -> Optional.empty();
};
}
public static Optional<ScanType> validateAndCreate(String label, String accessString) {
return switch (label) {
case "HTTP GET" -> HTTPGet.validateAccessString(accessString) ? Optional.of(new HTTPGet(accessString)) : Optional.empty();
case "HTTP HEAD" -> HTTPHead.validateAccessString(accessString) ? Optional.of(new HTTPHead(accessString)) : Optional.empty();
case "Ping" -> Ping.validateAccessString(accessString) ? Optional.of(new Ping(accessString)) : Optional.empty();
case "Port Connect" -> PortConnect.validateAccessString(accessString) ? Optional.of(new PortConnect(accessString)) : Optional.empty();
default -> Optional.empty();
};
}
public static String getTypeName(ScanType scan) {
return scan.getClass().getSimpleName();
}
public static String getDisplayLabel(String typeName) {
return switch (typeName) {
case "HTTPGet" -> "HTTP GET";
case "HTTPHead" -> "HTTP HEAD";
case "Ping" -> "Ping";
case "PortConnect" -> "Port Connect";
default -> typeName;
};
}
public static String getInternalTypeName(String label) {
return switch (label) {
case "HTTP GET" -> "HTTPGet";
case "HTTP HEAD" -> "HTTPHead";
case "Ping" -> "Ping";
case "Port Connect" -> "PortConnect";
default -> label;
};
}
}