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

co.spraybot.messagerunner.builders.ProcessorAvailabilityParcelBuilder Maven / Gradle / Ivy

package co.spraybot.messagerunner.builders;

import co.spraybot.messagerunner.Parcel;
import co.spraybot.messagerunner.ProcessorAvailabilityParcel;

import java.util.UUID;

public class ProcessorAvailabilityParcelBuilder {

    private UUID address;
    private Class parcelType;
    private boolean isAvailable;

    public ProcessorAvailabilityParcelBuilder ofParcelType(Class parcelType) {
        this.parcelType = parcelType;
        return this;
    }

    public ProcessorAvailabilityParcelBuilder sendTo(UUID address) {
        this.address = address;
        return this;
    }

    public ProcessorAvailabilityParcelBuilder isAvailable() {
        this.isAvailable = true;
        return this;
    }

    public ProcessorAvailabilityParcelBuilder isUnavailable() {
        this.isAvailable = false;
        return this;
    }

    public ProcessorAvailabilityParcel build() {
        ProcessorAvailabilityParcel parcel = new ProcessorAvailabilityParcel() {

            private UUID address;
            private Class parcelType;
            private boolean isAvailable;

            private ProcessorAvailabilityParcel init(UUID address, Class parcelType, boolean isAvailable) {
                this.address = address;
                this.parcelType = parcelType;
                this.isAvailable = isAvailable;
                return this;
            }

            @Override
            public UUID getAddress() {
                return address;
            }

            @Override
            public Class getParcelType() {
                return parcelType;
            }

            @Override
            public boolean isAvailable() {
                return isAvailable;
            }
        }.init(address, parcelType, isAvailable);

        address = null;
        parcelType = null;
        isAvailable = false;

        return parcel;
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy