summaryrefslogtreecommitdiffstats
path: root/tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java')
-rw-r--r--tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java b/tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java
index 8f1c3a79d..22e8032a6 100644
--- a/tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java
+++ b/tools/archetype/src/main/resources/archetype-resources/__rootArtifactId__-impl/src/main/java/read/ElementStateCustomizer.java
@@ -27,7 +27,8 @@ package ${package}.read;
import ${package}.CrudService;
import io.fd.honeycomb.translate.read.ReadContext;
import io.fd.honeycomb.translate.read.ReadFailedException;
-import io.fd.honeycomb.translate.spi.read.ListReaderCustomizer;
+import io.fd.honeycomb.translate.spi.read.Initialized;
+import io.fd.honeycomb.translate.spi.read.InitializingListReaderCustomizer;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
@@ -43,7 +44,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
* Reader for {@link Element} list node from our YANG model.
*/
public final class ElementStateCustomizer implements
- ListReaderCustomizer<Element, ElementKey, ElementBuilder> {
+ InitializingListReaderCustomizer<Element, ElementKey, ElementBuilder> {
private final CrudService<Element> crudService;
@@ -90,4 +91,19 @@ public final class ElementStateCustomizer implements
builder.setKey(data.getKey());
builder.setDescription(data.getDescription());
}
+ /**
+ *
+ * Initialize configuration data based on operational data.
+ * <p/>
+ * Very useful when a plugin is initiated but the underlying layer already contains some operation state.
+ * Deriving the configuration from existing operational state enables reconciliation in case when
+ * Honeycomb's persistence is not available to do the work for us.
+ */
+ @Nonnull
+ @Override
+ public Initialized<? extends DataObject> init(@Nonnull final InstanceIdentifier<Element> id,
+ @Nonnull final Element readValue,
+ @Nonnull final ReadContext ctx) {
+ return Initialized.create(id, readValue);
+ }
}