Skip to content

Commit

Permalink
fix: return enum class for typeChargement and typeNormage
Browse files Browse the repository at this point in the history
  • Loading branch information
lmanelphe committed Oct 27, 2023
1 parent 8060f58 commit cf01506
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 38 deletions.
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
package fr.insee.arc.core.service.p2chargement.factory;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

import fr.insee.arc.utils.exception.ArcException;
import fr.insee.arc.utils.exception.ArcExceptionMessage;

public enum TypeChargement {
CLEF_VALEUR("clef-valeur"),
XML("xml"),
PLAT("plat"),
XML_COMPLEXE("xml-complexe");

private String nom;

private TypeChargement(String nom) {
this.nom = nom;
}

public String getNom() {
return nom;
}

public void setNom(String nom) {
this.nom = nom;
}

public static TypeChargement getEnum(String code) {

switch (code) {
case "clef-valeur":
return CLEF_VALEUR;
case "xml":
return XML;
case "plat":
return PLAT;
case "xml-complexe":
return XML_COMPLEXE;
default:
return null;
}
}

CLEF_VALEUR("clef-valeur"), XML("xml"), PLAT("plat"), XML_COMPLEXE("xml-complexe");

private String nom;

private TypeChargement(String nom) {
this.nom = nom;
}

public String getNom() {
return nom;
}

public void setNom(String nom) {
this.nom = nom;
}

public static TypeChargement getEnum(String code) throws ArcException {

List<TypeChargement> filtered = Arrays.asList(TypeChargement.values()).stream()
.filter(t -> t.getNom().equals(code)).collect(Collectors.toList());

if (filtered.isEmpty()) {
throw new ArcException(ArcExceptionMessage.LOAD_TYPE_NOT_FOUND, code);
}

return filtered.get(0);
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
package fr.insee.arc.core.service.p3normage.bo;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

import fr.insee.arc.utils.exception.ArcException;
import fr.insee.arc.utils.exception.ArcExceptionMessage;

public enum TypeNormage {
RELATION("relation"),
CARTESIAN("cartesian"),
Expand All @@ -25,4 +32,19 @@ public void setNom(String nom) {
this.nom = nom;
}


public static TypeNormage getEnum(String code) throws ArcException {

List<TypeNormage> filtered = Arrays.asList(TypeNormage.values()).stream().filter(t -> t.getNom().equals(code)).collect(Collectors.toList());

if (filtered.isEmpty())
{
throw new ArcException(ArcExceptionMessage.NORMAGE_TYPE_NOT_FOUND, code);
}

return filtered.get(0);
}



}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static void fillNormageRules(Connection connection, String envExecution,
List<RegleNormage> listRegles = new ArrayList<>();
for(int i = 0; i < regle.get(ColumnEnum.ID_CLASSE.getColumnName()).size(); i++) {
listRegles.add(new RegleNormage(
TypeNormage.valueOf(regle.get(ColumnEnum.ID_CLASSE.getColumnName()).get(0)),
TypeNormage.getEnum(regle.get(ColumnEnum.ID_CLASSE.getColumnName()).get(0)),
regle.get(ColumnEnum.RUBRIQUE.getColumnName()).get(0),
regle.get(ColumnEnum.RUBRIQUE_NMCL.getColumnName()).get(0)
));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package fr.insee.arc.core.service.p2chargement.factory;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import fr.insee.arc.core.service.p3normage.bo.TypeNormage;
import fr.insee.arc.utils.exception.ArcException;

public class TypeChargementTest {


@Test
public void getEnum_test_ok() throws ArcException {

assertEquals(TypeChargement.XML_COMPLEXE, TypeChargement.getEnum("xml-complexe"));
}

@Test(expected = ArcException.class)
public void getEnum_test_ko() throws ArcException {
TypeChargement.getEnum("type de chargement inexistant");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package fr.insee.arc.core.service.p3normage.bo;

import static org.junit.Assert.*;

import org.junit.Test;

import fr.insee.arc.utils.exception.ArcException;

public class TypeNormageTest {

@Test
public void getEnum_test_ok() throws ArcException {

assertEquals(TypeNormage.RELATION, TypeNormage.getEnum("relation"));
}

@Test(expected = ArcException.class)
public void getEnum_test_ko() throws ArcException {
TypeNormage.getEnum("type de norme inexistant");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ public enum ArcExceptionMessage {
LOAD_SEVERAL_NORM_FOUND("Plusieurs normes ou validité correspondent à l'expression : %s"),
LOAD_NORM_NOT_FOUND("Aucune norme trouvée pour le fichier %s"),
LOAD_ZERO_NORM_FOUND("Aucune norme trouvée"),
LOAD_TYPE_NOT_FOUND("Le type de chargement %s n'existe pas"),


MAPPING_PRIMARY_KEY_INVALID_FORMAT("La règle de clé primaire pour la variable %s n'est pas de la forme : \"{\"pk:mapping_<famille>_<variable>_ok\"}\""),
MAPPING_EXPRESSION_INVALID("L'expression \"%s\" est invalide"),
Expand All @@ -54,7 +56,7 @@ public enum ArcExceptionMessage {
NORMAGE_VALIDITE_DATE_PARSE_FAILED ("Le champ validite %s ne peut être converti en date"),
NORMAGE_INDEPENDANCE_BLOC_INVALID_IDENTIFIER("La rubrique %s n'identifie pas un bloc"),
NORMAGE_INDEPENDANCE_BLOC_INVALID_FATHER("La rubrique %s n'a pas le même pere que les autres rubriques du bloc"),

NORMAGE_TYPE_NOT_FOUND("Le type de normage %s n'existe pas"),

CONTROLE_XSD_ENUM_EMPTY("L'énumération XSD pour le type de règle de contrôle ENUM_BRUTE ne peut pas être vide"),
CONTROLE_XSD_RUBRIQUE_RELATION_ALREADY_DEFINED("La relation entre %s et %s est déjà décrite sous forme de séquence dans les règles XSD"),
Expand Down Expand Up @@ -101,7 +103,7 @@ public enum ArcExceptionMessage {

DATE_PARSE_FAILED_VALIDITE_INF("La validité inf %s n'a pu être parsée"),
DATE_PARSE_FAILED_VALIDITE_SUP("La validité sup %s n'a pu être parsée")

;

private String message;
Expand Down

0 comments on commit cf01506

Please sign in to comment.