/* * Copyright (c) 2021 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.netconf.util; import static java.util.Objects.requireNonNull; import java.util.Collection; import java.util.Map; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; /** * A simple proxy, overriding #getQName() to a value containing revision. */ final class ProxyEffectiveModelContext implements EffectiveModelContext, Delegator { private final @NonNull EffectiveModelContext delegate; ProxyEffectiveModelContext(final EffectiveModelContext delegate) { this.delegate = requireNonNull(delegate); } @Override public EffectiveModelContext getDelegate() { return delegate; } @Override @Deprecated public QName getQName() { return NetconfUtil.NETCONF_DATA_QNAME; } @Override public Optional> findSchemaTreeNode(final SchemaNodeIdentifier path) { return delegate.findSchemaTreeNode(path); } @Override public Optional findSchemaTreeNode(final Class type, final SchemaNodeIdentifier path) { return delegate.findSchemaTreeNode(type, path); } @Override public Map getModuleStatements() { return delegate.getModuleStatements(); } @Override public Optional findModuleStatement(final QNameModule moduleName) { return delegate.findModuleStatement(moduleName); } @Override public Optional findModuleStatement(final QName moduleName) { return delegate.findModuleStatement(moduleName); } @Override public ModuleEffectiveStatement getModuleStatement(final QNameModule moduleName) { return delegate.getModuleStatement(moduleName); } @Override public ModuleEffectiveStatement getModuleStatement(final QName moduleName) { return delegate.getModuleStatement(moduleName); } @Override public Collection getDataDefinitions() { return delegate.getDataDefinitions(); } @Override public Collection getModules() { return delegate.getModules(); } @Override public Collection getOperations() { return delegate.getOperations(); } @Override public Collection getExtensions() { return delegate.getExtensions(); } @Override public Optional findModule(final QNameModule qnameModule) { return delegate.findModule(qnameModule); } @Override public Collection findModules(final XMLNamespace namespace) { return delegate.findModules(namespace); } @Override public Optional findNotification(final QName qname) { return delegate.findNotification(qname); } @Override public Optional findDataTreeChild(final QName name) { return delegate.findDataTreeChild(name); } @Override public Collection getDerivedIdentities(final IdentitySchemaNode identity) { return delegate.getDerivedIdentities(identity); } @Override public Collection getUnknownSchemaNodes() { return delegate.getUnknownSchemaNodes(); } @Override public Collection> getTypeDefinitions() { return delegate.getTypeDefinitions(); } @Override public Collection getChildNodes() { return delegate.getChildNodes(); } @Override public Collection getGroupings() { return delegate.getGroupings(); } @Override public DataSchemaNode dataChildByName(final QName name) { return delegate.dataChildByName(name); } @Override public Collection getNotifications() { return delegate.getNotifications(); } }