Skip to content

Commit 3580f31

Browse files
authored
Merge pull request #171 from bci-oss/bug/#170-incomplete-equals-method
Update equals method for DefaultPropertyWrapper
2 parents c89278d + 74675ce commit 3580f31

File tree

5 files changed

+50
-97
lines changed

5 files changed

+50
-97
lines changed

core/sds-aspect-meta-model-java/src/main/java/io/openmanufacturing/sds/metamodel/impl/DefaultProperty.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ public boolean equals( final Object o ) {
140140
return false;
141141
}
142142
final DefaultProperty that = (DefaultProperty) o;
143-
return optional == that.optional &&
143+
return Objects.equals( getName(), that.getName() ) &&
144+
Objects.equals( getAspectModelUrn(), that.getAspectModelUrn() ) &&
145+
optional == that.optional &&
144146
notInPayload == that.notInPayload &&
145147
isAbstract == that.isAbstract &&
146148
Objects.equals( characteristic, that.characteristic ) &&

core/sds-aspect-meta-model-java/src/main/java/io/openmanufacturing/sds/metamodel/loader/DefaultPropertyWrapper.java

Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -13,114 +13,68 @@
1313

1414
package io.openmanufacturing.sds.metamodel.loader;
1515

16-
import java.util.Objects;
1716
import java.util.Optional;
1817

1918
import io.openmanufacturing.sds.metamodel.Characteristic;
2019
import io.openmanufacturing.sds.metamodel.Property;
2120
import io.openmanufacturing.sds.metamodel.ScalarValue;
22-
import io.openmanufacturing.sds.metamodel.impl.DefaultCharacteristic;
2321
import io.openmanufacturing.sds.metamodel.impl.DefaultProperty;
2422

2523
public class DefaultPropertyWrapper extends DefaultProperty {
24+
private DefaultProperty property;
2625

27-
private Optional<Characteristic> characteristic;
28-
private Optional<ScalarValue> exampleValue;
29-
private boolean optional;
30-
private boolean notInPayload;
31-
private boolean isAbstract;
32-
private Optional<Property> extends_;
33-
private Optional<String> payloadName;
34-
35-
public DefaultPropertyWrapper( final MetaModelBaseAttributes metaModelBaseAttributes ) {
36-
super( metaModelBaseAttributes, Optional.of( new DefaultCharacteristic( metaModelBaseAttributes, Optional.empty() ) ),
37-
Optional.empty(), false, false, Optional.empty(), false, Optional.empty() );
26+
public DefaultPropertyWrapper( MetaModelBaseAttributes metaModelBaseAttributes ) {
27+
super( metaModelBaseAttributes, null, null, false, false, null, false, null );
3828
}
3929

4030
@Override
4131
public String getPayloadName() {
42-
return payloadName.orElseGet( this::getName );
43-
}
44-
45-
public void setPayloadName( final Optional<String> payloadName ) {
46-
this.payloadName = payloadName;
32+
return property.getPayloadName();
4733
}
4834

4935
@Override
5036
public Optional<ScalarValue> getExampleValue() {
51-
return exampleValue;
52-
}
53-
54-
public void setExampleValue( final Optional<ScalarValue> exampleValue ) {
55-
this.exampleValue = exampleValue;
37+
return property.getExampleValue();
5638
}
5739

5840
@Override
5941
public boolean isNotInPayload() {
60-
return notInPayload;
61-
}
62-
63-
public void setNotInPayload( final boolean notInPayload ) {
64-
this.notInPayload = notInPayload;
42+
return property.isNotInPayload();
6543
}
6644

6745
@Override
6846
public boolean isOptional() {
69-
return optional;
70-
}
71-
72-
public void setOptional( final boolean optional ) {
73-
this.optional = optional;
47+
return property.isOptional();
7448
}
7549

7650
@Override
7751
public boolean isAbstract() {
78-
return isAbstract;
79-
}
80-
81-
public void setAbstract( final boolean isAbstract ) {
82-
this.isAbstract = isAbstract;
52+
return property.isAbstract();
8353
}
8454

8555
@Override
8656
public Optional<Property> getExtends() {
87-
return extends_;
88-
}
89-
90-
public void setExtends_( final Optional<Property> extends_ ) {
91-
this.extends_ = extends_;
57+
return property.getExtends();
9258
}
9359

9460
@Override
9561
public Optional<Characteristic> getCharacteristic() {
96-
return characteristic;
62+
return property.getCharacteristic();
9763
}
9864

99-
public void setCharacteristic( final Characteristic characteristic ) {
100-
this.characteristic = Optional.of( characteristic );
101-
}
102-
103-
@SuppressWarnings( "squid:S1067" )
104-
// Shall be the same as in super class just without calling super due to possible recursive dependencies
10565
@Override
10666
public boolean equals( final Object o ) {
107-
if ( this == o ) {
108-
return true;
109-
}
110-
if ( o == null || getClass() != o.getClass() ) {
111-
return false;
112-
}
113-
final DefaultPropertyWrapper that = (DefaultPropertyWrapper) o;
114-
return optional == that.optional &&
115-
notInPayload == that.notInPayload &&
116-
isAbstract == that.isAbstract &&
117-
Objects.equals( extends_, that.extends_ ) &&
118-
Objects.equals( characteristic, that.characteristic ) &&
119-
Objects.equals( exampleValue, that.exampleValue );
67+
if ( o != null )
68+
return o.equals( property );
69+
return false;
12070
}
12171

12272
@Override
12373
public int hashCode() {
124-
return Objects.hash( super.hashCode(), exampleValue, optional, notInPayload, isAbstract, extends_ );
74+
return property.hashCode();
75+
}
76+
77+
public void setProperty( DefaultProperty property ) {
78+
this.property = property;
12579
}
12680
}

core/sds-aspect-meta-model-java/src/main/java/io/openmanufacturing/sds/metamodel/loader/instantiator/PropertyInstantiator.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.openmanufacturing.sds.metamodel.Scalar;
3030
import io.openmanufacturing.sds.metamodel.ScalarValue;
3131
import io.openmanufacturing.sds.metamodel.impl.DefaultCharacteristic;
32+
import io.openmanufacturing.sds.metamodel.impl.DefaultProperty;
3233
import io.openmanufacturing.sds.metamodel.impl.DefaultScalarValue;
3334
import io.openmanufacturing.sds.metamodel.loader.DefaultPropertyWrapper;
3435
import io.openmanufacturing.sds.metamodel.loader.Instantiator;
@@ -59,24 +60,21 @@ public Property apply( final Resource property ) {
5960
final boolean isAbstract = property.getModel().contains( property, RDF.type, bamm.AbstractProperty() );
6061

6162
final MetaModelBaseAttributes metaModelBaseAttributes = buildBaseAttributes( property );
62-
final DefaultPropertyWrapper defaultProperty = new DefaultPropertyWrapper( metaModelBaseAttributes );
63+
final DefaultPropertyWrapper defaultPropertyWrapper = new DefaultPropertyWrapper( metaModelBaseAttributes);
6364

6465
if ( resourcePropertyMap.containsKey( property ) ) {
6566
final Property propertyInstance = resourcePropertyMap.get( property );
6667
resourcePropertyMap.remove( property );
6768
return propertyInstance;
6869
}
69-
resourcePropertyMap.put( property, defaultProperty );
70-
70+
resourcePropertyMap.put( property, defaultPropertyWrapper );
71+
DefaultProperty defProperty;
7172
if ( isAbstract ) {
72-
defaultProperty.setCharacteristic( fallbackCharacteristic );
73-
defaultProperty.setExampleValue( Optional.empty() );
74-
defaultProperty.setPayloadName( Optional.empty() );
73+
defProperty = new DefaultProperty( metaModelBaseAttributes, Optional.of( fallbackCharacteristic), Optional.empty(), isOptional,
74+
isNotInPayload, payloadName, isAbstract, extends_ );
7575
} else {
7676
final Resource characteristicResource = attributeValue( property, bamm.characteristic() ).getResource();
7777
final Characteristic characteristic = modelElementFactory.create( Characteristic.class, characteristicResource );
78-
defaultProperty.setCharacteristic( characteristic );
79-
8078
final Optional<ScalarValue> exampleValue = optionalAttributeValue( property, bamm.exampleValue() )
8179
.flatMap( statement -> characteristic.getDataType()
8280
.map( type -> {
@@ -93,14 +91,10 @@ public Property apply( final Resource property ) {
9391
return new DefaultScalarValue( value, type );
9492
} ) );
9593

96-
defaultProperty.setExampleValue( exampleValue );
97-
defaultProperty.setNotInPayload( isNotInPayload );
94+
defProperty = new DefaultProperty( metaModelBaseAttributes, Optional.of( characteristic), exampleValue, isOptional,
95+
isNotInPayload, payloadName, isAbstract, extends_ );
9896
}
99-
defaultProperty.setOptional( isOptional );
100-
defaultProperty.setPayloadName( payloadName );
101-
defaultProperty.setAbstract( isAbstract );
102-
defaultProperty.setExtends_( extends_ );
103-
104-
return defaultProperty;
97+
defaultPropertyWrapper.setProperty( defProperty );
98+
return defaultPropertyWrapper;
10599
}
106100
}

core/sds-aspect-meta-model-version-migrator/src/main/java/io/openmanufacturing/sds/aspectmodel/versionupdate/MigratorService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ private Model execute( final Migrator migrator, final Model sourceModel ) {
6767
* which is then applied to the given source model.
6868
*
6969
* @param versionedModel the source model
70-
* @param targetVersion the target meta model version
7170
* @return the resulting {@link VersionedModel} that corresponds to the input Aspect model, but with the new meta model version
7271
*/
7372
public Try<VersionedModel> updateMetaModelVersion( final VersionedModel versionedModel ) {

core/sds-aspect-model-resolver/src/test/java/io/openmanufacturing/sds/aspectmodel/resolver/AspectModelResolverTest.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.io.File;
1919
import java.io.FileNotFoundException;
20+
import java.net.URISyntaxException;
2021

2122
import org.apache.jena.rdf.model.Model;
2223
import org.apache.jena.rdf.model.RDFNode;
@@ -42,10 +43,11 @@ public class AspectModelResolverTest extends MetaModelVersions {
4243

4344
@ParameterizedTest
4445
@MethodSource( value = "allVersions" )
45-
public void testLoadDataModelExpectSuccess( final KnownVersion metaModelVersion ) {
46+
public void testLoadDataModelExpectSuccess( final KnownVersion metaModelVersion ) throws URISyntaxException {
4647
final File aspectModelsRootDirectory = new File(
4748
AspectModelResolverTest.class.getClassLoader()
4849
.getResource( metaModelVersion.toString().toLowerCase() )
50+
.toURI()
4951
.getPath() );
5052

5153
final AspectModelUrn testUrn = AspectModelUrn.fromUrn( "urn:bamm:io.openmanufacturing.test:1.0.0#Test" );
@@ -68,10 +70,11 @@ public void testLoadDataModelExpectSuccess( final KnownVersion metaModelVersion
6870
@ParameterizedTest
6971
@MethodSource( value = "allVersions" )
7072
public void testLoadModelWithVersionEqualToUnsupportedMetaModelVersionExpectSuccess(
71-
final KnownVersion metaModelVersion ) {
73+
final KnownVersion metaModelVersion ) throws URISyntaxException {
7274
final File aspectModelsRootDirectory = new File(
7375
AspectModelResolverTest.class.getClassLoader()
7476
.getResource( metaModelVersion.toString().toLowerCase() )
77+
.toURI()
7578
.getPath() );
7679

7780
final AspectModelUrn testUrn = AspectModelUrn.fromUrn( "urn:bamm:io.openmanufacturing.test:1.1.0#Test" );
@@ -93,10 +96,10 @@ public void testLoadModelWithVersionEqualToUnsupportedMetaModelVersionExpectSucc
9396

9497
@ParameterizedTest
9598
@MethodSource( value = "allVersions" )
96-
public void testResolveReferencedModelFromMemoryExpectSuccess( final KnownVersion metaModelVersion ) {
99+
public void testResolveReferencedModelFromMemoryExpectSuccess( final KnownVersion metaModelVersion ) throws URISyntaxException {
97100
final File aspectModelsRootDirectory = new File(
98101
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
99-
.getPath() );
102+
.toURI().getPath() );
100103

101104
final ResolutionStrategy urnStrategy = new FileSystemStrategy( aspectModelsRootDirectory.toPath() );
102105
final AspectModelUrn inputUrn = AspectModelUrn
@@ -134,10 +137,10 @@ public void testResolveReferencedModelFromMemoryExpectSuccess( final KnownVersio
134137

135138
@ParameterizedTest
136139
@MethodSource( value = "allVersions" )
137-
public void testResolveReferencedModelExpectSuccess( final KnownVersion metaModelVersion ) {
140+
public void testResolveReferencedModelExpectSuccess( final KnownVersion metaModelVersion ) throws URISyntaxException {
138141
final File aspectModelsRootDirectory = new File(
139142
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
140-
.getPath() );
143+
.toURI().getPath() );
141144

142145
final AspectModelUrn testUrn = AspectModelUrn
143146
.fromUrn( "urn:bamm:io.openmanufacturing.test:aspect-model:AnotherTest:1.0.0" );
@@ -170,10 +173,11 @@ public void testResolveReferencedModelExpectSuccess( final KnownVersion metaMode
170173

171174
@ParameterizedTest
172175
@MethodSource( value = "allVersions" )
173-
public void testResolutionMissingAspectExpectFailure( final KnownVersion metaModelVersion ) {
176+
public void testResolutionMissingAspectExpectFailure( final KnownVersion metaModelVersion ) throws URISyntaxException {
174177
final File aspectModelsRootDirectory = new File(
175178
AspectModelResolverTest.class.getClassLoader()
176179
.getResource( metaModelVersion.toString().toLowerCase() )
180+
.toURI()
177181
.getPath() );
178182

179183
final AspectModelUrn testUrn = AspectModelUrn
@@ -190,7 +194,7 @@ public void testResolutionMissingAspectExpectFailure( final KnownVersion metaMod
190194
public void testResolutionMissingModelElementExpectFailure( final KnownVersion metaModelVersion ) throws Throwable {
191195
final File aspectModelsRootDirectory = new File(
192196
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
193-
.getPath() );
197+
.toURI().getPath() );
194198

195199
final AspectModelUrn testUrn = AspectModelUrn
196200
.fromUrn( "urn:bamm:io.openmanufacturing.test:1.0.0#FailingTest" );
@@ -205,10 +209,10 @@ public void testResolutionMissingModelElementExpectFailure( final KnownVersion m
205209

206210
@ParameterizedTest
207211
@MethodSource( value = "allVersions" )
208-
public void testResolutionReferencedCharacteristicExpectSuccess( final KnownVersion metaModelVersion ) {
212+
public void testResolutionReferencedCharacteristicExpectSuccess( final KnownVersion metaModelVersion ) throws URISyntaxException {
209213
final File aspectModelsRootDirectory = new File(
210214
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
211-
.getPath() );
215+
.toURI().getPath() );
212216

213217
final AspectModelUrn testUrn = AspectModelUrn
214218
.fromUrn( "urn:bamm:io.openmanufacturing.test:1.0.0#ReferenceCharacteristicTest" );
@@ -255,7 +259,7 @@ public void testResolutionReferencedCharacteristicExpectSuccess( final KnownVers
255259
public void testTransitiveReferenceExpectSuccess( final KnownVersion metaModelVersion ) throws Throwable {
256260
final File aspectModelsRootDirectory = new File(
257261
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
258-
.getPath() );
262+
.toURI().getPath() );
259263

260264
final AspectModelUrn testUrn = AspectModelUrn
261265
.fromUrn( "urn:bamm:io.openmanufacturing.test:1.0.0#TransitiveReferenceTest" );
@@ -275,10 +279,10 @@ public void testTransitiveReferenceExpectSuccess( final KnownVersion metaModelVe
275279

276280
@ParameterizedTest
277281
@MethodSource( value = "allVersions" )
278-
public void testResolutionReferencedEntity( final KnownVersion metaModelVersion ) {
282+
public void testResolutionReferencedEntity( final KnownVersion metaModelVersion ) throws URISyntaxException {
279283
final File aspectModelsRootDirectory = new File(
280284
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
281-
.getPath() );
285+
.toURI().getPath() );
282286

283287
final AspectModelUrn testUrn = AspectModelUrn
284288
.fromUrn( "urn:bamm:io.openmanufacturing.test:1.0.0#ReferenceEntityTest" );
@@ -313,10 +317,10 @@ public void testResolutionReferencedEntity( final KnownVersion metaModelVersion
313317

314318
@ParameterizedTest
315319
@MethodSource( value = "allVersions" )
316-
public void testAspectReferencingAnotherAspectExpectSuccess( final KnownVersion metaModelVersion ) {
320+
public void testAspectReferencingAnotherAspectExpectSuccess( final KnownVersion metaModelVersion ) throws URISyntaxException {
317321
final File aspectModelsRootDirectory = new File(
318322
AspectModelResolverTest.class.getClassLoader().getResource( metaModelVersion.toString().toLowerCase() )
319-
.getPath() );
323+
.toURI().getPath() );
320324

321325
final String aspectUrn = "urn:bamm:io.openmanufacturing.test:2.0.0#Test";
322326
final AspectModelUrn testUrn = AspectModelUrn.fromUrn( aspectUrn );

0 commit comments

Comments
 (0)