Move ordering logic out of AbstractSubtreeManagerRegistryBuilderBuilder
[honeycomb.git] / infra / minimal-distribution / src / main / java / io / fd / honeycomb / infra / distro / data / oper / ReaderRegistryProvider.java
index 8370da8..8f6bb0e 100644 (file)
@@ -18,18 +18,24 @@ package io.fd.honeycomb.infra.distro.data.oper;
 
 import com.google.inject.Inject;
 import io.fd.honeycomb.infra.distro.ProviderTrait;
-import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder;
+import io.fd.honeycomb.translate.impl.read.registry.CompositeReaderRegistryBuilder;
+import io.fd.honeycomb.translate.read.ReaderFactory;
 import io.fd.honeycomb.translate.read.registry.ReaderRegistry;
-import io.fd.honeycomb.translate.read.registry.ReaderRegistryBuilder;
+import io.fd.honeycomb.translate.util.YangDAG;
+import java.util.HashSet;
+import java.util.Set;
 
 public final class ReaderRegistryProvider extends ProviderTrait<ReaderRegistry> {
 
-    @Inject
-    private ModifiableReaderRegistryBuilder readerRegistryBuilder;
+    @Inject(optional = true)
+    private Set<ReaderFactory> readerFactories = new HashSet<>();
 
     @Override
     protected ReaderRegistry create() {
-        return ((ReaderRegistryBuilder) readerRegistryBuilder).build();
+        final CompositeReaderRegistryBuilder builder = new CompositeReaderRegistryBuilder(new YangDAG());
+        readerFactories.stream()
+            .forEach(it -> it.init(builder));
+        return builder.build();
     }
 
 }