summaryrefslogtreecommitdiffstats
path: root/vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java')
-rw-r--r--vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java68
1 files changed, 10 insertions, 58 deletions
diff --git a/vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java b/vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java
index 4b6ab776c..4a8a77827 100644
--- a/vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java
+++ b/vpp-integration/api-docs/core/src/main/java/io/fd/hc2vpp/docs/core/CoverageGenerator.java
@@ -34,7 +34,6 @@ import io.fd.hc2vpp.docs.api.PluginCoverage;
import io.fd.hc2vpp.docs.api.YangType;
import io.fd.honeycomb.translate.write.WriterFactory;
import java.lang.reflect.Field;
-import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
@@ -59,14 +58,13 @@ public class CoverageGenerator implements VppApiUtils {
final List<Module> scannedModules,
final YangTypeLinkIndex yangTypeIndex,
final ClassPathTypeIndex classPathIndex) {
- LOG.info("Generating config coverage for plugin {}", pluginClass);
+ LOG.info("Generating config VPP API to Yang mapping for plugin {}", pluginClass);
getInjectedWriterFactories(scannedModules).forEach(writerFactory -> writerFactory.init(writerBuilder));
- LOG.info("Processing single node handlers");
- final Set<CoverageUnit> singleNodeCoverageUnits = writerBuilder.getSingleNodeHandlers().stream()
- .flatMap(writer -> {
+ final Set<CoverageUnit> coverageUnits = writerBuilder.getWriteHandlers().stream()
+ .flatMap(handler -> {
// extracts customizer class from handler
- final Class<?> customizerClass = getCustomizerClass(writer);
+ final Class<?> customizerClass = getCustomizerClass(handler.getWriter());
// scans within write method
final Set<PluginMethodReference> writeReferences =
@@ -81,62 +79,19 @@ public class CoverageGenerator implements VppApiUtils {
new CoverageScanner(customizerClass, DELETE, pluginClass).scan();
return Stream.of(writeReferences.stream(), updateReferences.stream(), deleteReferences.stream())
- .flatMap(pluginMethodReferences -> pluginMethodReferences)
+ .flatMap(pluginMethodReferenceStream -> pluginMethodReferenceStream)
.map(reference -> {
final CoverageUnit.CoverageUnitBuilder builder = new CoverageUnit.CoverageUnitBuilder();
// binds vpp api name and generateLink bind with version
- builder.setVppApi(fromJvppApi(version, reference));
+ builder.setVppApi(fromJvppApi(version, reference.getName()));
//binds java api reference
builder.setJavaApi(new JavaApiMessage(reference.getName()));
- //binds Yang types with links from pre-build index
- // TODO - use deserialized yii
- final String typeName = writer.getManagedDataObjectType().getTargetType().getTypeName();
- builder.setYangTypes(Collections.singletonList(new YangType(
- typeName,
- yangTypeIndex.getLinkForType(typeName))));
-
- final List<Operation> supportedOperations = new LinkedList<>();
-
- final String callerClassLink = classPathIndex.linkForClass(reference.getCaller());
- if (writeReferences.contains(reference)) {
- supportedOperations.add(new Operation(callerClassLink, WRITE));
- }
-
- if (updateReferences.contains(reference)) {
- supportedOperations.add(new Operation(callerClassLink, UPDATE));
- }
-
- if (deleteReferences.contains(reference)) {
- supportedOperations.add(new Operation(callerClassLink, DELETE));
- }
- return builder.setSupportedOperations(supportedOperations).build();
- });
- }).collect(Collectors.toSet());
-
- LOG.info("Processing multi node handlers");
- final Set<CoverageUnit> multiNodeCoverageUnits = writerBuilder.getMultiNodeWriteHandlers().stream()
- .flatMap(handler -> {
- final Class<?> customizerClass = getCustomizerClass(handler.getWriter());
- final Set<PluginMethodReference> writeReferences =
- new CoverageScanner(customizerClass, WRITE, pluginClass).scan();
-
- final Set<PluginMethodReference> updateReferences =
- new CoverageScanner(customizerClass, UPDATE, pluginClass).scan();
-
- final Set<PluginMethodReference> deleteReferences =
- new CoverageScanner(customizerClass, DELETE, pluginClass).scan();
-
- return Stream.of(writeReferences.stream(), updateReferences.stream(), deleteReferences.stream())
- .flatMap(pluginMethodReferenceStream -> pluginMethodReferenceStream)
- .map(reference -> {
- final CoverageUnit.CoverageUnitBuilder builder = new CoverageUnit.CoverageUnitBuilder();
- builder.setVppApi(fromJvppApi(version, reference));
- builder.setJavaApi(new JavaApiMessage(reference.getName()));
-
- builder.setYangTypes(handler.getHandledChildren().stream()
+ // binds Yang types with links from pre-build index
+ // TODO - use deserialized yii e.g. /module:parent-node/child-node
+ builder.setYangTypes(handler.getHandledNodes().stream()
.map(type -> new YangType(type, yangTypeIndex.getLinkForType(type)))
.collect(Collectors.toList()));
@@ -157,10 +112,7 @@ public class CoverageGenerator implements VppApiUtils {
});
}).collect(Collectors.toSet());
- return new PluginCoverage(pluginClass.getSimpleName(),
- Stream.of(singleNodeCoverageUnits.stream(), multiNodeCoverageUnits.stream())
- .flatMap(coverageUnitStream -> coverageUnitStream)
- .collect(Collectors.toSet()), true);
+ return new PluginCoverage(pluginClass.getSimpleName(), coverageUnits, true);
}
private static Class<?> getCustomizerClass(final Object handler) {