public void validateFloweringTime(String scientificName, String eventDate, String reproductiveState, String country, String kingdom, String latitude, String longitude) {
		HashMap<String, String> initialValues = new HashMap<String, String>();
		initialValues.put("eventDate", eventDate);
		initialValues.put("scientificName", scientificName);
		initialValues.put("reproductive", reproductiveState);
		initialValues.put("country", country);
		initialValues.put("kingdom", kingdom);
		initialValues.put("latitude", latitude);
		initialValues.put("longitude", longitude);
		initDate(new CurationStep("Validate Collecting Event Date: check dwc:eventDate against reproductive state. ", initialValues));
		// TODO: fix to compare provided eventDate and reproductiveState with data from FNA
	    Vector<String> months = new Vector<String>();
		Vector<String> foundFloweringTime = null;
		if(authoritativeFloweringTimeMap != null && authoritativeFloweringTimeMap.containsKey(scientificName.toLowerCase())){
			foundFloweringTime = authoritativeFloweringTimeMap.get(scientificName.toLowerCase()); 
		}
		if(foundFloweringTime == null){
			setCurationStatus(CurationComment.UNABLE_DETERMINE_VALIDITY);
			addToComment("Can't find the flowering time of the "+scientificName+" in the current available phenology data from FNA.");
			correctedFloweringTime = null;
		}else{
			if(months==null || !months.containsAll(foundFloweringTime) || !foundFloweringTime.containsAll(months) ){
				setCurationStatus(CurationComment.UNABLE_CURATED);
				addToComment("Provided event date and flowering state is inconsistent with known flowering times for species according to FNA.");
			}else{
				setCurationStatus(CurationComment.CORRECT);
				addToComment("The event date and flowering state is consistent with authoritative data from FNA");
				correctedFloweringTime = months; 				
			}
		}
	}
public void validateFloweringTime(String scientificName, String eventDate, String reproductiveState, String country, String kingdom, String latitude, String longitude) {
		HashMap<String, String> initialValues = new HashMap<String, String>();
		initialValues.put("eventDate", eventDate);
		initialValues.put("scientificName", scientificName);
		initialValues.put("reproductive", reproductiveState);
		initialValues.put("country", country);
		initialValues.put("kingdom", kingdom);
		initialValues.put("latitude", latitude);
		initialValues.put("longitude", longitude);
		initDate(new CurationStep("Validate Collecting Event Date: check dwc:eventDate against reproductive state. ", initialValues));
	
	    Vector<String> months = new Vector<String>();
		Vector<String> foundFloweringTime = null;
		if(authoritativeFloweringTimeMap != null && authoritativeFloweringTimeMap.containsKey(scientificName.toLowerCase())){
			foundFloweringTime = authoritativeFloweringTimeMap.get(scientificName.toLowerCase()); 
		}
		if(foundFloweringTime == null){
			setCurationStatus(CurationComment.UNABLE_DETERMINE_VALIDITY);
			addToComment("Can't find the flowering time of the "+scientificName+" in the current available phenology data from FNA.");
			correctedFloweringTime = null;
		}else{
			if(months==null || !months.containsAll(foundFloweringTime) || !foundFloweringTime.containsAll(months) ){
				setCurationStatus(CurationComment.UNABLE_CURATED);
				addToComment("Provided event date and flowering state is inconsistent with known flowering times for species according to FNA.");
			}else{
				setCurationStatus(CurationComment.CORRECT);
				addToComment("The event date and flowering state is consistent with authoritative data from FNA");
				correctedFloweringTime = months; 				
			}
		}
	}
public void validatefloweringtime(string scientificname, string eventdate, string reproductivestate, string country, string kingdom, string latitude, string longitude) { hashmap<string, string> initialvalues = new hashmap<string, string>(); initialvalues.put("eventdate", eventdate); initialvalues.put("scientificname", scientificname); initialvalues.put("reproductive", reproductivestate); initialvalues.put("country", country); initialvalues.put("kingdom", kingdom); initialvalues.put("latitude", latitude); initialvalues.put("longitude", longitude); initdate(new curationstep("validate collecting event date: check dwc:eventdate against reproductive state. ", initialvalues)); vector<string> months = new vector<string>(); vector<string> foundfloweringtime = null; if(authoritativefloweringtimemap != null && authoritativefloweringtimemap.containskey(scientificname.tolowercase())){ foundfloweringtime = authoritativefloweringtimemap.get(scientificname.tolowercase()); } if(foundfloweringtime == null){ setcurationstatus(curationcomment.unable_determine_validity); addtocomment("can't find the flowering time of the "+scientificname+" in the current available phenology data from fna."); correctedfloweringtime = null; }else{ if(months==null || !months.containsall(foundfloweringtime) || !foundfloweringtime.containsall(months) ){ setcurationstatus(curationcomment.unable_curated); addtocomment("provided event date and flowering state is inconsistent with known flowering times for species according to fna."); }else{ setcurationstatus(curationcomment.correct); addtocomment("the event date and flowering state is consistent with authoritative data from fna"); correctedfloweringtime = months; } } }