Skip to content

Commit e65b02a

Browse files
UCT-722: Enhanced API coverage index
1 parent 946c968 commit e65b02a

File tree

5 files changed

+48
-36
lines changed

5 files changed

+48
-36
lines changed

src/com/magento/idea/magento2uct/versioning/VersionStateManager.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,6 @@ public boolean isApi(final @NotNull String fqn) {
9494
return apiCoverageStateIndex.has(fqn);
9595
}
9696

97-
/**
98-
* Get version in which an FQN was marked as an API.
99-
*
100-
* @param fqn String
101-
*
102-
* @return String
103-
*/
104-
public String getMarkedAsApiInVersion(final @NotNull String fqn) {
105-
return apiCoverageStateIndex.getVersion(fqn);
106-
}
107-
10897
/**
10998
* Version state manager constructor.
11099
*/
@@ -121,7 +110,7 @@ private VersionStateManager(final @NotNull Project project) {
121110
existenceStateIndex = new ExistenceStateIndex();
122111
compute(existenceStateIndex);
123112

124-
apiCoverageStateIndex = new ApiCoverageStateIndex();
113+
apiCoverageStateIndex = new ApiCoverageStateIndex(existenceStateIndex.getAllData());
125114
compute(apiCoverageStateIndex);
126115
}
127116

src/com/magento/idea/magento2uct/versioning/indexes/data/ApiCoverageStateIndex.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,27 @@ public class ApiCoverageStateIndex implements VersionStateIndex {
2727

2828
private final Map<String, Map<String, Boolean>> versioningData;
2929
private final Map<String, Boolean> targetVersionData;
30-
private final Map<String, String> changelog;
30+
private final Map<String, Boolean> codebaseSet;
3131
private String projectBasePath;
3232

3333
/**
3434
* Api coverage state index constructor.
3535
*/
3636
public ApiCoverageStateIndex() {
37+
this(new HashMap<>());
38+
}
39+
40+
/**
41+
* Api coverage state index constructor.
42+
*
43+
* @param existenceVersioningData Map
44+
*/
45+
public ApiCoverageStateIndex(final Map<String, Map<String, Boolean>> existenceVersioningData) {
3746
versioningData = new LinkedHashMap<>();
3847
targetVersionData = new HashMap<>();
39-
changelog = new HashMap<>();
48+
codebaseSet = new HashMap<>(
49+
VersioningDataOperationsUtil.unionVersionData(existenceVersioningData)
50+
);
4051
}
4152

4253
/**
@@ -59,20 +70,11 @@ public void setProjectBasePath(final @NotNull String projectBasePath) {
5970
public synchronized boolean has(final @NotNull String fqn) {
6071
groupLoadedData();
6172

62-
return targetVersionData.containsKey(fqn);
63-
}
64-
65-
/**
66-
* Get version state after lookup.
67-
*
68-
* @param fqn String
69-
*
70-
* @return String
71-
*/
72-
public String getVersion(final @NotNull String fqn) {
73-
final String version = changelog.get(fqn);
73+
if (targetVersionData.containsKey(fqn)) {
74+
return true;
75+
}
7476

75-
return version == null ? "some" : version;
77+
return !codebaseSet.containsKey(fqn);
7678
}
7779

7880
/**
@@ -173,7 +175,6 @@ private void groupLoadedData() {
173175
true
174176
);
175177
targetVersionData.putAll(gatheredData.getFirst());
176-
changelog.putAll(gatheredData.getSecond());
177178
}
178179
}
179180
}

src/com/magento/idea/magento2uct/versioning/indexes/data/DeprecationStateIndex.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import com.magento.idea.magento2uct.versioning.indexes.storage.FileLoader;
1212
import com.magento.idea.magento2uct.versioning.indexes.storage.IndexLoader;
1313
import com.magento.idea.magento2uct.versioning.indexes.storage.ResourceLoader;
14+
import com.magento.idea.magento2uct.versioning.processors.util.VersioningDataOperationsUtil;
1415
import java.io.IOException;
15-
import java.util.HashMap;
1616
import java.util.LinkedHashMap;
1717
import java.util.List;
1818
import java.util.Map;
@@ -92,13 +92,7 @@ public void loadFromFile(final @NotNull List<SupportedVersion> versions) {
9292
* @return Map[String, Boolean]
9393
*/
9494
public Map<String, Boolean> getIndexData() {
95-
final Map<String, Boolean> data = new HashMap<>();
96-
97-
for (final Map.Entry<String, Map<String, Boolean>> vData : versioningData.entrySet()) {
98-
data.putAll(vData.getValue());
99-
}
100-
101-
return data;
95+
return VersioningDataOperationsUtil.unionVersionData(versioningData);
10296
}
10397

10498
/**

src/com/magento/idea/magento2uct/versioning/indexes/data/ExistenceStateIndex.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@ public String getVersion(final @NotNull String fqn) {
7979
return version == null ? "some" : version;
8080
}
8181

82+
/**
83+
* Get versioning data.
84+
*
85+
* @return Map
86+
*/
87+
public Map<String, Map<String, Boolean>> getAllData() {
88+
return versioningData;
89+
}
90+
8291
/**
8392
* Get deprecation index data.
8493
*

src/com/magento/idea/magento2uct/versioning/processors/util/VersioningDataOperationsUtil.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,23 @@ public static Pair<Map<String, Boolean>, Map<String, String>> unionVersionDataWi
115115

116116
return new Pair<>(new HashMap<>(filteredUnion), new HashMap<>(changelog));
117117
}
118+
119+
/**
120+
* Union versioning data into single set.
121+
*
122+
* @param versioningData Map
123+
*
124+
* @return Map[String, Boolean]
125+
*/
126+
public static Map<String, Boolean> unionVersionData(
127+
final Map<String, Map<String, Boolean>> versioningData
128+
) {
129+
final Map<String, Boolean> union = new HashMap<>();
130+
131+
for (final Map.Entry<String, Map<String, Boolean>> vData : versioningData.entrySet()) {
132+
union.putAll(vData.getValue());
133+
}
134+
135+
return union;
136+
}
118137
}

0 commit comments

Comments
 (0)