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, N extends ParserNamespace<K, V>> Map<K, V> namespace(final Class<@NonNull N> nsType) {
84 return delegate.namespace(nsType);
88 public <K, V, T extends K, N extends ParserNamespace<K, V>> V namespaceItem(final Class<@NonNull N> nsType,
90 return delegate.namespaceItem(nsType, key);
94 public <K, V, N extends ParserNamespace<K, V>> Map<K, V> localNamespacePortion(final Class<@NonNull N> nsType) {
95 return delegate.localNamespacePortion(nsType);
100 return delegate.argument();
104 public YangVersion yangVersion() {
105 return delegate.yangVersion();
109 public <X, Z extends EffectiveStatement<X, ?>> Optional<X> findSubstatementArgument(final Class<Z> type) {
110 return delegate.findSubstatementArgument(type);
114 public boolean hasSubstatement(final Class<? extends EffectiveStatement<?, ?>> type) {
115 return delegate.hasSubstatement(type);
119 protected Current<A, D> delegate() {