84ffdd29d388c54c684ece312b2dfc8205194055
[yangtools.git] / parser / yang-parser-reactor / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / reactor / ForwardingUndeclaredCurrent.java
1 /*
2  * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.parser.stmt.reactor;
9
10 import static java.util.Objects.requireNonNull;
11
12 import com.google.common.collect.ForwardingObject;
13 import java.util.Map;
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;
27
28 final class ForwardingUndeclaredCurrent<A, D extends DeclaredStatement<A>> extends ForwardingObject
29         implements UndeclaredCurrent<A, D> {
30     private final Current<A, D> delegate;
31
32     ForwardingUndeclaredCurrent(final Current<A, D> delegate) {
33         this.delegate = requireNonNull(delegate);
34     }
35
36     @Override
37     public @NonNull QName moduleName() {
38         return delegate.moduleName();
39     }
40
41     @Override
42     @Deprecated(forRemoval = true)
43     public EffectiveStatement<?, ?> original() {
44         return delegate.original();
45     }
46
47     @Override
48     public QName argumentAsTypeQName() {
49         return delegate.argumentAsTypeQName();
50     }
51
52     @Override
53     @Deprecated
54     public <E extends EffectiveStatement<A, D>> StmtContext<A, D, E> caerbannog() {
55         return delegate.caerbannog();
56     }
57
58     @Override
59     public EffectiveConfig effectiveConfig() {
60         return delegate.effectiveConfig();
61     }
62
63     @Override
64     public QNameModule effectiveNamespace() {
65         return delegate.effectiveNamespace();
66     }
67
68     @Override
69     public Parent effectiveParent() {
70         return delegate.effectiveParent();
71     }
72
73     @Override
74     public StatementDefinition publicDefinition() {
75         return delegate.publicDefinition();
76     }
77
78     @Override
79     public StatementSourceReference sourceReference() {
80         return delegate.sourceReference();
81     }
82
83     @Override
84     public CopyHistory history() {
85         return delegate.history();
86     }
87
88     @Override
89     public <K, V, N extends ParserNamespace<K, V>> Map<K, V> namespace(final Class<@NonNull N> nsType) {
90         return delegate.namespace(nsType);
91     }
92
93     @Override
94     public <K, V, T extends K, N extends ParserNamespace<K, V>> V namespaceItem(final Class<@NonNull N> nsType,
95             final T key) {
96         return delegate.namespaceItem(nsType, key);
97     }
98
99     @Override
100     public <K, V, N extends ParserNamespace<K, V>> Map<K, V> localNamespacePortion(final Class<@NonNull N> nsType) {
101         return delegate.localNamespacePortion(nsType);
102     }
103
104     @Override
105     public A argument() {
106         return delegate.argument();
107     }
108
109     @Override
110     public YangVersion yangVersion() {
111         return delegate.yangVersion();
112     }
113
114     @Override
115     public <X, Z extends EffectiveStatement<X, ?>> Optional<X> findSubstatementArgument(final Class<Z> type) {
116         return delegate.findSubstatementArgument(type);
117     }
118
119     @Override
120     public boolean hasSubstatement(final Class<? extends EffectiveStatement<?, ?>> type) {
121         return delegate.hasSubstatement(type);
122     }
123
124     @Override
125     protected Current<A, D> delegate() {
126         return delegate;
127     }
128 }