package module.mission.domain;
import org.fenixedu.bennu.core.security.Authenticate;
import org.joda.time.DateTime;
public class TemporaryMissionItemEntry extends TemporaryMissionItemEntry_Base {
private static int NUMBER_OF_DAYS_TO_DELETE_THRESHOLD = 2;
public TemporaryMissionItemEntry() {
super();
setMissionSystem(MissionSystem.getInstance());
setUser(Authenticate.getUser());
setCreated(new DateTime());
}
public TemporaryMissionItemEntry(final MissionItem missionItem) {
this();
setMissionItem(missionItem);
}
public void delete() {
setMissionItem(null);
setUser(null);
setMissionSystem(null);
deleteDomainObject();
}
public boolean gc() {
final MissionItem missionItem = getMissionItem();
if (missionItem == null) {
delete();
return true;
} else if (missionItem.hasMissionVersion()) {
throw new Error("This should never happen!!!");
} else if (hasPastThresholdToDelete()) {
missionItem.delete();
return true;
}
return false;
}
private boolean hasPastThresholdToDelete() {
return getCreated().isBefore(new DateTime().minusDays(NUMBER_OF_DAYS_TO_DELETE_THRESHOLD));
}
@Deprecated
public boolean hasCreated() {
return getCreated() != null;
}
@Deprecated
public boolean hasMissionSystem() {
return getMissionSystem() != null;
}
@Deprecated
public boolean hasMissionItem() {
return getMissionItem() != null;
}
@Deprecated
public boolean hasUser() {
return getUser() != null;
}
}