package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto; import com.google.auto.value.AutoValue; import java.util.List; import javax.annotation.Nullable; @AutoValue public abstract class Vehicle { public enum ConstructionType { NORMAL, HOCHDACH, MITTELHOCHDACH, } public enum VehicleType { BKTW, KTW_B, KTW, RTW, NEF, NAH, } public enum Status { ABGEMELDET, FREI_WACHE, FREI_FUNK, ZUM_BERUFUNGSORT, AM_BERUFUNGSORT, ZUM_ZIELORT, AM_ZIELORT, } public abstract long id(); public abstract String name(); public abstract ConstructionType constructionType(); public abstract VehicleType type(); public abstract Status status(); public abstract boolean hasNef(); @Nullable public abstract List registrations(); public static Builder builder() { return new AutoValue_Vehicle.Builder().id(0); } @AutoValue.Builder public abstract static class Builder { public abstract Builder id(long id); public abstract Builder name(String name); public abstract Builder constructionType(ConstructionType constructionType); public abstract Builder type(VehicleType type); public abstract Builder status(Status status); public abstract Builder hasNef(boolean hasNef); public abstract Builder registrations(List registrations); public abstract Vehicle build(); } public abstract Builder toBuilder(); }