Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend into DEVELOP
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
index 47543f1..7bdd411 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
@@ -14,7 +14,7 @@
*/
package org.eclipse.openk.gridfailureinformation.mapper;
-import org.eclipse.openk.gridfailureinformation.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.mapper.tools.AddressSplitterMerger;
import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
import org.eclipse.openk.gridfailureinformation.model.TblStation;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
@@ -28,7 +28,6 @@
import java.util.LinkedList;
import java.util.List;
-import java.util.Optional;
import java.util.stream.Collectors;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
@@ -78,33 +77,13 @@
@AfterMapping
default void splitFreetextAddress(TblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
- if( Constants.FREETEXT_ADDRESS_TYPE.equalsIgnoreCase(source.getAddressType())) {
- failureInformationDto.setFreetextCity(source.getCity());
- failureInformationDto.setFreetextDistrict(source.getDistrict());
- failureInformationDto.setFreetextPostcode(source.getPostcode());
- failureInformationDto.setCity(null);
- failureInformationDto.setDistrict(null);
- failureInformationDto.setPostcode(null);
- failureInformationDto.setStreet(null);
- failureInformationDto.setHousenumber(null);
- }
+ AddressSplitterMerger.splitFreetextAddress(source.getAddressType(), source.getCity(), source.getDistrict(),
+ source.getPostcode(), failureInformationDto);
}
@AfterMapping
default void splitFreetextAddress(FailureInformationDto source, @MappingTarget TblFailureInformation destTbl){
- StringBuilder sb = new StringBuilder();
- sb.append(Optional.ofNullable(source.getFreetextCity()).orElse(""));
- sb.append(Optional.ofNullable(source.getFreetextDistrict()).orElse(""));
- sb.append(Optional.ofNullable(source.getFreetextPostcode()).orElse(""));
- if( !sb.toString().trim().isEmpty()) { // freetextAddress is present
- destTbl.setAddressType(Constants.FREETEXT_ADDRESS_TYPE);
- destTbl.setCity(source.getFreetextCity());
- destTbl.setDistrict(source.getFreetextDistrict());
- destTbl.setPostcode(source.getFreetextPostcode());
- }
- else {
- destTbl.setAddressType(null);
- }
+ AddressSplitterMerger.mergeFreetextAddress(source, destTbl);
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/HistFailureInformationMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/HistFailureInformationMapper.java
index 38d9b41..243e176 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/HistFailureInformationMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/HistFailureInformationMapper.java
@@ -14,10 +14,13 @@
*/
package org.eclipse.openk.gridfailureinformation.mapper;
+import org.eclipse.openk.gridfailureinformation.mapper.tools.AddressSplitterMerger;
import org.eclipse.openk.gridfailureinformation.model.HtblFailureInformation;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
+import org.mapstruct.MappingTarget;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
@@ -28,7 +31,6 @@
@Mapping(source = "refFailureClassification.classification", target = "failureClassification"),
@Mapping(source = "refStatusIntern.uuid", target = "statusInternId"),
@Mapping(source = "refStatusIntern.status", target = "statusIntern"),
- //@Mapping(source = "refStatusExtern.status", target = "statusExtern"),
@Mapping(source = "refBranch.uuid", target = "branchId"),
@Mapping(source = "refBranch.name", target = "branch"),
@Mapping(source = "refBranch.colorCode", target = "branchColorCode"),
@@ -44,7 +46,6 @@
@Mapping(target = "refFailureClassification.classification", source = "failureClassification"),
@Mapping(target = "refStatusIntern.uuid", source = "statusInternId"),
@Mapping(target = "refStatusIntern.status", source = "statusIntern"),
- //@Mapping(target = "refStatusExtern.status", source = "statusExtern"),
@Mapping(target = "refBranch.uuid", source = "branchId"),
@Mapping(target = "refBranch.name", source = "branch"),
@Mapping(target = "refBranch.colorCode", source = "branchColorCode"),
@@ -56,4 +57,14 @@
HtblFailureInformation toHtblFailureInformation(FailureInformationDto failureInformationDto);
+ @AfterMapping
+ default void splitFreetextAddress(HtblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
+ AddressSplitterMerger.splitFreetextAddress(source.getAddressType(), source.getCity(),
+ source.getDistrict(), source.getPostcode(), failureInformationDto);
+ }
+
+ @AfterMapping
+ default void splitFreetextAddress(FailureInformationDto source, @MappingTarget HtblFailureInformation destTbl){
+ AddressSplitterMerger.mergeFreetextAddress(source, destTbl);
+ }
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/tools/AddressSplitterMerger.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/tools/AddressSplitterMerger.java
new file mode 100644
index 0000000..ca367d8
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/tools/AddressSplitterMerger.java
@@ -0,0 +1,60 @@
+package org.eclipse.openk.gridfailureinformation.mapper.tools;
+
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.model.HtblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+
+import java.util.Optional;
+
+public class AddressSplitterMerger {
+ private AddressSplitterMerger() {}
+
+ public static void splitFreetextAddress(String srcAddressType, String srcCity, String srcDistrict, String srcPostcode,
+ FailureInformationDto failureInformationDto){
+ if( Constants.FREETEXT_ADDRESS_TYPE.equalsIgnoreCase(srcAddressType)) {
+ failureInformationDto.setFreetextCity(srcCity);
+ failureInformationDto.setFreetextDistrict(srcDistrict);
+ failureInformationDto.setFreetextPostcode(srcPostcode);
+ failureInformationDto.setCity(null);
+ failureInformationDto.setDistrict(null);
+ failureInformationDto.setPostcode(null);
+ failureInformationDto.setStreet(null);
+ failureInformationDto.setHousenumber(null);
+ }
+ }
+
+ public static void mergeFreetextAddress(FailureInformationDto source, TblFailureInformation destTbl){
+
+ if( isFreetextPresent(source) ) { // freetextAddress is present
+ destTbl.setAddressType(Constants.FREETEXT_ADDRESS_TYPE);
+ destTbl.setCity(source.getFreetextCity());
+ destTbl.setDistrict(source.getFreetextDistrict());
+ destTbl.setPostcode(source.getFreetextPostcode());
+ }
+ else {
+ destTbl.setAddressType(null);
+ }
+ }
+
+ public static void mergeFreetextAddress(FailureInformationDto source, HtblFailureInformation destTbl){
+
+ if( isFreetextPresent(source) ) { // freetextAddress is present
+ destTbl.setAddressType(Constants.FREETEXT_ADDRESS_TYPE);
+ destTbl.setCity(source.getFreetextCity());
+ destTbl.setDistrict(source.getFreetextDistrict());
+ destTbl.setPostcode(source.getFreetextPostcode());
+ }
+ else {
+ destTbl.setAddressType(null);
+ }
+ }
+
+ private static boolean isFreetextPresent(FailureInformationDto source) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(Optional.ofNullable(source.getFreetextCity()).orElse(""));
+ sb.append(Optional.ofNullable(source.getFreetextDistrict()).orElse(""));
+ sb.append(Optional.ofNullable(source.getFreetextPostcode()).orElse(""));
+ return !sb.toString().trim().isEmpty();
+ }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/HtblFailureInformation.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/HtblFailureInformation.java
index dbbc3fd..9bc57c7 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/HtblFailureInformation.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/HtblFailureInformation.java
@@ -21,7 +21,15 @@
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EntityListeners;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.SequenceGenerator;
import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;
@@ -64,6 +72,7 @@
private String publicationStatus;
private String publicationFreetext;
private Boolean condensed;
+ private String addressType;
@CreatedDate
@Column(name = "create_date")