import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
-import java.util.Map;
import java.util.Optional;
import java.util.function.BiFunction;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.util.codec.CodecCache;
import org.opendaylight.yangtools.yang.data.util.codec.LazyCodecCache;
import org.opendaylight.yangtools.yang.data.util.codec.NoopCodecCache;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement.Namespace;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
import org.slf4j.Logger;
private static int codecsForChildren(final JSONCodecFactory lazy, final SchemaInferenceStack stack,
final DataTreeAwareEffectiveStatement<?, ?> parent) {
int ret = 0;
- final Map<QName, DataTreeEffectiveStatement<?>> dataTree =
- parent.getAll(DataTreeAwareEffectiveStatement.Namespace.class);
- for (DataTreeEffectiveStatement<?> child : dataTree.values()) {
+ for (var entry : parent.getAll(Namespace.class).entrySet()) {
+ final var child = entry.getValue();
if (child instanceof DataTreeAwareEffectiveStatement) {
- stack.enterDataTree(child.argument());
+ stack.enterDataTree(entry.getKey());
ret += codecsForChildren(lazy, stack, (DataTreeAwareEffectiveStatement<?, ?>) child);
stack.exit();
} else if (child instanceof TypedDataSchemaNode) {
*
* @param <A> Argument type
* @param <D> Class representing declared version of this statement.
- * @author Robert Varga
*/
@Beta
public interface SchemaTreeAwareEffectiveStatement<A, D extends DeclaredStatement<A>> extends EffectiveStatement<A, D> {
/**
* Namespace of {@code schema node}s defined within this node.
- *
- * @param <T> Child statement type
- * @author Robert Varga
*/
@NonNullByDefault
- abstract class Namespace<T extends SchemaTreeEffectiveStatement<?>> extends EffectiveStatementNamespace<T> {
+ abstract class Namespace extends EffectiveStatementNamespace<SchemaTreeEffectiveStatement<?>> {
private Namespace() {
// Should never be instantiated
}