2 * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.parser.stmt.reactor;
10 import static java.util.Objects.requireNonNull;
12 import com.google.common.collect.ForwardingObject;
14 import java.util.Optional;
15 import org.eclipse.jdt.annotation.NonNull;
16 import org.opendaylight.yangtools.yang.common.QName;
17 import org.opendaylight.yangtools.yang.common.QNameModule;
18 import org.opendaylight.yangtools.yang.common.YangVersion;
19 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
20 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
21 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
22 import org.opendaylight.yangtools.yang.parser.spi.meta.CopyHistory;
23 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.UndeclaredCurrent;
24 import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
25 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
26 import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
28 final class ForwardingUndeclaredCurrent<A, D extends DeclaredStatement<A>> extends ForwardingObject
29 implements UndeclaredCurrent<A, D> {
30 private final Current<A, D> delegate;
32 ForwardingUndeclaredCurrent(final Current<A, D> delegate) {
33 this.delegate = requireNonNull(delegate);
37 public @NonNull QName moduleName() {
38 return delegate.moduleName();
42 public QName argumentAsTypeQName() {
43 return delegate.argumentAsTypeQName();
48 public <E extends EffectiveStatement<A, D>> StmtContext<A, D, E> caerbannog() {
49 return delegate.caerbannog();
53 public EffectiveConfig effectiveConfig() {
54 return delegate.effectiveConfig();
58 public QNameModule effectiveNamespace() {
59 return delegate.effectiveNamespace();
63 public Parent effectiveParent() {
64 return delegate.effectiveParent();
68 public StatementDefinition publicDefinition() {
69 return delegate.publicDefinition();
73 public StatementSourceReference sourceReference() {
74 return delegate.sourceReference();
78 public CopyHistory history() {
79 return delegate.history();
83 public <K, V> Map<K, V> namespace(final ParserNamespace<K, V> namespace) {
84 return delegate.namespace(namespace);
88 public <K, V> V namespaceItem(final ParserNamespace<K, V> namespace, final K key) {
89 return delegate.namespaceItem(namespace, key);
93 public <K, V> Map<K, V> localNamespacePortion(final ParserNamespace<K, V> namespace) {
94 return delegate.localNamespacePortion(namespace);
99 return delegate.argument();
103 public YangVersion yangVersion() {
104 return delegate.yangVersion();
108 public <X, Z extends EffectiveStatement<X, ?>> Optional<X> findSubstatementArgument(final Class<Z> type) {
109 return delegate.findSubstatementArgument(type);
113 public boolean hasSubstatement(final Class<? extends EffectiveStatement<?, ?>> type) {
114 return delegate.hasSubstatement(type);
118 protected Current<A, D> delegate() {