Skip to content

Commit feaa606

Browse files
committed
missing file
1 parent f6c1db4 commit feaa606

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package de.symeda.sormas.backend.patch;
2+
3+
import java.util.Comparator;
4+
import java.util.Map;
5+
6+
import de.symeda.sormas.api.EntityDto;
7+
import de.symeda.sormas.api.caze.CaseDataDto;
8+
import de.symeda.sormas.api.epidata.EpiDataDto;
9+
import de.symeda.sormas.api.hospitalization.HospitalizationDto;
10+
import de.symeda.sormas.api.immunization.ImmunizationDto;
11+
import de.symeda.sormas.api.person.PersonDto;
12+
13+
/**
14+
* Orders {@link AttachedEntityWrapper}s so that {@link CaseDataDto} comes first, {@link PersonDto} second,
15+
* and any other DTO type last.
16+
*/
17+
public class EntityDtoTypeComparator implements Comparator<EntityDto> {
18+
19+
private static final Map<Class<? extends EntityDto>, Integer> WEIGHT_BY_CLASS =
20+
Map.of(CaseDataDto.class, 1, PersonDto.class, 2, EpiDataDto.class, 3, ImmunizationDto.class, 4, HospitalizationDto.class, 5);
21+
22+
private static final int DEFAULT_WEIGHT = WEIGHT_BY_CLASS.size() + 1;
23+
24+
@Override
25+
public int compare(EntityDto first, EntityDto second) {
26+
return Integer.compare(weightOf(first), weightOf(second));
27+
}
28+
29+
private static int weightOf(EntityDto entityDto) {
30+
return WEIGHT_BY_CLASS.getOrDefault(entityDto.getClass(), DEFAULT_WEIGHT);
31+
}
32+
}

0 commit comments

Comments
 (0)