<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-model-spi</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-repo-api</artifactId>
+ </dependency>
</dependencies>
</project>
exports org.opendaylight.yangtools.yang.model.ri.type;
requires transitive org.opendaylight.yangtools.yang.model.api;
+ requires transitive org.opendaylight.yangtools.yang.repo.api;
requires com.google.common;
requires org.opendaylight.yangtools.yang.model.spi;
requires org.opendaylight.yangtools.concepts;
+ requires org.slf4j;
// Annotations
requires static transitive org.eclipse.jdt.annotation;
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.concepts.Immutable;
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.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.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.ModifierStatement;
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.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.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.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.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.EmptyMandatoryEffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMaxElementsEffectiveStatement;
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.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.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.RegularMandatoryEffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMaxElementsEffectiveStatement;
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.UndeclaredInputEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.UndeclaredOutputEffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
/**
: 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 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 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 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 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);
}
: 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);
}
: 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);
}
: new RegularReferenceEffectiveStatement(declared, substatements);
}
- public static PresenceEffectiveStatement createPresence(final PresenceStatement declared,
+ public static RevisionEffectiveStatement createRevision(final RevisionStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyPresenceEffectiveStatement(declared)
- : new RegularPresenceEffectiveStatement(declared, substatements);
+ return substatements.isEmpty() ? new EmptyRevisionEffectiveStatement(declared)
+ : new RegularRevisionEffectiveStatement(declared, substatements);
}
public static RequireInstanceEffectiveStatement createRequireInstance(final boolean argument) {
: 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.
: 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);
}
* 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.parser.rfc7950.stmt.identity;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
* 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.parser.rfc7950.stmt.leaf;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MandatoryMixin;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MustConstraintMixin;
-abstract class AbstractLeafEffectiveStatement extends AbstractDeclaredEffectiveStatement.Default<QName, LeafStatement>
+public abstract class AbstractLeafEffectiveStatement
+ extends AbstractDeclaredEffectiveStatement.Default<QName, LeafStatement>
implements LeafEffectiveStatement, LeafSchemaNode, DerivableSchemaNode,
DataSchemaNodeMixin<QName, LeafStatement>, MandatoryMixin<QName, LeafStatement>,
MustConstraintMixin<QName, LeafStatement> {
* 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.parser.rfc7950.stmt.input;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin;
-final class DeclaredInputEffectiveStatement extends WithSubstatements<QName, InputStatement, InputEffectiveStatement>
+public final class DeclaredInputEffectiveStatement
+ extends WithSubstatements<QName, InputStatement, InputEffectiveStatement>
implements InputEffectiveStatement, InputSchemaNode, OperationContainerMixin<InputStatement> {
private final @NonNull Immutable path;
private final int flags;
- DeclaredInputEffectiveStatement(final InputStatement declared,
+ public DeclaredInputEffectiveStatement(final InputStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
final int flags) {
super(declared, substatements);
this.flags = flags;
}
- DeclaredInputEffectiveStatement(final DeclaredInputEffectiveStatement original, final Immutable path,
+ public DeclaredInputEffectiveStatement(final DeclaredInputEffectiveStatement original, final Immutable path,
final int flags) {
super(original);
this.path = requireNonNull(path);
* 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.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin;
-final class DeclaredOutputEffectiveStatement extends WithSubstatements<QName, OutputStatement, OutputEffectiveStatement>
+public final class DeclaredOutputEffectiveStatement
+ extends WithSubstatements<QName, OutputStatement, OutputEffectiveStatement>
implements OutputEffectiveStatement, OutputSchemaNode, OperationContainerMixin<OutputStatement> {
private final @NonNull Immutable path;
private final int flags;
- DeclaredOutputEffectiveStatement(final OutputStatement declared,
+ public DeclaredOutputEffectiveStatement(final OutputStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
final int flags) {
super(declared, substatements);
this.flags = flags;
}
- DeclaredOutputEffectiveStatement(final DeclaredOutputEffectiveStatement original, final Immutable path,
+ public DeclaredOutputEffectiveStatement(final DeclaredOutputEffectiveStatement original, final Immutable path,
final int flags) {
super(original);
this.path = requireNonNull(path);
* 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.parser.rfc7950.stmt.deviate;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
-final class DeviateEffectiveStatementImpl extends WithSubstatements<DeviateKind, DeviateStatement>
+public final class DeviateEffectiveStatementImpl extends WithSubstatements<DeviateKind, DeviateStatement>
implements DeviateDefinition, DeviateEffectiveStatement {
- DeviateEffectiveStatementImpl(final DeviateStatement declared,
+ public DeviateEffectiveStatementImpl(final DeviateStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.deviation;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class DeviationEffectiveStatementImpl extends WithSubstatements<Absolute, DeviationStatement>
+public final class DeviationEffectiveStatementImpl extends WithSubstatements<Absolute, DeviationStatement>
implements DeviationEffectiveStatement, Deviation, DocumentedNodeMixin<Absolute, DeviationStatement> {
- DeviationEffectiveStatementImpl(final DeviationStatement declared,
+ public DeviationEffectiveStatementImpl(final DeviationStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.enum_;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class EmptyEnumEffectiveStatement extends DefaultArgument<String, EnumStatement>
+public final class EmptyEnumEffectiveStatement extends DefaultArgument<String, EnumStatement>
implements EnumEffectiveStatement, DocumentedNodeMixin<String, EnumStatement>, WithStatus {
- EmptyEnumEffectiveStatement(final EnumStatement declared) {
+ public EmptyEnumEffectiveStatement(final EnumStatement declared) {
super(declared);
}
* 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.parser.rfc7950.stmt.identity;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableSet;
import java.util.Collection;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
-final class EmptyIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement {
+public final class EmptyIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement {
private static final int CURRENT_FLAGS = new FlagsBuilder().setStatus(Status.CURRENT).toFlags();
- EmptyIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path) {
+ public EmptyIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path) {
super(declared, path);
}
* 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.parser.rfc7950.stmt.leaf;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import java.util.Optional;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
-final class EmptyLeafEffectiveStatement extends AbstractLeafEffectiveStatement {
- EmptyLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
+public final class EmptyLeafEffectiveStatement extends AbstractLeafEffectiveStatement {
+ public EmptyLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, path, flags, substatements);
}
* 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.parser.rfc7950.stmt.pattern;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin;
-final class EmptyPatternEffectiveStatement extends DefaultArgument<PatternExpression, PatternStatement>
+public final class EmptyPatternEffectiveStatement extends DefaultArgument<PatternExpression, PatternStatement>
implements PatternEffectiveStatement, ConstraintMetaDefinitionMixin<PatternExpression, PatternStatement> {
- EmptyPatternEffectiveStatement(final PatternStatement declared) {
+ public EmptyPatternEffectiveStatement(final PatternStatement declared) {
super(declared);
}
}
* 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.parser.rfc7950.stmt.prefix;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
-final class EmptyPrefixEffectiveStatement extends DefaultArgument<String, PrefixStatement>
+public final class EmptyPrefixEffectiveStatement extends DefaultArgument<String, PrefixStatement>
implements PrefixEffectiveStatement {
- EmptyPrefixEffectiveStatement(final PrefixStatement declared) {
+ public EmptyPrefixEffectiveStatement(final PrefixStatement declared) {
super(declared);
}
}
* 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.parser.rfc7950.stmt.range;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import java.util.List;
import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin;
-final class EmptyRangeEffectiveStatement extends DefaultArgument<List<ValueRange>, RangeStatement>
+public final class EmptyRangeEffectiveStatement extends DefaultArgument<List<ValueRange>, RangeStatement>
implements RangeEffectiveStatement, ConstraintMetaDefinitionMixin<List<ValueRange>, RangeStatement> {
- EmptyRangeEffectiveStatement(final RangeStatement declared) {
+ public EmptyRangeEffectiveStatement(final RangeStatement declared) {
super(declared);
}
}
* 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.parser.rfc7950.stmt.revision;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class EmptyRevisionEffectiveStatement extends DefaultArgument<Revision, RevisionStatement>
+public final class EmptyRevisionEffectiveStatement extends DefaultArgument<Revision, RevisionStatement>
implements RevisionEffectiveStatement, DocumentedNodeMixin<Revision, RevisionStatement> {
- EmptyRevisionEffectiveStatement(final RevisionStatement declared) {
+ public EmptyRevisionEffectiveStatement(final RevisionStatement declared) {
super(declared);
}
}
* 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.parser.rfc7950.stmt.unique;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import java.util.Set;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
-class EmptyUniqueEffectiveStatement extends DefaultArgument<Set<Descendant>, UniqueStatement>
+public class EmptyUniqueEffectiveStatement extends DefaultArgument<Set<Descendant>, UniqueStatement>
implements UniqueEffectiveStatement {
- EmptyUniqueEffectiveStatement(final UniqueStatement declared) {
+ public EmptyUniqueEffectiveStatement(final UniqueStatement declared) {
super(declared);
}
}
* 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.parser.rfc7950.stmt.extension;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static com.google.common.base.Verify.verifyNotNull;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class ExtensionEffectiveStatementImpl extends DefaultArgument<QName, ExtensionStatement>
+public final class ExtensionEffectiveStatementImpl extends DefaultArgument<QName, ExtensionStatement>
implements ExtensionDefinition, ExtensionEffectiveStatement, DocumentedNodeMixin<QName, ExtensionStatement> {
private static final class RecursionDetector extends ThreadLocal<Deque<ExtensionEffectiveStatementImpl>> {
boolean check(final ExtensionEffectiveStatementImpl current) {
private final @Nullable SchemaPath path;
private final Object substatements;
- ExtensionEffectiveStatementImpl(final ExtensionStatement declared,
+ public ExtensionEffectiveStatementImpl(final ExtensionStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final SchemaPath path) {
super(declared);
this.substatements = maskList(substatements);
* 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.parser.rfc7950.stmt.import_;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class ImportEffectiveStatementImpl extends WithSubstatements<String, ImportStatement>
+public final class ImportEffectiveStatementImpl extends WithSubstatements<String, ImportStatement>
implements ImportEffectiveStatement, ModuleImport, DocumentedNodeMixin<String, ImportStatement> {
private final @Nullable Revision revision;
private final @Nullable SemVer semVer;
- ImportEffectiveStatementImpl(final ImportStatement declared,
+ public ImportEffectiveStatementImpl(final ImportStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
final @NonNull SourceIdentifier importedSource) {
super(declared, substatements);
* 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.parser.rfc7950.stmt.notification;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MustConstraintMixin;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.SchemaNodeMixin;
-final class NotificationEffectiveStatementImpl
+public final class NotificationEffectiveStatementImpl
extends WithSubstatements<QName, NotificationStatement, NotificationEffectiveStatement>
implements NotificationDefinition, NotificationEffectiveStatement,
SchemaNodeMixin<QName, NotificationStatement>, DataNodeContainerMixin<QName, NotificationStatement>,
private final @NonNull Immutable path;
private final int flags;
- NotificationEffectiveStatementImpl(final NotificationStatement declared,
+ public NotificationEffectiveStatementImpl(final NotificationStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
final int flags) {
super(declared, substatements);
this.flags = flags;
}
- NotificationEffectiveStatementImpl(final NotificationEffectiveStatementImpl original, final Immutable path,
+ public NotificationEffectiveStatementImpl(final NotificationEffectiveStatementImpl original, final Immutable path,
final int flags) {
super(original);
this.path = requireNonNull(path);
* 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.parser.rfc7950.stmt.enum_;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class RegularEnumEffectiveStatement extends WithSubstatements<String, EnumStatement>
+public final class RegularEnumEffectiveStatement extends WithSubstatements<String, EnumStatement>
implements EnumEffectiveStatement, DocumentedNodeMixin<String, EnumStatement>, WithStatus {
- RegularEnumEffectiveStatement(final EnumStatement declared,
+ public RegularEnumEffectiveStatement(final EnumStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.identity;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
-final class RegularIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement {
+public final class RegularIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement {
private final @NonNull Object baseIdentities;
private final @NonNull Object substatements;
private final int flags;
- RegularIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path, final int flags,
+ public RegularIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path, final int flags,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
final ImmutableSet<? extends IdentitySchemaNode> baseIdentities) {
super(declared, path);
* 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.parser.rfc7950.stmt.leaf;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import java.util.Optional;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
-final class RegularLeafEffectiveStatement extends AbstractLeafEffectiveStatement {
+public final class RegularLeafEffectiveStatement extends AbstractLeafEffectiveStatement {
private final @Nullable LeafSchemaNode original;
- RegularLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
+ public RegularLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final LeafSchemaNode original) {
super(declared, path, flags, substatements);
this.original = original;
}
- RegularLeafEffectiveStatement(final AbstractLeafEffectiveStatement originalEffective, final Immutable path,
+ public RegularLeafEffectiveStatement(final AbstractLeafEffectiveStatement originalEffective, final Immutable path,
final int flags, final LeafSchemaNode original) {
super(originalEffective, path, flags);
this.original = original;
* 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.parser.rfc7950.stmt.pattern;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin;
-final class RegularPatternEffectiveStatement extends WithSubstatements<PatternExpression, PatternStatement>
+public final class RegularPatternEffectiveStatement extends WithSubstatements<PatternExpression, PatternStatement>
implements PatternEffectiveStatement, ConstraintMetaDefinitionMixin<PatternExpression, PatternStatement> {
- RegularPatternEffectiveStatement(final PatternStatement declared,
+ public RegularPatternEffectiveStatement(final PatternStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.prefix;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
-final class RegularPrefixEffectiveStatement extends WithSubstatements<String, PrefixStatement>
+public final class RegularPrefixEffectiveStatement extends WithSubstatements<String, PrefixStatement>
implements PrefixEffectiveStatement {
- RegularPrefixEffectiveStatement(final PrefixStatement declared,
+ public RegularPrefixEffectiveStatement(final PrefixStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.range;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin;
-final class RegularRangeEffectiveStatement extends WithSubstatements<List<ValueRange>, RangeStatement>
+public final class RegularRangeEffectiveStatement extends WithSubstatements<List<ValueRange>, RangeStatement>
implements RangeEffectiveStatement, ConstraintMetaDefinitionMixin<List<ValueRange>, RangeStatement> {
- RegularRangeEffectiveStatement(final RangeStatement declared,
+ public RegularRangeEffectiveStatement(final RangeStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.revision;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-final class RegularRevisionEffectiveStatement extends WithSubstatements<Revision, RevisionStatement>
+public final class RegularRevisionEffectiveStatement extends WithSubstatements<Revision, RevisionStatement>
implements RevisionEffectiveStatement, DocumentedNodeMixin<Revision, RevisionStatement> {
- RegularRevisionEffectiveStatement(final RevisionStatement declared,
+ public RegularRevisionEffectiveStatement(final RevisionStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared, substatements);
}
* 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.parser.rfc7950.stmt.unique;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
-final class RegularUniqueEffectiveStatement extends EmptyUniqueEffectiveStatement {
+public final class RegularUniqueEffectiveStatement extends EmptyUniqueEffectiveStatement {
private final @NonNull Object substatements;
- RegularUniqueEffectiveStatement(final UniqueStatement declared,
+ public RegularUniqueEffectiveStatement(final UniqueStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared);
this.substatements = maskList(substatements);
* 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.parser.rfc7950.stmt.rpc;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationDefinitionMixin;
-final class RpcEffectiveStatementImpl extends WithSubstatements<QName, RpcStatement, RpcEffectiveStatement>
+public final class RpcEffectiveStatementImpl extends WithSubstatements<QName, RpcStatement, RpcEffectiveStatement>
implements RpcDefinition, RpcEffectiveStatement, OperationDefinitionMixin<RpcStatement> {
private final @NonNull Immutable path;
private final int flags;
- RpcEffectiveStatementImpl(final RpcStatement declared,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path, final int flags) {
+ public RpcEffectiveStatementImpl(final RpcStatement declared,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
+ final Immutable path, final int flags) {
super(declared, substatements);
this.path = requireNonNull(path);
this.flags = flags;
* 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.parser.rfc7950.stmt.typedef;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-final class TypedefEffectiveStatementImpl extends Default<QName, TypedefStatement>
+public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefStatement>
implements TypedefEffectiveStatement, SchemaNodeMixin<QName, TypedefStatement> {
private static final Logger LOG = LoggerFactory.getLogger(TypedefEffectiveStatementImpl.class);
@SuppressWarnings("unused")
private volatile ProxyTypeEffectiveStatement typeStatement;
- TypedefEffectiveStatementImpl(final TypedefStatement declared, final Immutable path, final int flags,
+ public TypedefEffectiveStatementImpl(final TypedefStatement declared, final Immutable path, final int flags,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(declared);
this.path = requireNonNull(path);
* 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.parser.rfc7950.stmt.input;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractUndeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin;
-final class UndeclaredInputEffectiveStatement
+public final class UndeclaredInputEffectiveStatement
extends WithSubstatements<QName, InputStatement, InputEffectiveStatement>
implements InputEffectiveStatement, InputSchemaNode, OperationContainerMixin<InputStatement> {
private final @NonNull Immutable path;
private final int flags;
- UndeclaredInputEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
+ public UndeclaredInputEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
final Immutable path, final int flags) {
super(substatements);
this.path = requireNonNull(path);
this.flags = flags;
}
- UndeclaredInputEffectiveStatement(final UndeclaredInputEffectiveStatement original, final Immutable path,
+ public UndeclaredInputEffectiveStatement(final UndeclaredInputEffectiveStatement original, final Immutable path,
final int flags) {
super(original);
this.path = requireNonNull(path);
* 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.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractUndeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin;
-final class UndeclaredOutputEffectiveStatement
+public final class UndeclaredOutputEffectiveStatement
extends WithSubstatements<QName, OutputStatement, OutputEffectiveStatement>
implements OutputEffectiveStatement, OutputSchemaNode, OperationContainerMixin<OutputStatement> {
private final @NonNull Immutable path;
private final int flags;
- UndeclaredOutputEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
+ public UndeclaredOutputEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
final Immutable path, final int flags) {
super(substatements);
this.path = requireNonNull(path);
this.flags = flags;
}
- UndeclaredOutputEffectiveStatement(final UndeclaredOutputEffectiveStatement original, final Immutable path,
+ public UndeclaredOutputEffectiveStatement(final UndeclaredOutputEffectiveStatement original, final Immutable path,
final int flags) {
super(original);
this.path = requireNonNull(path);
requires transitive org.opendaylight.yangtools.yang.repo.spi;
requires com.google.common;
+ requires org.antlr.antlr4.runtime;
requires org.opendaylight.yangtools.concepts;
requires org.opendaylight.yangtools.openconfig.model.api;
requires org.opendaylight.yangtools.yang.common;
requires static org.eclipse.jdt.annotation;
// FIXME: hide these
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef;
- exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique;
exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses;
// FIXME: this needs to be renamed to match parser-support naming convention
exports org.opendaylight.yangtools.yang.parser.openconfig.stmt;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_.CaseStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.DeviateStatementRFC6020Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.DeviateStatementRFC7950Support;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation.DeviationStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_.EnumStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.ExtensionStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity.IdentityStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.IfFeatureStatementRFC6020Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.IfFeatureStatementRFC7950Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_.ImportStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_.ImportedVersionNamespace;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key.KeyStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.LeafStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list.LeafListStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list.ConfigListWarningNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list.ListStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ContainerStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.DefaultStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.DescriptionStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.DeviationStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.EnumStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ErrorAppTagStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ErrorMessageStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.FeatureStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.FractionDigitsStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.GroupingStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.IdentityStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.IncludeStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.InputStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.LeafStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.LengthStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MandatoryStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MaxElementsStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.NamespaceStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.OrderedByStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.OrganizationStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.OutputStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.PositionStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.PrefixStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.PresenceStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RangeStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ReferenceStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RequireInstanceStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RevisionDateStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RevisionStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RpcStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.StatusStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.TypedefStatementSupport;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.UniqueStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.UnitsStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ValueStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.WhenStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must.MustStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification.NotificationStatementRFC6020Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification.NotificationStatementRFC7950Support;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path.PathStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern.PatternStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix.PrefixStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range.RangeStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineTargetNamespace;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision.RevisionStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc.RpcStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule.SubmoduleStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type.BaseTypeNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type.TypeStatementRFC6020Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type.TypeStatementRFC7950Support;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef.TypedefStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique.UniqueStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses.SourceGroupingNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses.UsesStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
}
@Override
- protected DeviateEffectiveStatement createEffective(final Current<DeviateKind, DeviateStatement> stmt,
+ protected final DeviateEffectiveStatement createEffective(final Current<DeviateKind, DeviateStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new DeviateEffectiveStatementImpl(stmt.declared(), substatements);
+ return EffectiveStatements.createDeviate(stmt.declared(), substatements);
}
protected SubstatementValidator getSubstatementValidatorForDeviate(final DeviateKind deviateKind) {
import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected ExtensionEffectiveStatement createEffective(final Current<QName, ExtensionStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new ExtensionEffectiveStatementImpl(stmt.declared(), substatements, stmt.optionalPath());
+ return EffectiveStatements.createExtension(stmt.declared(), substatements, stmt.optionalPath());
}
}
\ No newline at end of file
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_;
-import static com.google.common.base.Preconditions.checkState;
import static com.google.common.base.Verify.verify;
import static com.google.common.base.Verify.verifyNotNull;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected ImportEffectiveStatement createEffective(final Current<String, ImportStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- checkState(!substatements.isEmpty(), "Unexpected empty effective import statement");
-
- return new ImportEffectiveStatementImpl(stmt.declared(), substatements,
+ InferenceException.throwIf(substatements.isEmpty(), stmt, "Unexpected empty effective import statement");
+ return EffectiveStatements.createImport(stmt.declared(), substatements,
verifyNotNull(stmt.getFromNamespace(ImportedVersionNamespace.class, Empty.getInstance())));
}
}
import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
* 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.parser.rfc7950.stmt.deviation;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected DeviationEffectiveStatement createEffective(final Current<Absolute, DeviationStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new DeviationEffectiveStatementImpl(stmt.declared(), substatements);
+ return EffectiveStatements.createDeviation(stmt.declared(), substatements);
}
}
\ No newline at end of file
* 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.parser.rfc7950.stmt.enum_;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.EnumEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected EnumEffectiveStatement createEffective(final Current<String, EnumStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyEnumEffectiveStatement(stmt.declared())
- : new RegularEnumEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createEnum(stmt.declared(), substatements);
}
}
\ No newline at end of file
* 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.parser.rfc7950.stmt.identity;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import static com.google.common.base.Verify.verify;
import static com.google.common.base.Verify.verifyNotNull;
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
protected IdentityEffectiveStatement createEffective(final Current<QName, IdentityStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
if (substatements.isEmpty()) {
- return new EmptyIdentityEffectiveStatement(stmt.declared(), stmt.effectivePath());
+ return EffectiveStatements.createIdentity(stmt.declared(), stmt.effectivePath());
}
final List<IdentitySchemaNode> identities = new ArrayList<>();
}
}
- return new RegularIdentityEffectiveStatement(stmt.declared(), stmt.effectivePath(), new FlagsBuilder()
+ return EffectiveStatements.createIdentity(stmt.declared(), stmt.effectivePath(), new FlagsBuilder()
.setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
.toFlags(), substatements, ImmutableSet.copyOf(identities));
}
* 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.parser.rfc7950.stmt.input;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.ri.stmt.ImplicitStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport;
@Override
protected InputEffectiveStatement copyDeclaredEffective(final int flags,
final Current<QName, InputStatement> stmt, final InputEffectiveStatement original) {
- return new DeclaredInputEffectiveStatement((DeclaredInputEffectiveStatement) original, stmt.effectivePath(),
+ return EffectiveStatements.copyInput(original, stmt.effectivePath(),
flags);
}
@Override
protected InputEffectiveStatement copyUndeclaredEffective(final int flags,
final Current<QName, InputStatement> stmt, final InputEffectiveStatement original) {
- return new UndeclaredInputEffectiveStatement((UndeclaredInputEffectiveStatement) original, stmt.effectivePath(),
- flags);
+ return EffectiveStatements.copyInput(original, stmt.effectivePath(), flags);
}
@Override
protected InputEffectiveStatement createDeclaredEffective(final int flags,
final Current<QName, InputStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new DeclaredInputEffectiveStatement(stmt.declared(), substatements, stmt.effectivePath(), flags);
+ try {
+ return EffectiveStatements.createInput(stmt.declared(), stmt.effectivePath(), flags, substatements);
+ } catch (SubstatementIndexingException e) {
+ throw new SourceException(e.getMessage(), stmt, e);
+ }
}
@Override
final Current<QName, InputStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
try {
- return new UndeclaredInputEffectiveStatement(substatements, stmt.effectivePath(), flags);
+ return EffectiveStatements.createInput(stmt.effectivePath(), flags, substatements);
} catch (SubstatementIndexingException e) {
throw new SourceException(e.getMessage(), stmt, e);
}
* 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.parser.rfc7950.stmt.leaf;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
@Override
public LeafEffectiveStatement copyEffective(final Current<QName, LeafStatement> stmt,
final LeafEffectiveStatement original) {
- return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, stmt.effectivePath(),
+ return EffectiveStatements.copyLeaf(original, stmt.effectivePath(),
computeFlags(stmt, original.effectiveSubstatements()), stmt.original(LeafSchemaNode.class));
}
EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeStmt, dflt), stmt,
"Leaf '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt);
- final LeafSchemaNode original = stmt.original(LeafSchemaNode.class);
- final int flags = computeFlags(stmt, substatements);
- final LeafStatement declared = stmt.declared();
- return original == null ? new EmptyLeafEffectiveStatement(declared, stmt.effectivePath(), flags, substatements)
- : new RegularLeafEffectiveStatement(declared, stmt.effectivePath(), flags, substatements, original);
+ return EffectiveStatements.createLeaf(stmt.declared(), stmt.effectivePath(), computeFlags(stmt, substatements),
+ substatements, stmt.original(LeafSchemaNode.class));
}
private static int computeFlags(final Current<?, ?> stmt,
* 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.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import static java.util.Objects.requireNonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.OutputEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.ri.stmt.ImplicitStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport;
@Override
protected OutputEffectiveStatement copyDeclaredEffective(final int flags,
final Current<QName, OutputStatement> stmt, final OutputEffectiveStatement original) {
- return new DeclaredOutputEffectiveStatement((DeclaredOutputEffectiveStatement) original, stmt.effectivePath(),
- flags);
+ return EffectiveStatements.copyOutput(original, stmt.effectivePath(), flags);
}
@Override
protected OutputEffectiveStatement copyUndeclaredEffective(final int flags,
final Current<QName, OutputStatement> stmt, final OutputEffectiveStatement original) {
- return new UndeclaredOutputEffectiveStatement((UndeclaredOutputEffectiveStatement) original,
- stmt.effectivePath(), flags);
+ return EffectiveStatements.copyOutput(original, stmt.effectivePath(), flags);
}
@Override
protected OutputEffectiveStatement createDeclaredEffective(final int flags,
final Current<QName, OutputStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new DeclaredOutputEffectiveStatement(stmt.declared(), substatements, stmt.effectivePath(), flags);
+ try {
+ return EffectiveStatements.createOutput(stmt.declared(), stmt.effectivePath(), flags, substatements);
+ } catch (SubstatementIndexingException e) {
+ throw new SourceException(e.getMessage(), stmt, e);
+ }
}
@Override
final Current<QName, OutputStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
try {
- return new UndeclaredOutputEffectiveStatement(substatements, stmt.effectivePath(), flags);
+ return EffectiveStatements.createOutput(stmt.effectivePath(), flags, substatements);
} catch (SubstatementIndexingException e) {
throw new SourceException(e.getMessage(), stmt, e);
}
* 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.parser.rfc7950.stmt.prefix;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected PrefixEffectiveStatement createEffective(final Current<String, PrefixStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyPrefixEffectiveStatement(stmt.declared())
- : new RegularPrefixEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createPrefix(stmt.declared(), substatements);
}
}
* 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.parser.rfc7950.stmt.range;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import org.opendaylight.yangtools.yang.model.api.stmt.UnresolvedNumber;
import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected RangeEffectiveStatement createEffective(final Current<List<ValueRange>, RangeStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyRangeEffectiveStatement(stmt.declared())
- : new RegularRangeEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createRange(stmt.declared(), substatements);
}
@Override
* 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.parser.rfc7950.stmt.revision;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import com.google.common.collect.ImmutableList;
import java.time.format.DateTimeParseException;
import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected RevisionEffectiveStatement createEffective(final Current<Revision, RevisionStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyRevisionEffectiveStatement(stmt.declared())
- : new RegularRevisionEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createRevision(stmt.declared(), substatements);
}
}
\ No newline at end of file
* 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.parser.rfc7950.stmt.rpc;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.base.Verify.verify;
import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
checkState(!substatements.isEmpty(), "Missing implicit input/output statements at %s", stmt.sourceReference());
try {
- return new RpcEffectiveStatementImpl(stmt.declared(), substatements, stmt.effectivePath(),
+ return EffectiveStatements.createRpc(stmt.declared(), substatements, stmt.effectivePath(),
computeFlags(substatements));
} catch (SubstatementIndexingException e) {
throw new SourceException(e.getMessage(), stmt, e);
* 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.parser.rfc7950.stmt.typedef;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import static com.google.common.base.Preconditions.checkState;
import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace;
EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeEffectiveStmt, dflt), stmt,
"Typedef '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt);
- return new TypedefEffectiveStatementImpl(declared, stmt.effectivePath(), computeFlags(substatements),
+ return EffectiveStatements.createTypedef(declared, stmt.effectivePath(), computeFlags(substatements),
substatements);
}
* 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.parser.rfc7950.stmt.unique;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected UniqueEffectiveStatement createEffective(final Current<Set<Descendant>, UniqueStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyUniqueEffectiveStatement(stmt.declared())
- : new RegularUniqueEffectiveStatement(stmt.declared(), substatements);
-
+ return EffectiveStatements.createUnique(stmt.declared(), substatements);
}
private static ImmutableSet<Descendant> parseUniqueConstraintArgument(final StmtContext<?, ?, ?> ctx,
import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
protected final NotificationEffectiveStatement createEffective(final Current<QName, NotificationStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
try {
- return new NotificationEffectiveStatementImpl(stmt.declared(), substatements, stmt.effectivePath(),
- EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements));
+ return EffectiveStatements.createNotification(stmt.declared(), stmt.effectivePath(),
+ EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements), substatements);
} catch (SubstatementIndexingException e) {
throw new SourceException(e.getMessage(), stmt, e);
}
}
@Override
+ // FIXME: propagate original?
public final NotificationEffectiveStatement copyEffective(final Current<QName, NotificationStatement> stmt,
final NotificationEffectiveStatement original) {
- return new NotificationEffectiveStatementImpl((NotificationEffectiveStatementImpl) original,
- stmt.effectivePath(),
+ return EffectiveStatements.copyNotification(original, stmt.effectivePath(),
EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), original.effectiveSubstatements()));
}
}
\ No newline at end of file
import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression;
import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected PatternEffectiveStatement createEffective(final Current<PatternExpression, PatternStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyPatternEffectiveStatement(stmt.declared())
- : new RegularPatternEffectiveStatement(stmt.declared(), substatements);
+ return EffectiveStatements.createPattern(stmt.declared(), substatements);
}
}