All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.mike10004.harreplay.vhsimpl.VhsReplayManagerConfig Maven / Gradle / Ivy

The newest version!
package io.github.mike10004.harreplay.vhsimpl;

import com.browserup.harreader.HarReaderMode;
import io.github.mike10004.vhs.bmp.BmpResponseListener;
import io.github.mike10004.vhs.bmp.KeystoreGenerator;
import io.github.mike10004.vhs.bmp.KeystoreType;

import java.io.File;
import java.nio.file.Path;

import static java.util.Objects.requireNonNull;

public class VhsReplayManagerConfig {

    private static final VhsReplayManagerConfig DEFAULT = builder().build();

    public final Path mappedFileResolutionRoot;
    public final KeystoreGenerator keystoreGenerator;
    public final BmpResponseListener bmpResponseListener;
    public final HarReaderFactory harReaderFactory;
    public final HarReaderMode harReaderMode;

    private VhsReplayManagerConfig(Builder builder) {
        mappedFileResolutionRoot = builder.mappedFileResolutionRoot;
        keystoreGenerator = builder.keystoreGenerator;
        bmpResponseListener = builder.bmpResponseListener;
        harReaderFactory = builder.harReaderFactory;
        harReaderMode = builder.harReaderMode;
    }

    public static VhsReplayManagerConfig getDefault() {
        return DEFAULT;
    }

    public static Builder builder() {
        return new Builder();
    }


    @SuppressWarnings("unused")
    public static final class Builder {
        private Path mappedFileResolutionRoot;
        private KeystoreGenerator keystoreGenerator;
        private BmpResponseListener bmpResponseListener;
        private HarReaderFactory harReaderFactory;
        private HarReaderMode harReaderMode;

        private Builder() {
            mappedFileResolutionRoot = new File(System.getProperty("user.dir")).toPath();
            bmpResponseListener = (x, y) -> {};
            keystoreGenerator = KeystoreGenerator.createJreGenerator(KeystoreType.PKCS12);
            harReaderFactory = HarReaderFactory.easier();
            harReaderMode = HarReaderMode.STRICT;
        }

        public Builder mappedFileResolutionRoot(Path val) {
            mappedFileResolutionRoot = requireNonNull(val);
            return this;
        }

        public Builder keystoreGenerator(KeystoreGenerator val) {
            keystoreGenerator = requireNonNull(val);
            return this;
        }

        public Builder bmpResponseListener(BmpResponseListener val) {
            bmpResponseListener = requireNonNull(val);
            return this;
        }

        public Builder harReaderFactory(HarReaderFactory harReaderFactory) {
            this.harReaderFactory = requireNonNull(harReaderFactory);
            return this;
        }

        public Builder harReaderMode(HarReaderMode harReaderMode) {
            this.harReaderMode = requireNonNull(harReaderMode);
            return this;
        }

        public VhsReplayManagerConfig build() {
            return new VhsReplayManagerConfig(this);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy