
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 extends Parcel> parcelType;
private boolean isAvailable;
public ProcessorAvailabilityParcelBuilder ofParcelType(Class extends Parcel> 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 extends Parcel> parcelType;
private boolean isAvailable;
private ProcessorAvailabilityParcel init(UUID address, Class extends Parcel> parcelType, boolean isAvailable) {
this.address = address;
this.parcelType = parcelType;
this.isAvailable = isAvailable;
return this;
}
@Override
public UUID getAddress() {
return address;
}
@Override
public Class extends Parcel> 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