@Override
 public void storeProperties(Map<String, String> properties) {
   super.storeProperties(properties);
   properties.put(
       "sprintId", ilarkesto.core.persistance.Persistence.propertyAsString(this.sprintId));
   properties.put(
       "remainingWork",
       ilarkesto.core.persistance.Persistence.propertyAsString(this.remainingWork));
   properties.put(
       "burnedWork", ilarkesto.core.persistance.Persistence.propertyAsString(this.burnedWork));
 }
 // --- ensure integrity ---
 @Override
 public void onEnsureIntegrity() {
   super.onEnsureIntegrity();
   if (!isSprintSet()) {
     repairMissingMaster();
   }
   try {
     getSprint();
   } catch (ilarkesto.core.persistance.EntityDoesNotExistException ex) {
     LOG.info("Repairing dead sprint reference");
     repairDeadSprintReference(this.sprintId);
   }
 }
 public void updateProperties(Map<String, String> properties) {
   super.updateProperties(properties);
   for (Map.Entry<String, String> entry : properties.entrySet()) {
     String property = entry.getKey();
     if (property.equals("id")) continue;
     String value = entry.getValue();
     if (property.equals("sprintId"))
       updateSprintId(ilarkesto.core.persistance.Persistence.parsePropertyReference(value));
     if (property.equals("remainingWork"))
       updateRemainingWork(ilarkesto.core.persistance.Persistence.parsePropertyint(value));
     if (property.equals("burnedWork"))
       updateBurnedWork(ilarkesto.core.persistance.Persistence.parsePropertyint(value));
   }
 }
 protected void repairDeadReferences(String entityId) {
   if (!isPersisted()) return;
   super.repairDeadReferences(entityId);
   repairDeadSprintReference(entityId);
 }