Merge "Added DELETE support for Bridge and Port resources"
[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<?>,DataObject> delegate;
11     
12     
13     
14     public DataReader<InstanceIdentifier<?>, DataObject> getDelegate() {
15         return delegate;
16     }
17
18
19     public TypeSafeDataReader(DataReader<InstanceIdentifier<?>, 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<?>, DataObject> delegate) {
36         return new TypeSafeDataReader(delegate);
37     }
38 }