Improve ParserNamespace type safety
[yangtools.git] / parser / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / source / SourceNamespaceBehaviours.java
1 /*
2  * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.parser.spi.source;
9
10 import org.eclipse.jdt.annotation.NonNull;
11 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
12
13 /**
14  * {@link NamespaceBehaviour}s corresponding to {@link SourceParserNamespaces}.
15  */
16 public final class SourceNamespaceBehaviours {
17     public static final @NonNull NamespaceBehaviour<?, ?> BELONGSTO_PREFIX_TO_MODULECTX =
18         NamespaceBehaviour.sourceLocal(SourceParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX);
19
20     public static final @NonNull NamespaceBehaviour<?, ?> BELONGSTO_PREFIX_TO_MODULE_NAME =
21         NamespaceBehaviour.sourceLocal(SourceParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME);
22
23     public static final @NonNull NamespaceBehaviour<?, ?> MODULE_NAME_TO_QNAME =
24         NamespaceBehaviour.sourceLocal(SourceParserNamespaces.MODULE_NAME_TO_QNAME);
25
26     public static final @NonNull NamespaceBehaviour<?, ?> IMPORTED_MODULE =
27         NamespaceBehaviour.sourceLocal(SourceParserNamespaces.IMPORTED_MODULE);
28
29     public static final @NonNull NamespaceBehaviour<?, ?> INCLUDED_MODULE =
30         NamespaceBehaviour.sourceLocal(SourceParserNamespaces.INCLUDED_MODULE);
31
32     public static final @NonNull NamespaceBehaviour<?, ?> MODULECTX_TO_QNAME =
33         NamespaceBehaviour.global(SourceParserNamespaces.MODULECTX_TO_QNAME);
34
35     public static final @NonNull NamespaceBehaviour<?, ?> INCLUDED_SUBMODULE_NAME_TO_MODULECTX =
36         NamespaceBehaviour.sourceLocal(SourceParserNamespaces.INCLUDED_SUBMODULE_NAME_TO_MODULECTX);
37
38     public static final @NonNull NamespaceBehaviour<?, ?> IMP_PREFIX_TO_NAMESPACE =
39         NamespaceBehaviour.rootStatementLocal(SourceParserNamespaces.IMP_PREFIX_TO_NAMESPACE);
40
41     public static final @NonNull NamespaceBehaviour<?, ?> IMPORT_PREFIX_TO_MODULECTX =
42         NamespaceBehaviour.rootStatementLocal(SourceParserNamespaces.IMPORT_PREFIX_TO_MODULECTX);
43
44     public static final @NonNull NamespaceBehaviour<?, ?> MODULE_FOR_BELONGSTO =
45         NamespaceBehaviour.global(SourceParserNamespaces.MODULE_FOR_BELONGSTO);
46
47     public static final @NonNull NamespaceBehaviour<?, ?> SUPPORTED_FEATURES =
48         NamespaceBehaviour.global(SourceParserNamespaces.SUPPORTED_FEATURES);
49
50     public static final @NonNull NamespaceBehaviour<?, ?> PREFIX_TO_MODULE =
51         NamespaceBehaviour.global(SourceParserNamespaces.PREFIX_TO_MODULE);
52
53     public static final @NonNull NamespaceBehaviour<?, ?> MODULES_DEVIATED_BY =
54         NamespaceBehaviour.global(SourceParserNamespaces.MODULES_DEVIATED_BY);
55
56     public static final @NonNull NamespaceBehaviour<?, ?> MODULE_NAMESPACE_TO_NAME =
57         NamespaceBehaviour.global(SourceParserNamespaces.MODULE_NAMESPACE_TO_NAME);
58
59     public static final @NonNull NamespaceBehaviour<?, ?> MODULE_NAME_TO_NAMESPACE =
60         NamespaceBehaviour.global(SourceParserNamespaces.MODULE_NAME_TO_NAMESPACE);
61
62     public static final @NonNull NamespaceBehaviour<?, ?> MODULECTX_TO_SOURCE =
63         NamespaceBehaviour.global(SourceParserNamespaces.MODULECTX_TO_SOURCE);
64
65     private SourceNamespaceBehaviours() {
66         // Hidden on purpose
67     }
68 }