*/
package org.opendaylight.mdsal.binding.dom.adapter;
-import org.opendaylight.mdsal.dom.api.DOMMountPoint;
-import org.opendaylight.mdsal.dom.api.DOMService;
-
-import org.opendaylight.mdsal.binding.api.BindingService;
-import org.opendaylight.mdsal.binding.api.MountPoint;
-import com.google.common.base.Optional;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.LoadingCache;
+import java.util.Optional;
+import org.opendaylight.mdsal.binding.api.BindingService;
+import org.opendaylight.mdsal.binding.api.MountPoint;
+import org.opendaylight.mdsal.dom.api.DOMMountPoint;
+import org.opendaylight.mdsal.dom.api.DOMService;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-public class BindingMountPointAdapter implements MountPoint {
-
+final class BindingMountPointAdapter implements MountPoint {
private final InstanceIdentifier<?> identifier;
- private LoadingCache<Class<? extends BindingService>, Optional<BindingService>> services;
+ private final LoadingCache<Class<? extends BindingService>, Optional<BindingService>> services;
- public BindingMountPointAdapter(final BindingToNormalizedNodeCodec codec, final DOMMountPoint domMountPoint) {
- identifier = codec.getCodecRegistry().fromYangInstanceIdentifier(domMountPoint.getIdentifier());
+ BindingMountPointAdapter(final AdapterContext codec, final DOMMountPoint domMountPoint) {
+ identifier = codec.currentSerializer().fromYangInstanceIdentifier(domMountPoint.getIdentifier());
services = CacheBuilder.newBuilder().build(new BindingDOMAdapterLoader(codec) {
-
@Override
- protected DOMService getDelegate(Class<? extends DOMService> reqDeleg) {
- return domMountPoint.getService(reqDeleg).orNull();
+ protected DOMService getDelegate(final Class<? extends DOMService> reqDeleg) {
+ return domMountPoint.getService(reqDeleg).orElse(null);
}
});
}
}
@Override
- public <T extends BindingService> Optional<T> getService(Class<T> service) {
- Optional<BindingService> potential = services.getUnchecked(service);
- if(potential.isPresent()) {
- return Optional.of(service.cast(potential.get()));
- }
- return Optional.absent();
+ public <T extends BindingService> Optional<T> getService(final Class<T> service) {
+ return services.getUnchecked(service).map(service::cast);
}
-
}