package com.megatim.fdxconvert.pojo; import com.megatimfx.common.validationgroups.ViewFormValidationGroup; import com.megatim.fdxconvert.model.constraint.ConfigConstraint; import com.megatim.fdxconvert.enums.DataType; import com.megatim.fdxconvert.model.MetaAlphaNumeriqueField; import com.megatim.fdxconvert.model.TypeFichier; import com.megatim.fdxconvert.model.constraint.FileToValidateDelimiterConstraint; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.OneToMany; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; /** * * @author STEPHANIE */ @Getter @Setter @ConfigConstraint(groups = {ViewFormValidationGroup.class}) @FileToValidateDelimiterConstraint(groups = {ViewFormValidationGroup.class}) public class FileToValidate { @NotEmpty(message = "Le fichier à valider est obligatoire", groups = {ViewFormValidationGroup.class}) //@Pattern(regexp="(.+\\.csv)|(.+\\.xlsx)|(.+\\.xls|.+\\.txt)", flags = Flag.CASE_INSENSITIVE, message="Bien vouloir sélectionner un fichier csv, xlsx, xls ou txt" , groups = {ViewFormValidationGroup.class}) private String filePath; @NotNull(message = "Le typefichier est obligatoire", groups = {ViewFormValidationGroup.class}) private TypeFichier typeFichier; private Delimiteur delimiteurLigne; private Delimiteur delimiteurColonne; private String txtFilePath; private String errorFilePath; @NotNull(message = "Le format du fichier de données est obligatoire", groups = {ViewFormValidationGroup.class}) private DataType dataType; private boolean headerPresent; private boolean strictValidation; @OneToMany(mappedBy = "fileTovalidate", cascade = CascadeType.ALL) private Set metaAlphaNumeriqueFields = new HashSet<>(); @Override public String toString() { return filePath+":"+typeFichier.getCode()+":"+dataType.getDataType(); } }