+/*
+ * 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.yangtools.yang.model.ri.stmt;
+
+import com.google.common.annotations.Beta;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefActionStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefAnydataStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefAnyxmlStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefArgumentStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefAugmentStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefBaseStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefBelongsToStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefBitStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefCaseStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefChoiceStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefConfigStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefContactStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefContainerStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefDefaultStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefDescriptionStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefDeviateStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefDeviationStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefEnumStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefErrorAppTagStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefErrorMessageStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefExtensionStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefFeatureStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefFractionDigitsStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefGroupingStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefIdentityStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefIfFeatureStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefImportStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefIncludeStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefInputStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefKeyStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefLeafListStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefLeafStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefLengthStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefListStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefMandatoryStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefMaxElementsStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefMinElementsStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefModifierStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefModuleStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefMustStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefNamespaceStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefNotificationStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefOrderedByStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefOrganizationStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefOutputStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefPathStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefPatternStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefPositionStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefPrefixStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefPresenceStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefRangeStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefReferenceStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefRefineStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefRequireInstanceStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefRevisionDateStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefRevisionStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefRpcStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefStatusStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefSubmoduleStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefTypeStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefTypedefStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefUniqueStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefUnitsStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefUsesStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefValueStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefWhenStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefYangVersionStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref.RefYinElementStatement;
+
+/**
+ * Static entry point to enriching {@link DeclaredStatement}s covered in the {@code RFC7950} metamodel with
+ * {@link DeclarationReference}s.
+ */
+@Beta
+@NonNullByDefault
+public final class DeclaredStatementDecorators {
+ private DeclaredStatementDecorators() {
+ // Hidden on purpose
+ }
+
+ public static ActionStatement decorateAction(final ActionStatement stmt, final DeclarationReference ref) {
+ return new RefActionStatement(stmt, ref);
+ }
+
+ public static AnydataStatement decorateAnydata(final AnydataStatement stmt, final DeclarationReference ref) {
+ return new RefAnydataStatement(stmt, ref);
+ }
+
+ public static AnyxmlStatement decorateAnyxml(final AnyxmlStatement stmt, final DeclarationReference ref) {
+ return new RefAnyxmlStatement(stmt, ref);
+ }
+
+ public static ArgumentStatement decorateArgument(final ArgumentStatement stmt, final DeclarationReference ref) {
+ return new RefArgumentStatement(stmt, ref);
+ }
+
+ public static AugmentStatement decorateAugment(final AugmentStatement stmt, final DeclarationReference ref) {
+ return new RefAugmentStatement(stmt, ref);
+ }
+
+ public static BaseStatement decorateBase(final BaseStatement stmt, final DeclarationReference ref) {
+ return new RefBaseStatement(stmt, ref);
+ }
+
+ public static BelongsToStatement decorateBelongsTo(final BelongsToStatement stmt, final DeclarationReference ref) {
+ return new RefBelongsToStatement(stmt, ref);
+ }
+
+ public static BitStatement decorateBit(final BitStatement stmt, final DeclarationReference ref) {
+ return new RefBitStatement(stmt, ref);
+ }
+
+ public static CaseStatement decorateCase(final CaseStatement stmt, final DeclarationReference ref) {
+ return new RefCaseStatement(stmt, ref);
+ }
+
+ public static ChoiceStatement decorateChoice(final ChoiceStatement stmt, final DeclarationReference ref) {
+ return new RefChoiceStatement(stmt, ref);
+ }
+
+ public static ConfigStatement decorateConfig(final ConfigStatement stmt, final DeclarationReference ref) {
+ return new RefConfigStatement(stmt, ref);
+ }
+
+ public static ContactStatement decorateContact(final ContactStatement stmt, final DeclarationReference ref) {
+ return new RefContactStatement(stmt, ref);
+ }
+
+ public static ContainerStatement decorateContainer(final ContainerStatement stmt, final DeclarationReference ref) {
+ return new RefContainerStatement(stmt, ref);
+ }
+
+ public static DefaultStatement decorateDefault(final DefaultStatement stmt, final DeclarationReference ref) {
+ return new RefDefaultStatement(stmt, ref);
+ }
+
+ public static DescriptionStatement decorateDescription(final DescriptionStatement stmt,
+ final DeclarationReference ref) {
+ return new RefDescriptionStatement(stmt, ref);
+ }
+
+ public static DeviateStatement decorateDeviate(final DeviateStatement stmt, final DeclarationReference ref) {
+ return new RefDeviateStatement(stmt, ref);
+ }
+
+ public static DeviationStatement decorateDeviation(final DeviationStatement stmt, final DeclarationReference ref) {
+ return new RefDeviationStatement(stmt, ref);
+ }
+
+ public static EnumStatement decorateEnum(final EnumStatement stmt, final DeclarationReference ref) {
+ return new RefEnumStatement(stmt, ref);
+ }
+
+ public static ErrorAppTagStatement decorateErrorAppTag(final ErrorAppTagStatement stmt,
+ final DeclarationReference ref) {
+ return new RefErrorAppTagStatement(stmt, ref);
+ }
+
+ public static ErrorMessageStatement decorateErrorMessage(final ErrorMessageStatement stmt,
+ final DeclarationReference ref) {
+ return new RefErrorMessageStatement(stmt, ref);
+ }
+
+ public static ExtensionStatement decorateExtesion(final ExtensionStatement stmt, final DeclarationReference ref) {
+ return new RefExtensionStatement(stmt, ref);
+ }
+
+ public static FeatureStatement decorateFeature(final FeatureStatement stmt, final DeclarationReference ref) {
+ return new RefFeatureStatement(stmt, ref);
+ }
+
+ public static FractionDigitsStatement decorateFractionDigits(final FractionDigitsStatement stmt,
+ final DeclarationReference ref) {
+ return new RefFractionDigitsStatement(stmt, ref);
+ }
+
+ public static GroupingStatement decorateGrouping(final GroupingStatement stmt, final DeclarationReference ref) {
+ return new RefGroupingStatement(stmt, ref);
+ }
+
+ public static IdentityStatement decorateIdentity(final IdentityStatement stmt, final DeclarationReference ref) {
+ return new RefIdentityStatement(stmt, ref);
+ }
+
+ public static IfFeatureStatement decorateIfFeature(final IfFeatureStatement stmt, final DeclarationReference ref) {
+ return new RefIfFeatureStatement(stmt, ref);
+ }
+
+ public static ImportStatement decorateImport(final ImportStatement stmt, final DeclarationReference ref) {
+ return new RefImportStatement(stmt, ref);
+ }
+
+ public static IncludeStatement decorateInclude(final IncludeStatement stmt, final DeclarationReference ref) {
+ return new RefIncludeStatement(stmt, ref);
+ }
+
+ public static InputStatement decorateInput(final InputStatement stmt, final DeclarationReference ref) {
+ return new RefInputStatement(stmt, ref);
+ }
+
+ public static KeyStatement decorateKey(final KeyStatement stmt, final DeclarationReference ref) {
+ return new RefKeyStatement(stmt, ref);
+ }
+
+ public static LeafStatement decorateLeaf(final LeafStatement stmt, final DeclarationReference ref) {
+ return new RefLeafStatement(stmt, ref);
+ }
+
+ public static LeafListStatement decorateLeafList(final LeafListStatement stmt, final DeclarationReference ref) {
+ return new RefLeafListStatement(stmt, ref);
+ }
+
+ public static LengthStatement decorateLength(final LengthStatement stmt, final DeclarationReference ref) {
+ return new RefLengthStatement(stmt, ref);
+ }
+
+ public static ListStatement decorateList(final ListStatement stmt, final DeclarationReference ref) {
+ return new RefListStatement(stmt, ref);
+ }
+
+ public static MandatoryStatement decorateMandatory(final MandatoryStatement stmt, final DeclarationReference ref) {
+ return new RefMandatoryStatement(stmt, ref);
+ }
+
+ public static MaxElementsStatement decorateMaxElements(final MaxElementsStatement stmt,
+ final DeclarationReference ref) {
+ return new RefMaxElementsStatement(stmt, ref);
+ }
+
+ public static MinElementsStatement decorateMinElements(final MinElementsStatement stmt,
+ final DeclarationReference ref) {
+ return new RefMinElementsStatement(stmt, ref);
+ }
+
+ public static ModifierStatement decorateModifier(final ModifierStatement stmt, final DeclarationReference ref) {
+ return new RefModifierStatement(stmt, ref);
+ }
+
+ public static ModuleStatement decorateModule(final ModuleStatement stmt, final DeclarationReference ref) {
+ return new RefModuleStatement(stmt, ref);
+ }
+
+ public static MustStatement decorateMust(final MustStatement stmt, final DeclarationReference ref) {
+ return new RefMustStatement(stmt, ref);
+ }
+
+ public static NamespaceStatement decorateNamespace(final NamespaceStatement stmt, final DeclarationReference ref) {
+ return new RefNamespaceStatement(stmt, ref);
+ }
+
+ public static NotificationStatement decorateNotification(final NotificationStatement stmt,
+ final DeclarationReference ref) {
+ return new RefNotificationStatement(stmt, ref);
+ }
+
+ public static OrderedByStatement decorateOrderedBy(final OrderedByStatement stmt,
+ final DeclarationReference ref) {
+ return new RefOrderedByStatement(stmt, ref);
+ }
+
+ public static OrganizationStatement decorateOrganization(final OrganizationStatement stmt,
+ final DeclarationReference ref) {
+ return new RefOrganizationStatement(stmt, ref);
+ }
+
+ public static OutputStatement decorateOutput(final OutputStatement stmt, final DeclarationReference ref) {
+ return new RefOutputStatement(stmt, ref);
+ }
+
+ public static PathStatement decoratePath(final PathStatement stmt, final DeclarationReference ref) {
+ return new RefPathStatement(stmt, ref);
+ }
+
+ public static PatternStatement decoratePattern(final PatternStatement stmt, final DeclarationReference ref) {
+ return new RefPatternStatement(stmt, ref);
+ }
+
+ public static PositionStatement decoratePosition(final PositionStatement stmt, final DeclarationReference ref) {
+ return new RefPositionStatement(stmt, ref);
+ }
+
+ public static PrefixStatement decoratePrefix(final PrefixStatement stmt, final DeclarationReference ref) {
+ return new RefPrefixStatement(stmt, ref);
+ }
+
+ public static PresenceStatement decoratePresence(final PresenceStatement stmt,
+ final DeclarationReference ref) {
+ return new RefPresenceStatement(stmt, ref);
+ }
+
+ public static RangeStatement decorateRange(final RangeStatement stmt, final DeclarationReference ref) {
+ return new RefRangeStatement(stmt, ref);
+ }
+
+ public static ReferenceStatement decorateReference(final ReferenceStatement stmt, final DeclarationReference ref) {
+ return new RefReferenceStatement(stmt, ref);
+ }
+
+ public static RefineStatement decorateRefine(final RefineStatement stmt, final DeclarationReference ref) {
+ return new RefRefineStatement(stmt, ref);
+ }
+
+ public static RequireInstanceStatement decorateRequireInstance(final RequireInstanceStatement stmt,
+ final DeclarationReference ref) {
+ return new RefRequireInstanceStatement(stmt, ref);
+ }
+
+ public static RevisionStatement decorateRevision(final RevisionStatement stmt, final DeclarationReference ref) {
+ return new RefRevisionStatement(stmt, ref);
+ }
+
+ public static RevisionDateStatement decorateRevisionDate(final RevisionDateStatement stmt,
+ final DeclarationReference ref) {
+ return new RefRevisionDateStatement(stmt, ref);
+ }
+
+ public static RpcStatement decorateRpc(final RpcStatement stmt, final DeclarationReference ref) {
+ return new RefRpcStatement(stmt, ref);
+ }
+
+ public static StatusStatement decorateStatus(final StatusStatement stmt, final DeclarationReference ref) {
+ return new RefStatusStatement(stmt, ref);
+ }
+
+ public static SubmoduleStatement decorateSubmodule(final SubmoduleStatement stmt, final DeclarationReference ref) {
+ return new RefSubmoduleStatement(stmt, ref);
+ }
+
+ public static TypeStatement decorateType(final TypeStatement stmt, final DeclarationReference ref) {
+ return new RefTypeStatement(stmt, ref);
+ }
+
+ public static TypedefStatement decorateTypedef(final TypedefStatement stmt, final DeclarationReference ref) {
+ return new RefTypedefStatement(stmt, ref);
+ }
+
+ public static UniqueStatement decorateUnique(final UniqueStatement stmt, final DeclarationReference ref) {
+ return new RefUniqueStatement(stmt, ref);
+ }
+
+ public static UnitsStatement decorateUnits(final UnitsStatement stmt, final DeclarationReference ref) {
+ return new RefUnitsStatement(stmt, ref);
+ }
+
+ public static UsesStatement decorateUses(final UsesStatement stmt, final DeclarationReference ref) {
+ return new RefUsesStatement(stmt, ref);
+ }
+
+ public static ValueStatement decorateValue(final ValueStatement stmt, final DeclarationReference ref) {
+ return new RefValueStatement(stmt, ref);
+ }
+
+ public static WhenStatement decorateWhen(final WhenStatement stmt, final DeclarationReference ref) {
+ return new RefWhenStatement(stmt, ref);
+ }
+
+ public static YangVersionStatement decorateYangVersion(final YangVersionStatement stmt,
+ final DeclarationReference ref) {
+ return new RefYangVersionStatement(stmt, ref);
+ }
+
+ public static YinElementStatement decorateYinElement(final YinElementStatement stmt,
+ final DeclarationReference ref) {
+ return new RefYinElementStatement(stmt, ref);
+ }
+}