Skip to content

Commit 5f0ca4c

Browse files
authored
Bugfix: ignore static fields on Java classes (#6)
1 parent fbda625 commit 5f0ca4c

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/main/java/org/contextmapper/archunit/conditions/AdhereToCmlDomainObjectStructure.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import com.tngtech.archunit.core.domain.JavaClass;
1919
import com.tngtech.archunit.core.domain.JavaField;
20+
import com.tngtech.archunit.core.domain.JavaMember;
21+
import com.tngtech.archunit.core.domain.JavaModifier;
2022
import com.tngtech.archunit.lang.ArchCondition;
2123
import com.tngtech.archunit.lang.ConditionEvents;
2224
import com.tngtech.archunit.lang.SimpleConditionEvent;
@@ -27,6 +29,7 @@
2729
import org.eclipse.xtext.EcoreUtil2;
2830

2931
import java.util.Optional;
32+
import java.util.stream.Collectors;
3033

3134
public abstract class AdhereToCmlDomainObjectStructure extends ArchCondition<JavaClass> {
3235

@@ -44,7 +47,9 @@ public void check(JavaClass javaClass, ConditionEvents events) {
4447
return;
4548

4649
DomainObject cmlObject = optionalObject.get();
47-
for (JavaField field : javaClass.getFields()) {
50+
for (JavaField field : javaClass.getFields().stream()
51+
.filter(f -> !f.getModifiers().contains(JavaModifier.STATIC))
52+
.collect(Collectors.toSet())) {
4853
Optional<Attribute> cmlField = cmlObject.getAttributes().stream()
4954
.filter(f -> f.getName().equals(field.getName()))
5055
.findAny();

src/test/java/org/contextmapper/archunit/sample/sampleaggregate1_valueobjectfield_as_attribute/SampleValueObject1.java

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
@ValueObject
66
public class SampleValueObject1 {
77

8+
private static final String STATIC_FIELDS_MUST_BE_IGNORED = "";
9+
810
private String sampleField;
911

1012
}

0 commit comments

Comments
 (0)