
io.molr.commons.domain.MissionParameter Maven / Gradle / Ivy
package io.molr.commons.domain;
import java.util.Objects;
import static java.util.Objects.requireNonNull;
public final class MissionParameter {
private final Placeholder placeholder;
private final boolean required;
private final T defaultValue;
private MissionParameter(Placeholder placeholder, T defaultValue, boolean required) {
this.placeholder = requireNonNull(placeholder, "placeholder must not be null");
this.required = required;
/* null is allowed for the default value*/
this.defaultValue = defaultValue;
}
public static MissionParameter required(Placeholder placeholder) {
return new MissionParameter(placeholder, null, true);
}
public static MissionParameter optional(Placeholder placeholder) {
return new MissionParameter(placeholder, null, false);
}
public MissionParameter withDefault(T newDefaultValue) {
return new MissionParameter<>(placeholder, newDefaultValue, this.required);
}
public boolean isRequired() {
return this.required;
}
public T defaultValue() {
return this.defaultValue;
}
public Placeholder placeholder() {
return this.placeholder;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MissionParameter> that = (MissionParameter>) o;
return required == that.required &&
Objects.equals(placeholder, that.placeholder) &&
Objects.equals(defaultValue, that.defaultValue);
}
@Override
public int hashCode() {
return Objects.hash(placeholder, required, defaultValue);
}
@Override
public String toString() {
return "MissionParameter{" +
"placeholder=" + placeholder +
", required=" + required +
", defaultValue=" + defaultValue +
'}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy