package org.opendaylight.controller.md.sal.binding.util; import org.opendaylight.controller.md.sal.common.api.data.DataReader; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class TypeSafeDataReader { private final DataReader,DataObject> delegate; public DataReader, DataObject> getDelegate() { return delegate; } public TypeSafeDataReader(DataReader, DataObject> delegate) { this.delegate = delegate; } @SuppressWarnings("unchecked") public D readConfigurationData(InstanceIdentifier path) { return (D) delegate.readConfigurationData(path); } @SuppressWarnings("unchecked") public D readOperationalData(InstanceIdentifier path) { return (D) delegate.readOperationalData(path); } public static TypeSafeDataReader forReader(DataReader, DataObject> delegate) { return new TypeSafeDataReader(delegate); } }