
io.molr.commons.domain.dto.AgencyStateDto Maven / Gradle / Ivy
package io.molr.commons.domain.dto;
import io.molr.commons.domain.AgencyState;
import io.molr.commons.domain.ImmutableAgencyState;
import io.molr.commons.domain.Mission;
import io.molr.commons.domain.MissionInstance;
import java.util.Collections;
import java.util.Set;
import static java.util.stream.Collectors.toSet;
public class AgencyStateDto {
public final Set availableMissions;
public final Set activeMissions;
public AgencyStateDto(Set availableMissions, Set activeMissions) {
this.availableMissions = availableMissions;
this.activeMissions = activeMissions;
}
public AgencyStateDto() {
this.availableMissions = null;
this.activeMissions = Collections.emptySet();
}
public static final AgencyStateDto from(AgencyState agencyState) {
Set missions = agencyState.executableMissions().stream().map(MissionDto::from).collect(toSet());
Set instances = agencyState.activeMissions().stream().map(MissionInstanceDto::from).collect(toSet());
return new AgencyStateDto(missions, instances);
}
public AgencyState toAgencyState() {
Set missions = this.availableMissions.stream().map(MissionDto::toMission).collect(toSet());
Set instances = this.activeMissions.stream().map(MissionInstanceDto::toMissionInstance).collect(toSet());
return ImmutableAgencyState.of(missions, instances);
}
@Override
public String toString() {
return "AgencyStateDto{" +
"activeMissions=" + activeMissions +
'}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy