Populate model/ hierarchy
[yangtools.git] / yang / yang-model-ri / src / main / java / org / opendaylight / yangtools / yang / model / ri / stmt / EffectiveStatements.java
diff --git a/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java
deleted file mode 100644 (file)
index 70510c3..0000000
+++ /dev/null
@@ -1,857 +0,0 @@
-/*
- * 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 static com.google.common.base.Preconditions.checkArgument;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import java.util.Set;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
-import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ActionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AnydataEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BaseEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.CaseEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ContactEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DeviateEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DeviationEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.EnumEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IncludeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.KeyEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.LeafEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.LengthEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ModifierEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OutputEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PathEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PositionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PresenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RpcEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ValueEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YinElementEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyRequireInstanceStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyStatusStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyYangVersionStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.AbstractLeafEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ActionEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.AugmentEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ChoiceEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ContainerEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeclaredCaseEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeclaredInputEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeclaredOutputEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeviateEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeviationEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyAnydataEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyAnyxmlEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyArgumentEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyBaseEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyBelongsToEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyBitEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyConfigEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyContactEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyDefaultEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyDescriptionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyEnumEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyErrorAppTagEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyErrorMessageEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyFeatureEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyForeignKeyEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyFractionDigitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyIdentityEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyIfFeatureEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyIncludeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyLeafEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyLengthEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyLocalKeyEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMandatoryEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMaxElementsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMinElementsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyModifierEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMustEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyNamespaceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyOrderedByEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyOrganizationEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPathEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPatternEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPositionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPrefixEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPresenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRangeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyReferenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRequireInstanceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRevisionDateEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRevisionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyStatusEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyUniqueEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyUnitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyValueEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyWhenEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyYangVersionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyYinElementEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ExtensionEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.GroupingEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ImportEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.NotificationEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularAnydataEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularAnyxmlEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularArgumentEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularBaseEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularBelongsToEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularBitEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularConfigEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularContactEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularDefaultEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularDescriptionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularEnumEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularErrorAppTagEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularErrorMessageEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularFeatureEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularForeignKeyEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularFractionDigitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularIdentityEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularIfFeatureEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularIncludeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularLeafEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularLengthEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularLocalKeyEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMandatoryEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMaxElementsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMinElementsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularModifierEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMustEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularNamespaceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularOrderedByEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularOrganizationEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPathEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPatternEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPositionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPrefixEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPresenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRangeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularReferenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRequireInstanceEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRevisionDateEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRevisionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularStatusEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularUniqueEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularUnitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularValueEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularWhenEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularYangVersionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularYinElementEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RpcEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.TypedefEffectiveStatementImpl;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.UndeclaredCaseEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.UndeclaredInputEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.UndeclaredOutputEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
-
-/**
- * Static entry point to instantiating {@link EffectiveStatement} covered in the {@code RFC7950} metamodel.
- */
-@Beta
-@NonNullByDefault
-public final class EffectiveStatements {
-    private EffectiveStatements() {
-        // Hidden on purpose
-    }
-
-    public static ActionEffectiveStatement copyAction(final ActionEffectiveStatement original, final Immutable path,
-            final int flags) {
-        checkArgument(original instanceof ActionEffectiveStatementImpl, "Unsupported original %s", original);
-        return new ActionEffectiveStatementImpl((ActionEffectiveStatementImpl) original, path, flags);
-    }
-
-    public static ActionEffectiveStatement createAction(final ActionStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
-                throws SubstatementIndexingException {
-        return new ActionEffectiveStatementImpl(declared, path, flags, substatements);
-    }
-
-    public static AnydataEffectiveStatement copyAnydata(final AnydataEffectiveStatement original, final Immutable path,
-            final int flags, final @Nullable AnydataSchemaNode newOriginal) {
-        if (original instanceof RegularAnydataEffectiveStatement) {
-            return new RegularAnydataEffectiveStatement((RegularAnydataEffectiveStatement) original, path, flags,
-                newOriginal);
-        } else if (original instanceof EmptyAnydataEffectiveStatement) {
-            return new EmptyAnydataEffectiveStatement((EmptyAnydataEffectiveStatement) original, path, flags,
-                newOriginal);
-        } else {
-            throw new IllegalArgumentException("Unsupported original " + original);
-        }
-    }
-
-    public static AnydataEffectiveStatement createAnydata(final AnydataStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable AnydataSchemaNode original) {
-        return substatements.isEmpty() ? new EmptyAnydataEffectiveStatement(declared, path, flags, original)
-            : new RegularAnydataEffectiveStatement(declared, path, flags, original, substatements);
-    }
-
-    public static AnyxmlEffectiveStatement copyAnyxml(final AnyxmlEffectiveStatement original, final Immutable path,
-            final int flags, final @Nullable AnyxmlSchemaNode newOriginal) {
-        if (original instanceof RegularAnyxmlEffectiveStatement) {
-            return new RegularAnyxmlEffectiveStatement((RegularAnyxmlEffectiveStatement) original, path, flags,
-                newOriginal);
-        } else if (original instanceof EmptyAnyxmlEffectiveStatement) {
-            return new EmptyAnyxmlEffectiveStatement((EmptyAnyxmlEffectiveStatement) original, path, flags,
-                newOriginal);
-        } else {
-            throw new IllegalArgumentException("Unsupported original " + original);
-        }
-    }
-
-    public static AnyxmlEffectiveStatement createAnyxml(final AnyxmlStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable AnyxmlSchemaNode original) {
-        return substatements.isEmpty() ? new EmptyAnyxmlEffectiveStatement(declared, path, flags, original)
-            : new RegularAnyxmlEffectiveStatement(declared, path, flags, original, substatements);
-    }
-
-    public static ArgumentEffectiveStatement createArgument(final ArgumentStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyArgumentEffectiveStatement(declared)
-            : new RegularArgumentEffectiveStatement(declared, substatements);
-    }
-
-    public static AugmentEffectiveStatement createAugment(final AugmentStatement declared,
-            final SchemaNodeIdentifier argument, final int flags, final QNameModule rootModuleQName,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable AugmentationSchemaNode original) throws SubstatementIndexingException {
-        return new AugmentEffectiveStatementImpl(declared, argument, flags, rootModuleQName, substatements, original);
-    }
-
-    public static BaseEffectiveStatement createBase(final BaseStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyBaseEffectiveStatement(declared)
-            : new RegularBaseEffectiveStatement(declared, substatements);
-    }
-
-    public static BelongsToEffectiveStatement createBelongsTo(final BelongsToStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyBelongsToEffectiveStatement(declared)
-            : new RegularBelongsToEffectiveStatement(declared, substatements);
-    }
-
-    public static BitEffectiveStatement createBit(final BitStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyBitEffectiveStatement(declared)
-            : new RegularBitEffectiveStatement(declared, substatements);
-    }
-
-    public static CaseEffectiveStatement copyCase(final CaseEffectiveStatement original,
-            final Immutable path, final int flags, final @Nullable CaseSchemaNode newOriginal) {
-        if (original instanceof DeclaredCaseEffectiveStatement) {
-            return new DeclaredCaseEffectiveStatement((DeclaredCaseEffectiveStatement) original, path, flags,
-                newOriginal);
-        } else if (original instanceof UndeclaredCaseEffectiveStatement) {
-            return new UndeclaredCaseEffectiveStatement((UndeclaredCaseEffectiveStatement) original, path, flags,
-                newOriginal);
-        } else {
-            throw new IllegalArgumentException("Unsupported origin " + original);
-        }
-    }
-
-    public static CaseEffectiveStatement createCase(final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-                final @Nullable CaseSchemaNode original) {
-        return new UndeclaredCaseEffectiveStatement(substatements, path, flags, original);
-    }
-
-    public static CaseEffectiveStatement createCase(final CaseStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable CaseSchemaNode original) {
-        return new DeclaredCaseEffectiveStatement(declared, substatements, path, flags, original);
-    }
-
-    public static ChoiceEffectiveStatement copyChoice(final ChoiceEffectiveStatement original,
-            final Immutable path, final int flags, final @Nullable ChoiceSchemaNode newOriginal) {
-        checkArgument(original instanceof ChoiceEffectiveStatementImpl, "Unsupported original %s", original);
-        return new ChoiceEffectiveStatementImpl((ChoiceEffectiveStatementImpl) original, path, flags, newOriginal);
-    }
-
-    public static ChoiceEffectiveStatement createChoice(final ChoiceStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable CaseSchemaNode defaultCase, final @Nullable ChoiceSchemaNode original) {
-        return new ChoiceEffectiveStatementImpl(declared, substatements, path, flags, defaultCase, original);
-    }
-
-    public static ConfigEffectiveStatement createConfig(final boolean argument) {
-        return argument ? EmptyConfigEffectiveStatement.TRUE : EmptyConfigEffectiveStatement.FALSE;
-    }
-
-    public static ConfigEffectiveStatement createConfig(final ConfigStatement declared) {
-        return new EmptyConfigEffectiveStatement(declared);
-    }
-
-    public static ConfigEffectiveStatement createConfig(final ConfigStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createConfig(declared)
-            : new RegularConfigEffectiveStatement(declared, substatements);
-    }
-
-    public static ContactEffectiveStatement createContact(final ContactStatement declared) {
-        return new EmptyContactEffectiveStatement(declared);
-    }
-
-    public static ContactEffectiveStatement createContact(final ContactStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createContact(declared)
-            : new RegularContactEffectiveStatement(declared, substatements);
-    }
-
-    public static ContainerEffectiveStatement copyContainer(final ContainerEffectiveStatement original,
-            final Immutable path, final int flags, final @Nullable ContainerSchemaNode orig) {
-        checkArgument(original instanceof ContainerEffectiveStatementImpl, "Unsupported original %s", original);
-        return new ContainerEffectiveStatementImpl((ContainerEffectiveStatementImpl) original, path, flags, orig);
-    }
-
-    public static ContainerEffectiveStatement createContainer(final ContainerStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable ContainerSchemaNode original) {
-        return new ContainerEffectiveStatementImpl(declared, substatements, path, flags, original);
-    }
-
-    public static DefaultEffectiveStatement createDefault(final DefaultStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyDefaultEffectiveStatement(declared)
-            : new RegularDefaultEffectiveStatement(declared, substatements);
-    }
-
-    public static DescriptionEffectiveStatement createDescription(final DescriptionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyDescriptionEffectiveStatement(declared)
-            : new RegularDescriptionEffectiveStatement(declared, substatements);
-    }
-
-    public static DeviateEffectiveStatement createDeviate(final DeviateStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return new DeviateEffectiveStatementImpl(declared, substatements);
-    }
-
-    public static DeviationEffectiveStatement createDeviation(final DeviationStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return new DeviationEffectiveStatementImpl(declared, substatements);
-    }
-
-    public static EnumEffectiveStatement createEnum(final EnumStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyEnumEffectiveStatement(declared)
-            : new RegularEnumEffectiveStatement(declared, substatements);
-    }
-
-    public static ErrorAppTagEffectiveStatement createErrorAppTag(final ErrorAppTagStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyErrorAppTagEffectiveStatement(declared)
-            : new RegularErrorAppTagEffectiveStatement(declared, substatements);
-    }
-
-    public static ErrorMessageEffectiveStatement createErrorMessage(final ErrorMessageStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyErrorMessageEffectiveStatement(declared)
-            : new RegularErrorMessageEffectiveStatement(declared, substatements);
-    }
-
-    public static ExtensionEffectiveStatement createExtension(final ExtensionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable SchemaPath schemaPath) {
-        return new ExtensionEffectiveStatementImpl(declared, substatements, schemaPath);
-    }
-
-    public static FeatureEffectiveStatement createFeature(final FeatureStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyFeatureEffectiveStatement(declared, path, flags)
-            : new RegularFeatureEffectiveStatement(declared, path, flags, substatements);
-    }
-
-    public static FractionDigitsEffectiveStatement createFractionDigits(final FractionDigitsStatement declared) {
-        return new EmptyFractionDigitsEffectiveStatement(declared);
-    }
-
-    public static FractionDigitsEffectiveStatement createFractionDigits(final FractionDigitsStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createFractionDigits(declared)
-            : new RegularFractionDigitsEffectiveStatement(declared, substatements);
-    }
-
-    public static GroupingEffectiveStatement createGrouping(final GroupingStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
-            final int flags) throws SubstatementIndexingException {
-        return new GroupingEffectiveStatementImpl(declared, substatements, path, flags);
-    }
-
-    public static IfFeatureEffectiveStatement createIfFeature(final IfFeatureStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyIfFeatureEffectiveStatement(declared)
-            : new RegularIfFeatureEffectiveStatement(declared, substatements);
-    }
-
-    public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final Immutable path) {
-        return new EmptyIdentityEffectiveStatement(declared, path);
-    }
-
-    public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final ImmutableSet<IdentitySchemaNode> baseIdentities) {
-        return new RegularIdentityEffectiveStatement(declared, path, flags, substatements, baseIdentities);
-    }
-
-    public static ImportEffectiveStatement createImport(final ImportStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final SourceIdentifier importedSource) {
-        return new ImportEffectiveStatementImpl(declared, substatements, importedSource);
-    }
-
-    public static IncludeEffectiveStatement createInclude(final IncludeStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyIncludeEffectiveStatement(declared)
-            : new RegularIncludeEffectiveStatement(declared, substatements);
-    }
-
-    public static InputEffectiveStatement copyInput(final InputEffectiveStatement original, final Immutable path,
-            final int flags) {
-        if (original instanceof DeclaredInputEffectiveStatement) {
-            return new DeclaredInputEffectiveStatement((DeclaredInputEffectiveStatement) original, path, flags);
-        } else if (original instanceof UndeclaredInputEffectiveStatement) {
-            return new UndeclaredInputEffectiveStatement((UndeclaredInputEffectiveStatement) original, path, flags);
-        } else {
-            throw new IllegalArgumentException("Unsupported original " + original);
-        }
-    }
-
-    public static InputEffectiveStatement createInput(final Immutable path, final int flags,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
-            throws SubstatementIndexingException {
-        return new UndeclaredInputEffectiveStatement(substatements, path, flags);
-    }
-
-    public static InputEffectiveStatement createInput(final InputStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
-                throws SubstatementIndexingException {
-        return new DeclaredInputEffectiveStatement(declared, substatements, path, flags);
-    }
-
-    public static KeyEffectiveStatement createKey(final KeyStatement declared, final Set<QName> argument,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        if (substatements.isEmpty()) {
-            return argument.equals(declared.argument()) ? new EmptyLocalKeyEffectiveStatement(declared)
-                : new EmptyForeignKeyEffectiveStatement(declared, argument);
-        }
-        return argument.equals(declared.argument()) ? new RegularLocalKeyEffectiveStatement(declared, substatements)
-            : new RegularForeignKeyEffectiveStatement(declared, argument, substatements);
-    }
-
-    public static LeafEffectiveStatement copyLeaf(final LeafEffectiveStatement original, final Immutable path,
-            final int flags, final @Nullable LeafSchemaNode newOriginal) {
-        checkArgument(original instanceof AbstractLeafEffectiveStatement, "Unsupported original %s", original);
-        return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, path, flags, newOriginal);
-    }
-
-    public static LeafEffectiveStatement createLeaf(final LeafStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable LeafSchemaNode original)  throws SubstatementIndexingException {
-        return original == null ? new EmptyLeafEffectiveStatement(declared, path, flags, substatements)
-            : new RegularLeafEffectiveStatement(declared, path, flags, substatements, original);
-    }
-
-    public static LengthEffectiveStatement createLength(final LengthStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyLengthEffectiveStatement(declared)
-            : new RegularLengthEffectiveStatement(declared, substatements);
-    }
-
-    public static MandatoryEffectiveStatement createMandatory(final MandatoryStatement declared) {
-        return new EmptyMandatoryEffectiveStatement(declared);
-    }
-
-    public static MandatoryEffectiveStatement createMandatory(final MandatoryStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createMandatory(declared)
-            : new RegularMandatoryEffectiveStatement(declared, substatements);
-    }
-
-    public static MaxElementsEffectiveStatement createMaxElements(final MaxElementsStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyMaxElementsEffectiveStatement(declared)
-            : new RegularMaxElementsEffectiveStatement(declared, substatements);
-    }
-
-    public static MinElementsEffectiveStatement createMinElements(final MinElementsStatement declared) {
-        return new EmptyMinElementsEffectiveStatement(declared);
-    }
-
-    public static MinElementsEffectiveStatement createMinElements(final MinElementsStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createMinElements(declared)
-            : new RegularMinElementsEffectiveStatement(declared, substatements);
-    }
-
-    public static ModifierEffectiveStatement createModifier(final ModifierStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyModifierEffectiveStatement(declared)
-            : new RegularModifierEffectiveStatement(declared, substatements);
-    }
-
-    public static MustEffectiveStatement createMust(final MustStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyMustEffectiveStatement(declared)
-            : new RegularMustEffectiveStatement(declared, substatements);
-    }
-
-    public static NamespaceEffectiveStatement createNamespace(final NamespaceStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyNamespaceEffectiveStatement(declared)
-            : new RegularNamespaceEffectiveStatement(declared, substatements);
-    }
-
-    public static NotificationEffectiveStatement copyNotification(final NotificationEffectiveStatement original,
-            final Immutable path, final int flags) {
-        checkArgument(original instanceof NotificationEffectiveStatementImpl, "Unsupported original %s", original);
-        return new NotificationEffectiveStatementImpl((NotificationEffectiveStatementImpl) original, path, flags);
-    }
-
-    public static NotificationEffectiveStatement createNotification(final NotificationStatement declared,
-            final Immutable path, final int flags,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
-                throws SubstatementIndexingException {
-        return new NotificationEffectiveStatementImpl(declared, substatements, path, flags);
-    }
-
-    public static OutputEffectiveStatement copyOutput(final OutputEffectiveStatement original, final Immutable path,
-            final int flags) {
-        if (original instanceof DeclaredOutputEffectiveStatement) {
-            return new DeclaredOutputEffectiveStatement((DeclaredOutputEffectiveStatement) original, path, flags);
-        } else if (original instanceof UndeclaredOutputEffectiveStatement) {
-            return new UndeclaredOutputEffectiveStatement((UndeclaredOutputEffectiveStatement) original, path, flags);
-        } else {
-            throw new IllegalArgumentException("Unsupported original " + original);
-        }
-    }
-
-    public static OutputEffectiveStatement createOutput(final Immutable path, final int flags,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
-            throws SubstatementIndexingException {
-        return new UndeclaredOutputEffectiveStatement(substatements, path, flags);
-    }
-
-    public static OutputEffectiveStatement createOutput(final OutputStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
-                throws SubstatementIndexingException {
-        return new DeclaredOutputEffectiveStatement(declared, substatements, path, flags);
-    }
-
-    public static OrderedByEffectiveStatement createOrderedBy(final OrderedByStatement declared) {
-        return new EmptyOrderedByEffectiveStatement(declared);
-    }
-
-    public static OrderedByEffectiveStatement createOrderedBy(final OrderedByStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createOrderedBy(declared)
-            : new RegularOrderedByEffectiveStatement(declared, substatements);
-    }
-
-    public static OrganizationEffectiveStatement createOrganization(final OrganizationStatement declared) {
-        return new EmptyOrganizationEffectiveStatement(declared);
-    }
-
-    public static OrganizationEffectiveStatement createOrganization(final OrganizationStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createOrganization(declared)
-            : new RegularOrganizationEffectiveStatement(declared, substatements);
-    }
-
-    public static PathEffectiveStatement createPath(final PathStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyPathEffectiveStatement(declared)
-            : new RegularPathEffectiveStatement(declared, substatements);
-    }
-
-    public static PatternEffectiveStatement createPattern(final PatternStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyPatternEffectiveStatement(declared)
-            : new RegularPatternEffectiveStatement(declared, substatements);
-    }
-
-    public static PositionEffectiveStatement createPosition(final PositionStatement declared) {
-        return new EmptyPositionEffectiveStatement(declared);
-    }
-
-    public static PositionEffectiveStatement createPosition(final PositionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createPosition(declared)
-            : new RegularPositionEffectiveStatement(declared, substatements);
-    }
-
-    public static PrefixEffectiveStatement createPrefix(final PrefixStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyPrefixEffectiveStatement(declared)
-            : new RegularPrefixEffectiveStatement(declared, substatements);
-    }
-
-    public static PresenceEffectiveStatement createPresence(final PresenceStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyPresenceEffectiveStatement(declared)
-            : new RegularPresenceEffectiveStatement(declared, substatements);
-    }
-
-    public static RangeEffectiveStatement createRange(final RangeStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyRangeEffectiveStatement(declared)
-            : new RegularRangeEffectiveStatement(declared, substatements);
-    }
-
-    public static ReferenceEffectiveStatement createReference(final ReferenceStatement declared) {
-        return new EmptyReferenceEffectiveStatement(declared);
-    }
-
-    public static ReferenceEffectiveStatement createReference(final ReferenceStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createReference(declared)
-            : new RegularReferenceEffectiveStatement(declared, substatements);
-    }
-
-    public static RevisionEffectiveStatement createRevision(final RevisionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyRevisionEffectiveStatement(declared)
-            : new RegularRevisionEffectiveStatement(declared, substatements);
-    }
-
-    public static RequireInstanceEffectiveStatement createRequireInstance(final boolean argument) {
-        return argument ? EmptyRequireInstanceEffectiveStatement.TRUE : EmptyRequireInstanceEffectiveStatement.FALSE;
-    }
-
-    public static RequireInstanceEffectiveStatement createRequireInstance(final RequireInstanceStatement declared) {
-        if (EmptyRequireInstanceStatement.TRUE.equals(declared)) {
-            return EmptyRequireInstanceEffectiveStatement.TRUE;
-        } else if (EmptyRequireInstanceStatement.FALSE.equals(declared)) {
-            return EmptyRequireInstanceEffectiveStatement.FALSE;
-        } else {
-            return new EmptyRequireInstanceEffectiveStatement(declared);
-        }
-    }
-
-    public static RequireInstanceEffectiveStatement createRequireInstance(final RequireInstanceStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createRequireInstance(declared)
-            : new RegularRequireInstanceEffectiveStatement(declared, substatements);
-    }
-
-    public static RevisionDateEffectiveStatement createRevisionDate(final RevisionDateStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyRevisionDateEffectiveStatement(declared)
-            : new RegularRevisionDateEffectiveStatement(declared, substatements);
-    }
-
-    public static RpcEffectiveStatement createRpc(final RpcStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
-                final int flags) throws SubstatementIndexingException {
-        return new RpcEffectiveStatementImpl(declared, substatements, path, flags);
-    }
-
-    public static StatusEffectiveStatement createStatus(final StatusStatement declared) {
-        // Aggressively reuse effective instances which are backed by the corresponding empty declared instance, as this
-        // is the case unless there is a weird extension in use.
-        if (EmptyStatusStatement.DEPRECATED.equals(declared)) {
-            // Most likely to be seen (as current is the default)
-            return EmptyStatusEffectiveStatement.DEPRECATED;
-        } else if (EmptyStatusStatement.OBSOLETE.equals(declared)) {
-            // less likely
-            return EmptyStatusEffectiveStatement.OBSOLETE;
-        } else if (EmptyStatusStatement.CURRENT.equals(declared)) {
-            // ... okay, why is this there? :)
-            return EmptyStatusEffectiveStatement.CURRENT;
-        } else {
-            return new EmptyStatusEffectiveStatement(declared);
-        }
-    }
-
-    public static StatusEffectiveStatement createStatus(final StatusStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createStatus(declared)
-            : new RegularStatusEffectiveStatement(declared, substatements);
-    }
-
-    public static TypedefEffectiveStatement createTypedef(final TypedefStatement declared,
-            final Immutable path, final int flags,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return new TypedefEffectiveStatementImpl(declared, path, flags, substatements);
-    }
-
-    public static UnitsEffectiveStatement createUnits(final UnitsStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyUnitsEffectiveStatement(declared)
-            : new RegularUnitsEffectiveStatement(declared, substatements);
-    }
-
-    public static UniqueEffectiveStatement createUnique(final UniqueStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyUniqueEffectiveStatement(declared)
-            : new RegularUniqueEffectiveStatement(declared, substatements);
-    }
-
-    public static ValueEffectiveStatement createValue(final ValueStatement declared) {
-        return new EmptyValueEffectiveStatement(declared);
-    }
-
-    public static ValueEffectiveStatement createValue(final ValueStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createValue(declared)
-            : new RegularValueEffectiveStatement(declared, substatements);
-    }
-
-    public static WhenEffectiveStatement createWhen(final WhenStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyWhenEffectiveStatement(declared)
-            : new RegularWhenEffectiveStatement(declared, substatements);
-    }
-
-    public static YangVersionEffectiveStatement createYangVersion(final YangVersionStatement declared) {
-        if (EmptyYangVersionStatement.VERSION_1.equals(declared)) {
-            return EmptyYangVersionEffectiveStatement.VERSION_1;
-        } else if (EmptyYangVersionStatement.VERSION_1_1.equals(declared)) {
-            return EmptyYangVersionEffectiveStatement.VERSION_1_1;
-        } else {
-            return new EmptyYangVersionEffectiveStatement(declared);
-        }
-    }
-
-    public static YangVersionEffectiveStatement createYangVersion(final YangVersionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createYangVersion(declared)
-            : new RegularYangVersionEffectiveStatement(declared, substatements);
-    }
-
-    public static YinElementEffectiveStatement createYinElement(final YinElementStatement declared) {
-        return new EmptyYinElementEffectiveStatement(declared);
-    }
-
-    public static YinElementEffectiveStatement createYinElement(final YinElementStatement declared,
-        final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? createYinElement(declared)
-            : new RegularYinElementEffectiveStatement(declared, substatements);
-    }
-}