package uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.AdminUnitDiseaseExtentClass;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.AdminUnitReview;
import uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.geojson.GeoJsonFeatureCollection;
import uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.geojson.GeoJsonNamedCrs;
import java.util.ArrayList;
import java.util.List;
/**
* A DTO to express a list of AdminUnits as a "FeatureCollection", with the extent class of a DiseaseGroup.
* Copyright (c) 2014 University of Oxford
*/
public class GeoJsonDiseaseExtentFeatureCollection
extends GeoJsonFeatureCollection<GeoJsonDiseaseExtentFeature, GeoJsonNamedCrs> {
public GeoJsonDiseaseExtentFeatureCollection() {
}
public GeoJsonDiseaseExtentFeatureCollection(List<AdminUnitDiseaseExtentClass> diseaseExtent,
List<AdminUnitReview> reviews) {
super(extractExtentFeatures(diseaseExtent, reviews), GeoJsonNamedCrs.createEPSG4326(), null);
}
private static List<GeoJsonDiseaseExtentFeature> extractExtentFeatures(
List<AdminUnitDiseaseExtentClass> diseaseExtent, List<AdminUnitReview> reviews) {
List<GeoJsonDiseaseExtentFeature> features = new ArrayList<>();
for (AdminUnitDiseaseExtentClass adminUnitDiseaseExtentClass : diseaseExtent) {
features.add(new GeoJsonDiseaseExtentFeature(adminUnitDiseaseExtentClass, reviews));
}
return features;
}
}