package scrum.server.impediments; import ilarkesto.base.time.Date; import scrum.client.common.LabelSupport; import scrum.client.common.ReferenceSupport; import scrum.server.admin.User; import scrum.server.common.Numbered; public class Impediment extends GImpediment implements Numbered, ReferenceSupport, LabelSupport { @Override public void updateNumber() { if (getNumber() == 0) setNumber(getProject().generateImpedimentNumber()); } public String getReferenceAndLabel() { return getReference() + " " + getLabel(); } @Override public String getReference() { return scrum.client.impediments.Impediment.REFERENCE_PREFIX + getNumber(); } @Override public boolean isVisibleFor(User user) { return getProject().isVisibleFor(user); } public boolean isEditableBy(User user) { return getProject().isEditableBy(user); } @Override public void ensureIntegrity() { super.ensureIntegrity(); updateNumber(); if (!isDateSet()) setDate(Date.today()); // delete when closed and older than 4 weeks if (isClosed() && getDate().getPeriodToNow().toWeeks() > 4) getDao().deleteEntity(this); } @Override public String toString() { return getReferenceAndLabel(); } }