package husacct.validate.task.imexporting.importing; import husacct.common.imexport.XmlConversionUtils; import husacct.externalinterface.ViolationImExportDTO; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import org.apache.log4j.Logger; import org.jdom2.Document; import org.jdom2.Element; public class ImportViolations { private Logger logger = Logger.getLogger(ImportViolations.class); private Element importElement; public ImportViolations(Document previousViolations) { if (previousViolations != null) { this.importElement = previousViolations.getRootElement(); } } public List<ViolationImExportDTO> importViolations() { List<ViolationImExportDTO> imExportViolationDtoList = new ArrayList<ViolationImExportDTO>(); if (importElement != null) { for (Element childOfRootElement : importElement.getChildren()) { String name = childOfRootElement.getName(); if (name.equals("violations")) { for (Element element : childOfRootElement.getChildren()){ if (element.getName().equals("violation")) { ViolationImExportDTO dto = new ViolationImExportDTO(); dto = (ViolationImExportDTO) XmlConversionUtils.writeElementToDto(element, dto); imExportViolationDtoList.add(dto); } } } } } return imExportViolationDtoList; } public Calendar getValidationDate() { Calendar validationDate = Calendar.getInstance(); for (Element rootElement : importElement.getChildren()) { String name = rootElement.getName(); if (name.equals("violationsGeneratedOn")) { String validationDateString = rootElement.getText(); if (validationDateString != null) { validationDate = getCalendar(validationDateString); } break; } } return validationDate; } private Calendar getCalendar(String stringCalendar){ Calendar calendar = Calendar.getInstance(); try { stringCalendar.trim(); SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy kk:mm:ss"); calendar.setTime(sdf1.parse(stringCalendar)); } catch (IllegalArgumentException | ParseException e) { logger.warn(String.format("%s is not a valid datetime for violationsGeneratedOn; using current datetime", stringCalendar)); } return calendar; } }