52e99b295fa19a51edba76cd1d62e42faa55657b
[hc2vpp.git] /
1 package org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.v3po2vpp.rev160406;
2
3 import io.fd.honeycomb.v3po.translate.impl.write.GenericListWriter;
4 import io.fd.honeycomb.v3po.translate.v3po.util.NamingContext;
5 import io.fd.honeycomb.v3po.translate.v3po.vppclassifier.ClassifySessionWriter;
6 import io.fd.honeycomb.v3po.translate.v3po.vppclassifier.ClassifyTableWriter;
7 import io.fd.honeycomb.v3po.translate.write.ModifiableWriterRegistry;
8 import io.fd.honeycomb.v3po.translate.write.WriterFactory;
9 import javax.annotation.Nonnull;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev150603.VppClassifier;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev150603.classify.table.attributes.ClassifySession;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev150603.vpp.classifier.ClassifyTable;
13 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
14 import org.openvpp.jvpp.future.FutureJVpp;
15
16 public class VppClassifierHoneycombWriterModule extends
17     org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.v3po2vpp.rev160406.AbstractVppClassifierHoneycombWriterModule {
18
19
20     public static final InstanceIdentifier<ClassifyTable> CLASSIFY_TABLE_ID =
21         InstanceIdentifier.create(VppClassifier.class).child(ClassifyTable.class);
22
23     public static final InstanceIdentifier<ClassifySession> CLASSIFY_SESSION_ID =
24         CLASSIFY_TABLE_ID.child(ClassifySession.class);
25
26
27     public VppClassifierHoneycombWriterModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
28                                               org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
29         super(identifier, dependencyResolver);
30     }
31
32     public VppClassifierHoneycombWriterModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
33                                               org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
34                                               org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.v3po2vpp.rev160406.VppClassifierHoneycombWriterModule oldModule,
35                                               java.lang.AutoCloseable oldInstance) {
36         super(identifier, dependencyResolver, oldModule, oldInstance);
37     }
38
39     @Override
40     public void customValidation() {
41         // add custom validation form module attributes here.
42     }
43
44     @Override
45     public java.lang.AutoCloseable createInstance() {
46         return new VppClassifierHoneycombWriterFactory(
47             getVppJvppDependency(),
48             getClassifyTableContextDependency());
49     }
50
51     private static final class VppClassifierHoneycombWriterFactory implements WriterFactory, AutoCloseable {
52         private final FutureJVpp jvpp;
53         private final NamingContext classifyTableContext;
54
55         public VppClassifierHoneycombWriterFactory(@Nonnull final FutureJVpp jvpp,
56                                                    @Nonnull final NamingContext classifyTableContext) {
57             this.jvpp = jvpp;
58             this.classifyTableContext = classifyTableContext;
59         }
60
61         @Override
62         public void close() throws Exception {
63             // unregister is not supported in ModifiableWriterRegistry (not really needed though)
64         }
65
66         @Override
67         public void init(final ModifiableWriterRegistry registry) {
68
69             registry.addWriter(
70                 new GenericListWriter<>(CLASSIFY_TABLE_ID, new ClassifyTableWriter(jvpp, classifyTableContext)));
71
72             registry.addWriterAfter(
73                 new GenericListWriter<>(CLASSIFY_SESSION_ID, new ClassifySessionWriter(jvpp, classifyTableContext)),
74                 CLASSIFY_TABLE_ID);
75         }
76     }
77 }