Make ParserNamespace an identifier
[yangtools.git] / parser / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / validation / ValidationBundles.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. 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
9 package org.opendaylight.yangtools.yang.parser.spi.validation;
10
11 import java.util.Collection;
12 import org.eclipse.jdt.annotation.NonNull;
13 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
14 import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
15
16 /**
17  * Namespace used for validating whether a node is of some type, e.g. usable target for some operation or has other
18  * significant properties.
19  */
20 public final class ValidationBundles {
21     public enum ValidationBundleType {
22         /**
23          * Whether a node is suitable refine substatement.
24          */
25         SUPPORTED_REFINE_SUBSTATEMENTS,
26
27         /**
28          * Whether a node is suitable target for refine operation.
29          */
30         SUPPORTED_REFINE_TARGETS,
31
32         /**
33          * Whether a node is suitable target for augment operation.
34          */
35         SUPPORTED_AUGMENT_TARGETS,
36
37         /**
38          * Whether a <a href="https://tools.ietf.org/html/rfc6020#section-7.9.2">case shorthand</a> can be created for a
39          * node.
40          */
41         // FIXME: 7.0.0: consider removing this constant, this functionality is part of statement support.
42         SUPPORTED_CASE_SHORTHANDS,
43
44         /**
45          * Whether a node is data node.
46          */
47         SUPPORTED_DATA_NODES
48     }
49
50     public static final @NonNull ParserNamespace<ValidationBundleType, Collection<?>> NAMESPACE =
51         new ParserNamespace<>("validationBundles");
52
53     public static final @NonNull NamespaceBehaviour<?, ?, ?> BEHAVIOUR = NamespaceBehaviour.global(NAMESPACE);
54
55     private ValidationBundles() {
56         // Hidden on purpose
57     }
58 }