public ProtoActions forProto()

in projects/common/java/testing/src/main/java/com/google/cloud/solutions/satools/common/testing/TestResourceLoader.java [121:180]


    public <T extends Message> ProtoActions<T> forProto(Class<T> protoClazz) {
      return new ProtoActions<>() {
        @Override
        public T loadJson(String jsonProtoFile) {
          return ProtoUtils.parseProtoJson(resourceLoader.loadAsString(jsonProtoFile), protoClazz);
        }

        @Override
        public T loadText(String textProtoFile) {
          try {
            return TextFormat.parse(resourceLoader.loadAsString(textProtoFile), protoClazz);
          } catch (ParseException parseException) {
            return null;
          }
        }

        @Override
        public List<T> loadAllTextFiles(List<String> textPbFiles) {
          return textPbFiles.stream().map(this::loadText).toList();
        }

        @Override
        public List<T> loadAllTextFiles(String... textPbFiles) {
          return loadAllTextFiles(List.copyOf(Arrays.asList(textPbFiles)));
        }

        @Override
        public List<T> loadAllJsonFiles(List<String> jsonPbFiles) {
          return jsonPbFiles.stream().map(this::loadJson).toList();
        }

        @Override
        public List<T> loadAllJsonFiles(String jsonPbFile, String... otherJsonPbFiles) {

          var fileListBuilder = new ArrayList<String>();

          if (otherJsonPbFiles != null && otherJsonPbFiles.length > 0) {
            fileListBuilder.addAll(Arrays.asList(otherJsonPbFiles));
          }

          return loadAllJsonFiles(List.copyOf(fileListBuilder));
        }

        @Override
        public List<T> loadAllJsonFilesLike(String baseDir, String filePattern) {
          try {
            return resourceLoader.loadResourcesLike(baseDir, filePattern).stream()
                .map(this::loadJson)
                .toList();
          } catch (MalformedURLException malformedUrlException) {
            GoogleLogger.forEnclosingClass()
                .atSevere()
                .withCause(malformedUrlException)
                .log("Loading error with FilePattern: %s", filePattern);
          }

          return List.of();
        }
      };
    }