Merge "Add test for generated code checking list of dependencies."
[controller.git] / opendaylight / md-sal / sal-binding-util / src / main / java / org / opendaylight / controller / md / sal / binding / util / TypeSafeDataReader.java
1 package org.opendaylight.controller.md.sal.binding.util;
2
3 import org.opendaylight.controller.md.sal.common.api.data.DataReader;
4 import org.opendaylight.yangtools.yang.binding.DataObject;
5 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
6
7 public final class TypeSafeDataReader {
8
9     
10     private final DataReader<InstanceIdentifier<? extends DataObject>,DataObject> delegate;
11     
12     
13     
14     public DataReader<InstanceIdentifier<?>, DataObject> getDelegate() {
15         return delegate;
16     }
17
18
19     public TypeSafeDataReader(DataReader<InstanceIdentifier<? extends DataObject>, DataObject> delegate) {
20         this.delegate = delegate;
21     }
22
23
24     @SuppressWarnings("unchecked")
25     public <D extends DataObject> D readConfigurationData(InstanceIdentifier<D> path) {
26         return (D) delegate.readConfigurationData(path);
27     }
28     
29     
30     @SuppressWarnings("unchecked")
31     public <D extends DataObject> D  readOperationalData(InstanceIdentifier<D> path) {
32         return (D) delegate.readOperationalData(path);
33     }
34     
35     public static TypeSafeDataReader forReader(DataReader<InstanceIdentifier<? extends DataObject>, DataObject> delegate) {
36         return new TypeSafeDataReader(delegate);
37     }
38 }