/* * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.mdsal.binding.dom.codec.api; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableCollection; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.binding.BindingObject; import org.opendaylight.yangtools.yang.binding.DataObject; @Beta public interface BindingDataObjectCodecTreeNode extends CommonDataObjectCodecTreeNode, BindingNormalizedNodeCodec { /** * Returns codec which uses caches serialization / deserialization results. * *

* Caching may introduce performance penalty to serialization / deserialization * but may decrease use of heap for repetitive objects. * * @param cacheSpecifier Set of objects, for which cache may be in place * @return Codec which uses cache for serialization / deserialization. */ @NonNull BindingNormalizedNodeCachingCodec createCachingCodec( @NonNull ImmutableCollection> cacheSpecifier); }