From dcd71843bfec4ff13936e608fe8e269d068e2a7c Mon Sep 17 00:00:00 2001 From: nsenave Date: Thu, 13 Nov 2025 18:25:00 +0100 Subject: [PATCH 1/3] refactor!: remove deprecated properties and methods --- .../lunatic/conversion/JsonDeserializer.java | 38 ++-------- .../lunatic/conversion/UnitDeserializer.java | 42 ----------- .../lunatic/conversion/UnitSerializer.java | 46 ------------ .../insee/lunatic/model/flat/Accordion.java | 2 +- .../fr/insee/lunatic/model/flat/BodyCell.java | 72 +++---------------- .../lunatic/model/flat/CheckboxBoolean.java | 2 +- .../lunatic/model/flat/CheckboxGroup.java | 2 +- .../insee/lunatic/model/flat/CheckboxOne.java | 2 +- .../lunatic/model/flat/ComponentType.java | 39 ++++------ ...ntTypeEnum.java => ComponentTypeName.java} | 8 +-- .../model/flat/ControlContextType.java | 10 +-- .../insee/lunatic/model/flat/Datepicker.java | 2 +- .../fr/insee/lunatic/model/flat/Dropdown.java | 2 +- .../fr/insee/lunatic/model/flat/Duration.java | 2 +- .../lunatic/model/flat/FilterDescription.java | 2 +- .../fr/insee/lunatic/model/flat/Input.java | 2 +- .../insee/lunatic/model/flat/InputNumber.java | 72 +++---------------- .../fr/insee/lunatic/model/flat/Loop.java | 2 +- .../lunatic/model/flat/PairwiseLinks.java | 2 +- .../fr/insee/lunatic/model/flat/Question.java | 8 +-- .../lunatic/model/flat/Questionnaire.java | 38 +++------- .../fr/insee/lunatic/model/flat/Radio.java | 2 +- .../lunatic/model/flat/RosterForLoop.java | 10 +-- .../insee/lunatic/model/flat/Roundabout.java | 2 +- .../fr/insee/lunatic/model/flat/Sequence.java | 2 +- .../insee/lunatic/model/flat/Subsequence.java | 2 +- .../insee/lunatic/model/flat/Suggester.java | 2 +- .../fr/insee/lunatic/model/flat/Table.java | 18 ++--- .../fr/insee/lunatic/model/flat/Text.java | 2 +- .../fr/insee/lunatic/model/flat/Textarea.java | 2 +- .../model/flat/articulation/Articulation.java | 9 +-- .../flat/variable/CalculatedVariableType.java | 41 ++--------- .../flat/variable/CollectedVariableType.java | 7 -- .../AccordionSerializationTest.java | 2 +- .../conversion/BodyCellSerializationTest.java | 24 +++---- .../ComponentsSerialisationTest.java | 6 +- .../InputNumberSerializationTest.java | 46 ++---------- .../conversion/JsonDeserializerTest.java | 4 +- .../PaginationSerializationTest.java | 17 +---- .../RosterForLoopSerializationTest.java | 4 +- .../RoundaboutSerializationTest.java | 2 +- .../SuggesterSerializationTest.java | 2 +- .../conversion/TableSerializationTest.java | 4 +- .../conversion/TextSerializationTest.java | 2 +- .../conversion/UnitDeserializerTest.java | 33 --------- .../conversion/UnitSerializerTest.java | 41 ----------- .../CalculatedVariableSerializationTest.java | 21 ++---- 47 files changed, 123 insertions(+), 579 deletions(-) delete mode 100644 src/main/java/fr/insee/lunatic/conversion/UnitDeserializer.java delete mode 100644 src/main/java/fr/insee/lunatic/conversion/UnitSerializer.java rename src/main/java/fr/insee/lunatic/model/flat/{ComponentTypeEnum.java => ComponentTypeName.java} (85%) delete mode 100644 src/test/java/fr/insee/lunatic/conversion/UnitDeserializerTest.java delete mode 100644 src/test/java/fr/insee/lunatic/conversion/UnitSerializerTest.java diff --git a/src/main/java/fr/insee/lunatic/conversion/JsonDeserializer.java b/src/main/java/fr/insee/lunatic/conversion/JsonDeserializer.java index 5189bf8d..6941e683 100644 --- a/src/main/java/fr/insee/lunatic/conversion/JsonDeserializer.java +++ b/src/main/java/fr/insee/lunatic/conversion/JsonDeserializer.java @@ -3,46 +3,19 @@ import com.fasterxml.jackson.databind.ObjectMapper; import fr.insee.lunatic.exception.SerializationException; import fr.insee.lunatic.model.flat.Questionnaire; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; -import javax.xml.transform.stream.StreamSource; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Path; +@Slf4j public class JsonDeserializer { - private static final Logger logger = LoggerFactory.getLogger(JsonDeserializer.class); - - /** - * Deserializes the file at given relative path to a Lunatic questionnaire object. - * @param fileName Relative file path. - * @return Deserialized Lunatic questionnaire object. null if the input given is null or empty. - * @throws SerializationException if file cannot be found or deserialization fails. - * @deprecated The string file path argument is misleading, this method should be removed. - */ - @Deprecated(since = "3.16.0", forRemoval = true) - public Questionnaire deserialize(String fileName) throws SerializationException { - - if ((fileName == null) || (fileName.isEmpty())) return null; - - logger.info("Deserializing questionnaire from file {}", fileName); - - ObjectMapper mapper = new ObjectMapper(); - Questionnaire questionnaire; - try { - questionnaire = mapper.readValue(new StreamSource(fileName).getInputStream(), Questionnaire.class); - } catch (IOException e) { - throw new SerializationException(e.getMessage(), e); - } - logger.info("Questionnaire {} successfully deserialized", questionnaire.getId()); - return questionnaire; - } - public Questionnaire deserialize(InputStream jsonQuestionnaire) throws SerializationException { if (jsonQuestionnaire == null) return null; - logger.debug("Deserializing questionnaire from input stream"); + log.debug("Deserializing questionnaire from input stream"); ObjectMapper mapper = new ObjectMapper(); Questionnaire questionnaire; @@ -51,7 +24,8 @@ public Questionnaire deserialize(InputStream jsonQuestionnaire) throws Serializa } catch (IOException e) { throw new SerializationException(e.getMessage(), e); } - logger.info("Questionnaire {} successfully deserialized", questionnaire.getId()); + log.info("Questionnaire {} successfully deserialized", questionnaire.getId()); return questionnaire; } + } diff --git a/src/main/java/fr/insee/lunatic/conversion/UnitDeserializer.java b/src/main/java/fr/insee/lunatic/conversion/UnitDeserializer.java deleted file mode 100644 index 81de386e..00000000 --- a/src/main/java/fr/insee/lunatic/conversion/UnitDeserializer.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.insee.lunatic.conversion; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import fr.insee.lunatic.model.flat.InputNumber.Unit; -import fr.insee.lunatic.model.flat.LabelType; -import fr.insee.lunatic.model.flat.LabelTypeEnum; - -import java.io.IOException; - -public class UnitDeserializer extends StdDeserializer { - - public UnitDeserializer() { - super(Unit.class); - } - protected UnitDeserializer(Class unitClass) { - super(unitClass); - } - - @Override - public Unit deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) - throws IOException { - JsonNode unitNode = jsonParser.getCodec().readTree(jsonParser); - if (unitNode.isTextual()) { - Unit unit = new Unit(); - unit.setValue(unitNode.textValue()); - return unit; - } - if (unitNode.isObject()) { - Unit unit = new Unit(); - LabelType label = new LabelType(); - label.setValue(unitNode.get("value").textValue()); - label.setType(LabelTypeEnum.fromValue(unitNode.get("type").textValue())); - unit.setLabel(label); - return unit; - } - return null; - } - -} diff --git a/src/main/java/fr/insee/lunatic/conversion/UnitSerializer.java b/src/main/java/fr/insee/lunatic/conversion/UnitSerializer.java deleted file mode 100644 index b3be746c..00000000 --- a/src/main/java/fr/insee/lunatic/conversion/UnitSerializer.java +++ /dev/null @@ -1,46 +0,0 @@ -package fr.insee.lunatic.conversion; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import fr.insee.lunatic.model.flat.InputNumber.Unit; - -import java.io.IOException; - -public class UnitSerializer extends StdSerializer { - - public UnitSerializer() { - super(Unit.class); - } - protected UnitSerializer(Class unitClass) { - super(unitClass); - } - - @Override - public void serialize(Unit unit, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) - throws IOException { - if (unit.getLabel() != null){ - serializeLabel(unit, jsonGenerator); - return; - } - if (unit.getValue() != null) { - serializeString(unit, jsonGenerator); - return; - } - jsonGenerator.writeNull(); - } - - private void serializeString(Unit unit, JsonGenerator jsonGenerator) throws IOException { - jsonGenerator.writeString(unit.getValue()); - } - - private void serializeLabel(Unit unit, JsonGenerator jsonGenerator) throws IOException { - jsonGenerator.writeStartObject(); - jsonGenerator.writeFieldName("value"); - jsonGenerator.writeString(unit.getLabel().getValue()); - jsonGenerator.writeFieldName("type"); - jsonGenerator.writeString(unit.getLabel().getType().value()); - jsonGenerator.writeEndObject(); - } - -} diff --git a/src/main/java/fr/insee/lunatic/model/flat/Accordion.java b/src/main/java/fr/insee/lunatic/model/flat/Accordion.java index 5545a56c..27c46986 100644 --- a/src/main/java/fr/insee/lunatic/model/flat/Accordion.java +++ b/src/main/java/fr/insee/lunatic/model/flat/Accordion.java @@ -13,7 +13,7 @@ public class Accordion extends ComponentType { List items; public Accordion() { - super(ComponentTypeEnum.ACCORDION); + super(ComponentTypeName.ACCORDION); this.items = new ArrayList<>(); } diff --git a/src/main/java/fr/insee/lunatic/model/flat/BodyCell.java b/src/main/java/fr/insee/lunatic/model/flat/BodyCell.java index c8a6ba90..fd5d8c49 100644 --- a/src/main/java/fr/insee/lunatic/model/flat/BodyCell.java +++ b/src/main/java/fr/insee/lunatic/model/flat/BodyCell.java @@ -32,71 +32,48 @@ "optionResponses", "bindingDependencies" }) +@Getter @Setter public class BodyCell { /** Orientation for radio / checkbox cells. */ - @Getter @Setter protected Orientation orientation; - @Getter @Setter protected String value; - @Getter @Setter protected LabelType label; - @Getter @Setter protected String format; - @Getter @Setter protected String dateFormat; /** For input number cells. */ - protected InputNumber.Unit unit; + protected LabelType unit; - @Getter @Setter @JsonInclude(JsonInclude.Include.NON_EMPTY) protected List