public boolean isValid()

in server/src/main/java/org/eclipse/jifa/server/domain/dto/FileTransferRequest.java [154:213]


        public boolean isValid(FileTransferRequest request, ConstraintValidatorContext context) {
            String notNullTemplate = "{jakarta.validation.constraints.NotNull.message}";
            boolean valid = true;
            if (request.type == null) {
                valid = false;
                context.buildConstraintViolationWithTemplate(notNullTemplate)
                       .addPropertyNode("type")
                       .addConstraintViolation();
            }

            if (request.method == null) {
                context.buildConstraintViolationWithTemplate(notNullTemplate)
                       .addPropertyNode("method")
                       .addConstraintViolation();
                context.disableDefaultConstraintViolation();
                return false;
            }

            if (request.method == FileTransferMethod.UPLOAD) {
                context.disableDefaultConstraintViolation();
                return false;
            }

            switch (request.method) {
                case OSS -> {
                    valid &= checkNotBlank(request.ossEndpoint, "ossEndpoint", context);
                    valid &= checkNotBlank(request.ossAccessKeyId, "ossAccessKeyId", context);
                    valid &= checkNotBlank(request.ossSecretAccessKey, "ossSecretAccessKey", context);
                    valid &= checkNotBlank(request.ossBucketName, "ossBucketName", context);
                    valid &= checkNotBlank(request.ossObjectKey, "ossObjectKey", context);
                }

                case S3 -> {
                    valid &= checkNotBlank(request.s3Region, "s3Region", context);
                    valid &= checkNotBlank(request.s3AccessKey, "s3AccessKey", context);
                    valid &= checkNotBlank(request.s3SecretKey, "s3SecretKey", context);
                    valid &= checkNotBlank(request.s3BucketName, "s3BucketName", context);
                    valid &= checkNotBlank(request.s3ObjectKey, "s3ObjectKey", context);
                }

                case SCP -> {
                    valid &= checkNotBlank(request.scpHostname, "scpHostname", context);
                    valid &= checkNotBlank(request.scpUser, "scpUser", context);
                    valid &= checkNotBlank(request.scpSourcePath, "scpSourcePath", context);
                }

                case URL -> valid &= checkNotBlank(request.url, "url", context);

                case TEXT -> {
                    // TODO: should check file type
                    valid &= checkNotBlank(request.filename, "filename", context);
                    valid &= checkNotBlank(request.text, "text", context);
                }
            }

            if (!valid) {
                context.disableDefaultConstraintViolation();
            }
            return valid;
        }