Skip to content

Commit cee4f8a

Browse files
authored
Merge pull request #106 from com-pas/fix/70-some-DA-should-not-be-updatable
[#70] : all updatable DA should be returned Signed-off-by: massifben <[email protected]>
2 parents 51b311d + 9478609 commit cee4f8a

24 files changed

+1116
-372
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<dependency>
4444
<groupId>org.projectlombok</groupId>
4545
<artifactId>lombok</artifactId>
46-
<version>1.18.20</version>
46+
<version>1.18.24</version>
4747
</dependency>
4848
<dependency>
4949
<groupId>org.junit.jupiter</groupId>
@@ -141,4 +141,4 @@
141141
</plugin>
142142
</plugins>
143143
</build>
144-
</project>
144+
</project>

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/dto/DaTypeName.java

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
package org.lfenergy.compas.sct.commons.dto;
66

7-
import com.fasterxml.jackson.annotation.JsonIgnore;
8-
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
9-
import com.fasterxml.jackson.annotation.JsonProperty;
10-
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
7+
import lombok.EqualsAndHashCode;
118
import lombok.Getter;
129
import lombok.NoArgsConstructor;
1310
import lombok.Setter;
@@ -18,12 +15,12 @@
1815
import java.util.HashMap;
1916
import java.util.List;
2017
import java.util.Map;
21-
import java.util.Objects;
2218
import java.util.stream.Collectors;
2319

2420
@Getter
2521
@Setter
2622
@NoArgsConstructor
23+
@EqualsAndHashCode(callSuper = true)
2724
public class DaTypeName extends DataTypeName{
2825
public static final String VALIDATION_REGEX
2926
= "[a-zA-Z][a-zA-Z0-9]*(\\([0-9]+\\))?(\\.[a-zA-Z][a-zA-Z0-9]*(\\([0-9]+\\))?)*";
@@ -37,6 +34,10 @@ public DaTypeName(String daName) {
3734
super(daName);
3835
}
3936

37+
public DaTypeName(String name, String names) {
38+
super(name, names);
39+
}
40+
4041
public static DaTypeName from(DaTypeName dataName){
4142
DaTypeName daTypeName = new DaTypeName(dataName.toString());
4243
if(dataName.isDefined()) {
@@ -50,11 +51,6 @@ public static DaTypeName from(DaTypeName dataName){
5051
return daTypeName;
5152
}
5253

53-
54-
public DaTypeName(String name, String names) {
55-
super(name, names);
56-
}
57-
5854
public boolean isValImport(){
5955
return valImport;
6056
}
@@ -94,22 +90,6 @@ public void addDaiValue(Long sg, String val) {
9490
}
9591
}
9692

97-
@Override
98-
public boolean equals(Object o) {
99-
if (this == o) return true;
100-
if (o == null || o.getClass() != getClass()) return false;
101-
if (!super.equals(o)) return false;
102-
DaTypeName that = (DaTypeName) o;
103-
return fc == that.fc &&
104-
Objects.equals(bType, that.bType) &&
105-
Objects.equals(type, that.type);
106-
}
107-
108-
@Override
109-
public int hashCode() {
110-
return Objects.hash(super.hashCode(), fc, bType, type);
111-
}
112-
11393
public void merge(DaTypeName daName) {
11494
if(!isDefined()) return;
11595
fc = daName.fc;

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/dto/DataTypeName.java

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,41 @@
55
package org.lfenergy.compas.sct.commons.dto;
66

77
import com.fasterxml.jackson.annotation.JsonIgnore;
8+
import lombok.EqualsAndHashCode;
89
import lombok.Getter;
910
import lombok.NoArgsConstructor;
10-
import lombok.NonNull;
1111
import lombok.Setter;
1212
import lombok.extern.slf4j.Slf4j;
1313
import org.apache.commons.lang3.StringUtils;
1414

1515
import java.util.ArrayList;
16-
import java.util.Arrays;
1716
import java.util.List;
18-
import java.util.Objects;
19-
import java.util.stream.Collectors;
20-
import java.util.stream.Stream;
2117

2218

2319
@Getter
2420
@Setter
2521
@Slf4j
2622
@NoArgsConstructor
23+
@EqualsAndHashCode
2724
public class DataTypeName {
2825
protected String name = ""; // dataName or DataAttributeName
2926

3027
private List<String> structNames = new ArrayList<>(); // [.DataName[…]] or [.DAComponentName[ ….]]
3128

3229
public DataTypeName(String dataName){
3330
if(dataName == null) return;
34-
3531
String[] tokens = dataName.split("\\.");
3632
name = tokens[0];
3733
if(tokens.length > 1){
38-
int idx = dataName.indexOf(".");
39-
tokens = dataName.substring(idx + 1).split("\\.");
40-
structNames = Stream.of(tokens).collect(Collectors.toList());
34+
structNames.addAll(List.of(tokens).subList(1, tokens.length));
35+
}
36+
}
37+
38+
public DataTypeName(String name, String names){
39+
if(name == null) return;
40+
this.name = name;
41+
if (StringUtils.isNotBlank(names)){
42+
structNames.addAll(List.of(names.split("\\.")));
4143
}
4244
}
4345

@@ -49,12 +51,6 @@ public boolean isDefined(){
4951
return !StringUtils.isBlank(name);
5052
}
5153

52-
public DataTypeName(String name, @NonNull String names){
53-
this.name = name;
54-
String[] tokens = names.split("\\.");
55-
structNames = Stream.of(tokens).collect(Collectors.toList());
56-
}
57-
5854
@Override
5955
public String toString(){
6056
StringBuilder stringBuilder = new StringBuilder();
@@ -66,21 +62,6 @@ public String toString(){
6662
return stringBuilder.toString();
6763
}
6864

69-
@Override
70-
public boolean equals(Object o) {
71-
if (this == o) return true;
72-
if (o==null || o.getClass() != getClass()) return false;
73-
DataTypeName that = (DataTypeName) o;
74-
return Objects.equals(name, that.name) &&
75-
Arrays.equals(structNames.toArray(new String[0]),
76-
that.structNames.toArray(new String[0]));
77-
}
78-
79-
@Override
80-
public int hashCode() {
81-
return Objects.hash(name, structNames);
82-
}
83-
8465
public void addStructName(String structName) {
8566
structNames.add(structName);
8667
}

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/dto/DoTypeName.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,16 @@
44

55
package org.lfenergy.compas.sct.commons.dto;
66

7+
import lombok.EqualsAndHashCode;
78
import lombok.Getter;
89
import lombok.NoArgsConstructor;
910
import lombok.Setter;
1011
import org.lfenergy.compas.scl2007b4.model.TPredefinedCDCEnum;
1112

12-
import java.util.Map;
13-
import java.util.Objects;
14-
import java.util.stream.Collectors;
15-
1613
@Getter
1714
@Setter
1815
@NoArgsConstructor
16+
@EqualsAndHashCode(callSuper = true)
1917
public class DoTypeName extends DataTypeName {
2018
public static final String VALIDATION_REGEX = "[A-Z][0-9A-Za-z]{0,11}(\\.[a-z][0-9A-Za-z]*(\\([0-9]+\\))?)?";
2119
private TPredefinedCDCEnum cdc;
@@ -35,20 +33,6 @@ public static DoTypeName from(DoTypeName dataName){
3533
return doTypeName;
3634
}
3735

38-
@Override
39-
public boolean equals(Object o) {
40-
if (this == o) return true;
41-
if (o == null || o.getClass() !=getClass()) return false;
42-
if (!super.equals(o)) return false;
43-
DoTypeName that = (DoTypeName) o;
44-
return cdc == that.cdc;
45-
}
46-
47-
@Override
48-
public int hashCode() {
49-
return Objects.hash(super.hashCode(), cdc);
50-
}
51-
5236
public void merge(DoTypeName doName) {
5337
if(!isDefined()) return;
5438
if(cdc == null)

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/dto/LNodeDTO.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import org.lfenergy.compas.scl2007b4.model.TAnyLN;
1111
import org.lfenergy.compas.scl2007b4.model.TExtRef;
1212
import org.lfenergy.compas.sct.commons.Utils;
13-
import org.lfenergy.compas.sct.commons.exception.ScdException;
14-
import org.lfenergy.compas.sct.commons.scl.SclRootAdapter;
1513
import org.lfenergy.compas.sct.commons.scl.dtt.DataTypeTemplateAdapter;
1614
import org.lfenergy.compas.sct.commons.scl.dtt.LNodeTypeAdapter;
1715
import org.lfenergy.compas.sct.commons.scl.ied.AbstractLNAdapter;
@@ -92,11 +90,11 @@ public static <T extends TAnyLN> LNodeDTO from(AbstractLNAdapter<T> nodeAdapter,
9290
)
9391
)
9492
);
95-
ResumedDataTemplate filter = new ResumedDataTemplate();
96-
filter.setLnInst(nodeAdapter.getLNInst());
97-
filter.setLnClass(nodeAdapter.getLNClass());
98-
filter.setPrefix(nodeAdapter.getPrefix());
99-
filter.setLnType(nodeAdapter.getLnType());
93+
ResumedDataTemplate filter = ResumedDataTemplate.builder()
94+
.lnInst(nodeAdapter.getLNInst())
95+
.lnClass(nodeAdapter.getLNClass())
96+
.prefix(nodeAdapter.getPrefix())
97+
.lnType(nodeAdapter.getLnType()).build();
10098
List<ResumedDataTemplate> resumedDataTemplateList = lNodeTypeAdapter.getResumedDTTs(filter);
10199
lNodeDTO.addAllResumedDataTemplate(resumedDataTemplateList);
102100
}

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/dto/ResumedDataTemplate.java

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,30 @@
55
package org.lfenergy.compas.sct.commons.dto;
66

77
import com.fasterxml.jackson.annotation.JsonIgnore;
8-
import lombok.Getter;
9-
import lombok.NoArgsConstructor;
10-
import lombok.Setter;
11-
import org.lfenergy.compas.scl2007b4.model.TFCEnum;
12-
import org.lfenergy.compas.scl2007b4.model.TLLN0Enum;
13-
import org.lfenergy.compas.scl2007b4.model.TPredefinedBasicTypeEnum;
14-
import org.lfenergy.compas.scl2007b4.model.TPredefinedCDCEnum;
15-
import org.lfenergy.compas.scl2007b4.model.TVal;
8+
import lombok.*;
9+
import org.lfenergy.compas.scl2007b4.model.*;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
1613

17-
import java.util.*;
1814

1915
@Setter
2016
@Getter
17+
@AllArgsConstructor
2118
@NoArgsConstructor
19+
@EqualsAndHashCode
20+
@Builder(toBuilder = true)
2221
public class ResumedDataTemplate {
2322

2423
private String prefix;
2524
private String lnType;
2625
private String lnClass;
2726
private String lnInst;
27+
@Builder.Default
28+
@NonNull
2829
private DoTypeName doName = new DoTypeName("");
30+
@Builder.Default
31+
@NonNull
2932
private DaTypeName daName = new DaTypeName("");
3033

3134
public static ResumedDataTemplate copyFrom(ResumedDataTemplate dtt){
@@ -41,27 +44,29 @@ public static ResumedDataTemplate copyFrom(ResumedDataTemplate dtt){
4144
}
4245

4346
public boolean isUpdatable(){
44-
return daName.isDefined() && daName.isUpdatable();
47+
return daName.isDefined() && daName.isUpdatable();
4548
}
4649

4750
@JsonIgnore
4851
public String getObjRef(String iedName, String ldInst){
49-
StringBuilder stringBuilder = new StringBuilder();
5052
//LDName
51-
stringBuilder.append(iedName)
52-
.append(ldInst)
53-
.append("/");
53+
return iedName + ldInst + "/" + getLNRef();
54+
}
55+
56+
@JsonIgnore
57+
public String getLNRef(){
58+
StringBuilder stringBuilder = new StringBuilder();
5459
if(TLLN0Enum.LLN_0.value().equals(lnClass)){
5560
stringBuilder.append(TLLN0Enum.LLN_0.value());
5661
} else {
5762
stringBuilder.append(prefix)
58-
.append(lnClass)
59-
.append(lnInst);
63+
.append(lnClass)
64+
.append(lnInst);
6065
}
6166
stringBuilder.append('.')
62-
.append(getDoRef())
63-
.append('.')
64-
.append(getDaRef());
67+
.append(getDoRef())
68+
.append('.')
69+
.append(getDaRef());
6570

6671
return stringBuilder.toString();
6772
}
@@ -120,13 +125,19 @@ public List<String> getBdaNames(){
120125
return List.of(daName.getStructNames().toArray(new String[0]));
121126
}
122127

123-
public <T extends DataTypeName> void addStructName(String structName, Class<T> cls){
124-
if(cls.equals(DaTypeName.class) && isDaNameDefined()) {
125-
daName.addStructName(structName);
126-
} else if(cls.equals(DoTypeName.class) && isDoNameDefined()) {
128+
public void addDoStructName(String structName){
129+
if(isDoNameDefined()) {
127130
doName.addStructName(structName);
128131
} else {
129-
throw new IllegalArgumentException("Cannot add Struct name for undefined data type");
132+
throw new IllegalArgumentException("DO name must be defined before adding DO StructName");
133+
}
134+
}
135+
136+
public void addDaStructName(String structName){
137+
if(isDaNameDefined()) {
138+
daName.addStructName(structName);
139+
} else {
140+
throw new IllegalArgumentException("DA name must be defined before adding DA StructName");
130141
}
131142
}
132143

@@ -190,7 +201,6 @@ public void setValImport(boolean valImport) {
190201
}
191202
}
192203

193-
194204
public boolean isValImport(){
195205
return daName.isValImport();
196206
}

sct-commons/src/main/java/org/lfenergy/compas/sct/commons/scl/SclService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,6 @@ public static Set<ResumedDataTemplate> getDAI(SCL scd, String iedName, String ld
306306
);
307307

308308
return lDeviceAdapter.getDAI(rDtt, updatable);
309-
310309
}
311310

312311
public static void updateDAI(SCL scd, String iedName, String ldInst, ResumedDataTemplate rDtt) throws ScdException {

0 commit comments

Comments
 (0)