2 * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.model.spi.stmt;
10 import com.google.common.annotations.Beta;
11 import com.google.common.collect.ImmutableList;
12 import java.util.List;
14 import org.eclipse.jdt.annotation.NonNullByDefault;
15 import org.opendaylight.yangtools.yang.common.Ordering;
16 import org.opendaylight.yangtools.yang.common.QName;
17 import org.opendaylight.yangtools.yang.common.Revision;
18 import org.opendaylight.yangtools.yang.common.Uint32;
19 import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
20 import org.opendaylight.yangtools.yang.common.XMLNamespace;
21 import org.opendaylight.yangtools.yang.common.YangVersion;
22 import org.opendaylight.yangtools.yang.model.api.DeviateKind;
23 import org.opendaylight.yangtools.yang.model.api.PathExpression;
24 import org.opendaylight.yangtools.yang.model.api.Status;
25 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
26 import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
27 import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
28 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
29 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
30 import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
31 import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
32 import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
33 import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
34 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
35 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
36 import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
37 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
38 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
39 import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
40 import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
41 import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
42 import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
43 import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
44 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
45 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
46 import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
47 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
48 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
49 import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureExpr;
50 import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
51 import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
52 import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
53 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
54 import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
55 import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
56 import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
57 import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
58 import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
59 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
60 import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
61 import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
62 import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
63 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
64 import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
65 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
66 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
67 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
68 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
69 import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
70 import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
71 import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression;
72 import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
73 import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
74 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
75 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
76 import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
77 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
78 import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
79 import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
80 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
81 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
82 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
83 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
84 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
85 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
86 import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
87 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
88 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
89 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
90 import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
91 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
92 import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
93 import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
94 import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
95 import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
96 import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
97 import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
98 import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
99 import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
102 * Static entry point to instantiating {@link DeclaredStatement} covered in the {@code RFC7950} metamodel.
106 public final class DeclaredStatements {
107 private DeclaredStatements() {
111 public static ActionStatement createAction(final QName argument) {
112 return new EmptyActionStatement(argument);
115 public static ActionStatement createAction(final QName argument,
116 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
117 return substatements.isEmpty() ? createAction(argument) : new RegularActionStatement(argument, substatements);
120 public static AnydataStatement createAnydata(final QName argument) {
121 return new EmptyAnydataStatement(argument);
124 public static AnydataStatement createAnydata(final QName argument,
125 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
126 return substatements.isEmpty() ? createAnydata(argument) : new RegularAnydataStatement(argument, substatements);
129 public static AnyxmlStatement createAnyxml(final QName argument) {
130 return new EmptyAnyxmlStatement(argument);
133 public static AnyxmlStatement createAnyxml(final QName argument,
134 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
135 return substatements.isEmpty() ? createAnyxml(argument) : new RegularAnyxmlStatement(argument, substatements);
138 public static ArgumentStatement createArgument(final QName argument) {
139 return new EmptyArgumentStatement(argument);
142 public static ArgumentStatement createArgument(final QName argument,
143 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
144 return substatements.isEmpty() ? createArgument(argument)
145 : new RegularArgumentStatement(argument, substatements);
148 public static AugmentStatement createAugment(final String rawArgument, final SchemaNodeIdentifier argument) {
149 return new EmptyAugmentStatement(rawArgument, argument);
152 public static AugmentStatement createAugment(final String rawArgument, final SchemaNodeIdentifier argument,
153 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
154 return substatements.isEmpty() ? createAugment(rawArgument, argument)
155 : new RegularAugmentStatement(rawArgument, argument, substatements);
158 public static BaseStatement createBase(final QName argument) {
159 return new EmptyBaseStatement(argument);
162 public static BaseStatement createBase(final QName argument,
163 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
164 return substatements.isEmpty() ? createBase(argument) : new RegularBaseStatement(argument, substatements);
167 public static BelongsToStatement createBelongsTo(final String argument) {
168 return new EmptyBelongsToStatement(argument);
171 public static BelongsToStatement createBelongsTo(final String argument,
172 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
173 return substatements.isEmpty() ? createBelongsTo(argument)
174 : new RegularBelongsToStatement(argument, substatements);
177 public static BitStatement createBit(final String argument) {
178 return new EmptyBitStatement(argument);
181 public static BitStatement createBit(final String argument,
182 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
183 return substatements.isEmpty() ? createBit(argument) : new RegularBitStatement(argument, substatements);
186 public static ChoiceStatement createChoice(final QName argument) {
187 return new EmptyChoiceStatement(argument);
190 public static ChoiceStatement createChoice(final QName argument,
191 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
192 return substatements.isEmpty() ? createChoice(argument) : new RegularChoiceStatement(argument, substatements);
195 public static ConfigStatement createConfig(final Boolean argument) {
196 return new EmptyConfigStatement(argument);
199 public static ConfigStatement createConfig(final Boolean argument,
200 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
201 return substatements.isEmpty() ? createConfig(argument) : new RegularConfigStatement(argument, substatements);
204 public static ContainerStatement createContainer(final QName argument) {
205 return new EmptyContainerStatement(argument);
208 public static ContainerStatement createContainer(final QName argument,
209 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
210 return substatements.isEmpty() ? createContainer(argument)
211 : new RegularContainerStatement(argument, substatements);
214 public static DefaultStatement createDefault(final String argument) {
215 return new EmptyDefaultStatement(argument);
218 public static DefaultStatement createDefault(final String argument,
219 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
220 return substatements.isEmpty() ? createDefault(argument) : new RegularDefaultStatement(argument, substatements);
223 public static DescriptionStatement createDescription(final String argument) {
224 return new EmptyDescriptionStatement(argument);
227 public static DescriptionStatement createDescription(final String argument,
228 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
229 return substatements.isEmpty() ? createDescription(argument)
230 : new RegularDescriptionStatement(argument, substatements);
233 public static DeviateStatement createDeviate(final DeviateKind argument) {
234 // This is exceedingly unlikely, just reuse the implementation
235 return createDeviate(argument, ImmutableList.of());
238 public static DeviateStatement createDeviate(final DeviateKind argument,
239 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
240 return new DeviateStatementImpl(argument, substatements);
243 public static DeviationStatement createDeviation(final String rawArgument, final Absolute argument) {
244 // This does not make really sense
245 return createDeviation(rawArgument, argument, ImmutableList.of());
248 public static DeviationStatement createDeviation(final String rawArgument, final Absolute argument,
249 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
250 return new DeviationStatementImpl(rawArgument, argument, substatements);
253 // FIXME: what is the distinction between rawArgument and argument?
254 public static EnumStatement createEnum(final String rawArgument, final String argument) {
255 return new EmptyEnumStatement(rawArgument, argument);
258 public static EnumStatement createEnum(final String rawArgument, final String argument,
259 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
260 return substatements.isEmpty() ? createEnum(rawArgument, argument)
261 : new RegularEnumStatement(rawArgument, argument, substatements);
264 public static ErrorAppTagStatement createErrorAppTag(final String argument) {
265 return new EmptyErrorAppTagStatement(argument);
268 public static ErrorAppTagStatement createErrorAppTag(final String argument,
269 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
270 return substatements.isEmpty() ? createErrorAppTag(argument)
271 : new RegularErrorAppTagStatement(argument, substatements);
274 public static ErrorMessageStatement createErrorMessage(final String argument) {
275 return new EmptyErrorMessageStatement(argument);
278 public static ErrorMessageStatement createErrorMessage(final String argument,
279 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
280 return substatements.isEmpty() ? createErrorMessage(argument)
281 : new RegularErrorMessageStatement(argument, substatements);
284 public static ExtensionStatement createExtension(final QName argument) {
285 return new EmptyExtensionStatement(argument);
288 public static ExtensionStatement createExtension(final QName argument,
289 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
290 return substatements.isEmpty() ? createExtension(argument)
291 : new RegularExtensionStatement(argument, substatements);
294 public static FeatureStatement createFeature(final QName argument) {
295 return new EmptyFeatureStatement(argument);
298 public static FeatureStatement createFeature(final QName argument,
299 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
300 return substatements.isEmpty() ? createFeature(argument) : new RegularFeatureStatement(argument, substatements);
303 public static FractionDigitsStatement createFractionDigits(final Integer argument) {
304 return new EmptyFractionDigitsStatement(argument);
307 public static FractionDigitsStatement createFractionDigits(final Integer argument,
308 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
309 return substatements.isEmpty() ? createFractionDigits(argument)
310 : new RegularFractionDigitsStatement(argument, substatements);
313 public static GroupingStatement createGrouping(final QName argument) {
314 return new EmptyGroupingStatement(argument);
317 public static GroupingStatement createGrouping(final QName argument,
318 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
319 return substatements.isEmpty() ? createGrouping(argument)
320 : new RegularGroupingStatement(argument, substatements);
323 public static IdentityStatement createIdentity(final QName argument) {
324 return new EmptyIdentityStatement(argument);
327 public static IdentityStatement createIdentity(final QName argument,
328 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
329 return substatements.isEmpty() ? createIdentity(argument)
330 : new RegularIdentityStatement(argument, substatements);
333 public static IfFeatureStatement createIfFeature(final String rawArgument, final IfFeatureExpr argument) {
334 return new EmptyIfFeatureStatement(rawArgument, argument);
337 public static IfFeatureStatement createIfFeature(final String rawArgument, final IfFeatureExpr argument,
338 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
339 return substatements.isEmpty() ? createIfFeature(rawArgument, argument)
340 : new RegularIfFeatureStatement(rawArgument, argument, substatements);
343 public static ImportStatement createImport(final String argument) {
344 // This should never happen
345 return createImport(argument, ImmutableList.of());
348 public static ImportStatement createImport(final String argument,
349 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
350 return new ImportStatementImpl(argument, substatements);
353 public static IncludeStatement createInclude(final String rawArgument, final String argument) {
354 return new EmptyIncludeStatement(rawArgument, argument);
357 public static IncludeStatement createInclude(final String rawArgument, final String argument,
358 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
359 return substatements.isEmpty() ? createInclude(rawArgument, argument)
360 : new RegularIncludeStatement(rawArgument, argument, substatements);
363 public static InputStatement createInput(final QName argument) {
364 return new EmptyInputStatement(argument);
367 public static InputStatement createInput(final QName argument,
368 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
369 return substatements.isEmpty() ? createInput(argument) : new RegularInputStatement(argument, substatements);
372 public static KeyStatement createKey(final String rawArgument, final Set<QName> argument) {
373 return new EmptyKeyStatement(rawArgument, argument);
376 public static KeyStatement createKey(final String rawArgument, final Set<QName> argument,
377 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
378 return substatements.isEmpty() ? createKey(rawArgument, argument)
379 : new RegularKeyStatement(rawArgument, argument, substatements);
382 public static LeafStatement createLeaf(final QName argument) {
383 return new EmptyLeafStatement(argument);
386 public static LeafStatement createLeaf(final QName argument,
387 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
388 return substatements.isEmpty() ? createLeaf(argument) : new RegularLeafStatement(argument, substatements);
391 public static LeafListStatement createLeafList(final QName argument) {
392 return new EmptyLeafListStatement(argument);
395 public static LeafListStatement createLeafList(final QName argument,
396 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
397 return substatements.isEmpty() ? createLeafList(argument)
398 : new RegularLeafListStatement(argument, substatements);
401 public static LengthStatement createLength(final String rawArgument, final List<ValueRange> argument) {
402 return new EmptyLengthStatement(rawArgument, argument);
405 public static LengthStatement createLength(final String rawArgument, final List<ValueRange> argument,
406 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
407 return substatements.isEmpty() ? createLength(rawArgument, argument)
408 : new RegularLengthStatement(rawArgument, argument, substatements);
411 public static ListStatement createList(final QName argument) {
412 return new EmptyListStatement(argument);
415 public static ListStatement createList(final QName argument,
416 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
417 return substatements.isEmpty() ? createList(argument) : new RegularListStatement(argument, substatements);
420 public static MandatoryStatement createMandatory(final Boolean argument) {
421 return new EmptyMandatoryStatement(argument);
424 public static MandatoryStatement createMandatory(final Boolean argument,
425 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
426 return substatements.isEmpty() ? createMandatory(argument)
427 : new RegularMandatoryStatement(argument, substatements);
430 public static MaxElementsStatement createMaxElements(final String rawArgument, final String argument) {
431 return new EmptyMaxElementsStatement(rawArgument, argument);
434 public static MaxElementsStatement createMaxElements(final String rawArgument, final String argument,
435 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
436 return substatements.isEmpty() ? createMaxElements(rawArgument, argument)
437 : new RegularMaxElementsStatement(rawArgument, argument, substatements);
440 public static MinElementsStatement createMinElements(final Integer argument) {
441 return new EmptyMinElementsStatement(argument);
444 public static MinElementsStatement createMinElements(final Integer argument,
445 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
446 return substatements.isEmpty() ? createMinElements(argument)
447 : new RegularMinElementsStatement(argument, substatements);
450 public static ModifierStatement createModifier(final ModifierKind argument) {
451 return new EmptyModifierStatement(argument);
454 public static ModifierStatement createModifier(final ModifierKind argument,
455 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
456 return substatements.isEmpty() ? createModifier(argument)
457 : new RegularModifierStatement(argument, substatements);
460 public static ModuleStatement createModule(final String rawArgument, final UnqualifiedQName argument,
461 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
462 return new ModuleStatementImpl(rawArgument, argument, substatements);
465 public static MustStatement createMust(final String rawArgument, final QualifiedBound argument) {
466 return new EmptyMustStatement(rawArgument, argument);
469 public static MustStatement createMust(final String rawArgument, final QualifiedBound argument,
470 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
471 return substatements.isEmpty() ? createMust(rawArgument, argument)
472 : new RegularMustStatement(rawArgument, argument, substatements);
475 public static NamespaceStatement createNamespace(final XMLNamespace argument) {
476 return new EmptyNamespaceStatement(argument);
479 public static NamespaceStatement createNamespace(final XMLNamespace argument,
480 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
481 return substatements.isEmpty() ? createNamespace(argument)
482 : new RegularNamespaceStatement(argument, substatements);
485 public static NotificationStatement createNotification(final QName argument) {
486 return new EmptyNotificationStatement(argument);
489 public static NotificationStatement createNotification(final QName argument,
490 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
491 return substatements.isEmpty() ? createNotification(argument)
492 : new RegularNotificationStatement(argument, substatements);
495 public static OrganizationStatement createOrganization(final String argument) {
496 return new EmptyOrganizationStatement(argument);
499 public static OrganizationStatement createOrganization(final String argument,
500 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
501 return substatements.isEmpty() ? createOrganization(argument)
502 : new RegularOrganizationStatement(argument, substatements);
505 public static OutputStatement createOutput(final QName argument) {
506 return new EmptyOutputStatement(argument);
509 public static OutputStatement createOutput(final QName argument,
510 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
511 return substatements.isEmpty() ? createOutput(argument) : new RegularOutputStatement(argument, substatements);
514 public static OrderedByStatement createOrderedBy(final Ordering argument) {
515 return new EmptyOrderedByStatement(argument);
518 public static OrderedByStatement createOrderedBy(final Ordering argument,
519 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
520 return substatements.isEmpty() ? createOrderedBy(argument)
521 : new RegularOrderedByStatement(argument, substatements);
524 public static PathStatement createPath(final PathExpression argument) {
525 return new EmptyPathStatement(argument);
528 public static PathStatement createPath(final PathExpression argument,
529 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
530 return substatements.isEmpty() ? createPath(argument) : new RegularPathStatement(argument, substatements);
533 public static PatternStatement createPattern(final PatternExpression argument) {
534 return new EmptyPatternStatement(argument);
537 public static PatternStatement createPattern(final PatternExpression argument,
538 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
539 return substatements.isEmpty() ? createPattern(argument)
540 : new RegularPatternStatement(argument, substatements);
543 public static PositionStatement createPosition(final Uint32 argument) {
544 return new EmptyPositionStatement(argument);
547 public static PositionStatement createPosition(final Uint32 argument,
548 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
549 return substatements.isEmpty() ? createPosition(argument)
550 : new RegularPositionStatement(argument, substatements);
553 public static PrefixStatement createPrefix(final String argument) {
554 return new EmptyPrefixStatement(argument);
557 public static PrefixStatement createPrefix(final String argument,
558 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
559 return substatements.isEmpty() ? createPrefix(argument) : new RegularPrefixStatement(argument, substatements);
562 public static PresenceStatement createPresence(final String argument) {
563 return new EmptyPresenceStatement(argument);
566 public static PresenceStatement createPresence(final String argument,
567 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
568 return substatements.isEmpty() ? createPresence(argument)
569 : new RegularPresenceStatement(argument, substatements);
572 public static ReferenceStatement createReference(final String argument) {
573 return new EmptyReferenceStatement(argument);
576 public static ReferenceStatement createReference(final String argument,
577 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
578 return substatements.isEmpty() ? createReference(argument)
579 : new RegularReferenceStatement(argument, substatements);
582 public static RangeStatement createRange(final String rawArgument, final List<ValueRange> argument) {
583 return new EmptyRangeStatement(rawArgument, argument);
586 public static RangeStatement createRange(final String rawArgument, final List<ValueRange> argument,
587 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
588 return substatements.isEmpty() ? createRange(rawArgument, argument)
589 : new RegularRangeStatement(rawArgument, argument, substatements);
592 public static RefineStatement createRefine(final String rawArgument, final Descendant argument) {
593 return createRefine(rawArgument, argument, ImmutableList.of());
596 public static RefineStatement createRefine(final String rawArgument, final Descendant argument,
597 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
598 return new RefineStatementImpl(rawArgument, argument, substatements);
601 public static RequireInstanceStatement createRequireInstance(final Boolean argument) {
602 return new EmptyRequireInstanceStatement(argument);
605 public static RequireInstanceStatement createRequireInstance(final Boolean argument,
606 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
607 return substatements.isEmpty() ? createRequireInstance(argument)
608 : new RegularRequireInstanceStatement(argument, substatements);
611 public static RevisionStatement createRevision(final Revision argument) {
612 return new EmptyRevisionStatement(argument);
615 public static RevisionStatement createRevision(final Revision argument,
616 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
617 return substatements.isEmpty() ? createRevision(argument)
618 : new RegularRevisionStatement(argument, substatements);
621 public static RevisionDateStatement createRevisionDate(final Revision argument) {
622 return new EmptyRevisionDateStatement(argument);
625 public static RevisionDateStatement createRevisionDate(final Revision argument,
626 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
627 return substatements.isEmpty() ? createRevisionDate(argument)
628 : new RegularRevisionDateStatement(argument, substatements);
631 public static RpcStatement createRpc(final QName argument) {
632 return new EmptyRpcStatement(argument);
635 public static RpcStatement createRpc(final QName argument,
636 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
637 return substatements.isEmpty() ? createRpc(argument) : new RegularRpcStatement(argument, substatements);
640 public static StatusStatement createStatus(final Status argument) {
641 return new EmptyStatusStatement(argument);
644 public static StatusStatement createStatus(final Status argument,
645 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
646 return substatements.isEmpty() ? createStatus(argument) : new RegularStatusStatement(argument, substatements);
649 public static SubmoduleStatement createSubmodule(final String rawArgument, final UnqualifiedQName argument,
650 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
651 return new SubmoduleStatementImpl(rawArgument, argument, substatements);
654 public static TypeStatement createType(final String argument) {
655 return new EmptyTypeStatement(argument);
658 public static TypeStatement createType(final String argument,
659 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
660 return substatements.isEmpty() ? createType(argument) : new RegularTypeStatement(argument, substatements);
663 public static TypedefStatement createTypedef(final QName argument) {
664 return new EmptyTypedefStatement(argument);
667 public static TypedefStatement createTypedef(final QName argument,
668 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
669 return substatements.isEmpty() ? createTypedef(argument) : new RegularTypedefStatement(argument, substatements);
672 public static UniqueStatement createUnique(final String rawArgument, final Set<Descendant> argument) {
673 return new EmptyUniqueStatement(rawArgument, argument);
676 public static UniqueStatement createUnique(final String rawArgument, final Set<Descendant> argument,
677 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
678 return substatements.isEmpty() ? createUnique(rawArgument, argument)
679 : new RegularUniqueStatement(rawArgument, argument, substatements);
682 public static UnitsStatement createUnits(final String argument) {
683 return new EmptyUnitsStatement(argument);
686 public static UnitsStatement createUnits(final String argument,
687 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
688 return substatements.isEmpty() ? createUnits(argument) : new RegularUnitsStatement(argument, substatements);
691 public static UsesStatement createUses(final String rawArgument, final QName argument) {
692 return new EmptyUsesStatement(rawArgument, argument);
695 public static UsesStatement createUses(final String rawArgument, final QName argument,
696 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
697 return substatements.isEmpty() ? createUses(rawArgument, argument)
698 : new RegularUsesStatement(rawArgument, argument, substatements);
701 public static ValueStatement createValue(final Integer argument) {
702 return new EmptyValueStatement(argument);
705 public static ValueStatement createValue(final Integer argument,
706 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
707 return substatements.isEmpty() ? createValue(argument) : new RegularValueStatement(argument, substatements);
710 public static WhenStatement createWhen(final String rawArgument, final QualifiedBound argument) {
711 return new EmptyWhenStatement(rawArgument, argument);
714 public static WhenStatement createWhen(final String rawArgument, final QualifiedBound argument,
715 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
716 return substatements.isEmpty() ? createWhen(rawArgument, argument)
717 : new RegularWhenStatement(rawArgument, argument, substatements);
720 public static YangVersionStatement createYangVersion(final YangVersion argument) {
721 return new EmptyYangVersionStatement(argument);
724 public static YangVersionStatement createYangVersion(final YangVersion argument,
725 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
726 return substatements.isEmpty() ? createYangVersion(argument)
727 : new RegularYangVersionStatement(argument, substatements);
730 public static YinElementStatement createYinElement(final Boolean argument) {
731 return new EmptyYinElementStatement(argument);
734 public static YinElementStatement createYinElement(final Boolean argument,
735 final ImmutableList<? extends DeclaredStatement<?>> substatements) {
736 return substatements.isEmpty() ? createYinElement(argument)
737 : new RegularYinElementStatement(argument, substatements);