View Javadoc
1   /*
2    * MIT License
3    * Copyright (c) 2006-2025 JMockit developers
4    * See LICENSE file for full license text.
5    */
6   package mockit.coverage.dataItems;
7   
8   import edu.umd.cs.findbugs.annotations.NonNull;
9   
10  import java.util.HashMap;
11  import java.util.Map;
12  
13  import mockit.internal.state.TestRun;
14  
15  public final class StaticFieldData extends FieldData {
16      private static final long serialVersionUID = -6596622341651601060L;
17  
18      @NonNull
19      private final transient Map<Integer, Boolean> testIdsToAssignments = new HashMap<>();
20  
21      void registerAssignment() {
22          int testId = TestRun.getTestId();
23          testIdsToAssignments.put(testId, Boolean.TRUE);
24          writeCount++;
25      }
26  
27      void registerRead() {
28          int testId = TestRun.getTestId();
29          testIdsToAssignments.put(testId, null);
30          readCount++;
31      }
32  
33      @Override
34      void markAsCoveredIfNoUnreadValuesAreLeft() {
35          for (Boolean withUnreadValue : testIdsToAssignments.values()) {
36              if (withUnreadValue == null) {
37                  covered = true;
38                  break;
39              }
40          }
41      }
42  }