diff --git a/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java b/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java index 21e865c00002a0981a37c2e5d54202a465203634..6e40d18b278c1d890b54987c1b5ef1ca910b0819 100644 --- a/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java +++ b/src/main/java/no/bioforsk/vips/model/applescabmodel/AppleScabModel.java @@ -1,5 +1,7 @@ package no.bioforsk.vips.model.applescabmodel; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.ArrayList; import java.util.Calendar; @@ -198,7 +200,7 @@ public class AppleScabModel extends I18nImpl implements Model{ "\t\"modelId\":\"" + MODEL_ID.toString() + "\",\n" + "\t\"configParameters\":{\n" + "\t\t\"timeZone\":\"Europe/Oslo\",\n" + - "\t\t\"startDateAscosporeMaturity\":\"2012-03-25T00:00:00+01:00\",\n" + + "\t\t\"startDateAscosporeMaturity\":\"2012-03-25\",\n" + "\t\t\"observations\":[\n" + "\t\t{\n" + "\t\t\t\t\"timeMeasured\": \"2012-03-25T00:00:00+02:00\",\n" + @@ -238,9 +240,40 @@ public class AppleScabModel extends I18nImpl implements Model{ initCollections(); ObjectMapper mapper = new ObjectMapper(); - this.startDateAscosporeMaturity = mapper.convertValue(config.getConfigParameter("startDateAscosporeMaturity"), new TypeReference<java.util.Date>(){}); + + // Setting timezone this.timeZone = TimeZone.getTimeZone((String) config.getConfigParameter("timeZone")); - //mapper.convertValue(config.getConfigParameter("timeZone"), new TypeReference<java.util.TimeZone>(){}); + + //this.startDateAscosporeMaturity = mapper.convertValue(config.getConfigParameter("startDateAscosporeMaturity"), new TypeReference<java.util.Date>(){}); + String[] dateparts; + try + { + dateparts = config.getConfigParameter("startDateAscosporeMaturity").toString().split("-"); + } + catch (NullPointerException ex){ + throw new ConfigValidationException("startDateAscosporeMaturity not set"); + } + try + { + Integer year = Integer.valueOf(dateparts[0]); + Integer month = Integer.valueOf(dateparts[1]); + Integer date = Integer.valueOf(dateparts[2]); + + Calendar cal = Calendar.getInstance(timeZone); + cal.set(year, month-1, date, 0, 0, 0); + cal.set(Calendar.MILLISECOND, 0); + + this.startDateAscosporeMaturity = cal.getTime(); + } + catch(NumberFormatException | ArrayIndexOutOfBoundsException ex) + { + throw new ConfigValidationException("Illegal date format for startDateAscosporeMaturity: " + config.getConfigParameter("startDateAscosporeMaturity")); + } + + + + + //mapper.convertValue(config.getConfigParameter("timeZone"), new TypeReference<java.util.TimeZone>(){}); this.calculations = new AppleScabCalculations(); List<WeatherObservation> observations = mapper.convertValue(config.getConfigParameter("observations"), new TypeReference<List<WeatherObservation>>(){}); for(WeatherObservation o:observations)