У меня есть этот конструктор ...
public ShiftLog(String companyName, boolean workedForAgent, String agentName,
Date shiftStart, Date shiftEnd,
boolean breakTaken, Date breakStart,
Date breakEnd, boolean isTransportJob,
String transportCompanyName, String vehicleRegistration) {
this.userUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
this.companyName = companyName;
this.workedForAgent = workedForAgent;
this.agentName = agentName;
this.shiftStart = shiftStart;
this.shiftEnd = shiftEnd;
this.breakTaken = breakTaken;
this.breakStart = breakStart;
this.breakEnd = breakEnd;
this.isTransportJob = isTransportJob;
this.transportCompanyName = transportCompanyName;
this.vehicleRegistration = vehicleRegistration;
}
Теперь я хочу добавить в журнал смены (создание экземпляра объекта журнала смены для пользователя).Проблема в том, что существует несколько комбинаций, которые может иметь журнал смен.Например, workedForAgent
является ложным, не нужно вводить agentName
.Как я могу сделать это без создания нескольких конструкторов, потому что может быть несколько возможных комбинаций?Например, пользователь может работать на агента, но не делать перерыв, а это означает, что не нужно передавать время начала и окончания перерыва. Но для этого потребуется так много конструкторов для всех возможных комбинаций.Любая альтернатива?
Также я использую базу данных комнат, чтобы добавить всю эту информацию.Так, например, если workedForAgent
имеет значение false, автоматически установите agentName
на ноль.Как это тоже можно сделать.