Bug 5527 - Re-implement ControllerContext.toInstanceIdentifier() method
[netconf.git] / restconf / sal-rest-connector / src / main / java / org / opendaylight / restconf / utils / parser / builder / ParserBuilderConstants.java
1 /*
2  * Copyright (c) 2016 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 package org.opendaylight.restconf.utils.parser.builder;
9
10 import com.google.common.base.CharMatcher;
11 import org.opendaylight.restconf.parser.builder.YangInstanceIdentifierDeserializer;
12 import org.opendaylight.restconf.parser.builder.YangInstanceIdentifierSerializer;
13
14 /**
15  * Util class of constants of {@link YangInstanceIdentifierSerializer}
16  * and {@link YangInstanceIdentifierDeserializer}
17  *
18  */
19 public final class ParserBuilderConstants {
20
21     private ParserBuilderConstants() {
22         throw new UnsupportedOperationException("Util class");
23     }
24
25     /**
26      * Constants for {@link YangInstanceIdentifierSerializer}
27      *
28      */
29     public static final class Serializer {
30
31         private Serializer() {
32             throw new UnsupportedOperationException("Util class");
33         }
34
35         public static final String DISABLED_CHARS = ",': /";
36         public static final CharMatcher PERCENT_ENCODE_CHARS = CharMatcher.anyOf(DISABLED_CHARS).precomputed();
37     }
38
39     /**
40      * Constants for {@link YangInstanceIdentifierSerializer}
41      *
42      */
43     public static final class Deserializer {
44
45         private Deserializer() {
46             throw new UnsupportedOperationException("Util class");
47         }
48
49         public static final CharMatcher BASE = CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('A', 'Z'))
50                 .precomputed();
51         public static final CharMatcher IDENTIFIER_FIRST_CHAR = BASE.or(CharMatcher.is('_')).precomputed();
52         public static final CharMatcher IDENTIFIER = IDENTIFIER_FIRST_CHAR.or(CharMatcher.inRange('0', '9'))
53                 .or(CharMatcher.anyOf(".-")).precomputed();
54         public static final CharMatcher IDENTIFIER_HEXA = CharMatcher.inRange('a', 'f')
55                 .or(CharMatcher.inRange('A', 'F')).or(CharMatcher.inRange('0', '9')).precomputed();
56
57         public static final char COLON = ':';
58         public static final char EQUAL = '=';
59         public static final char COMMA = ',';
60         public static final char PERCENT_ENCODING = '%';
61         public static final char QUOTE = '"';
62
63         public static final CharMatcher IDENTIFIER_FIRST_CHAR_PREDICATE = BASE.or(CharMatcher.inRange('0', '9'))
64                 .or(CharMatcher.is(QUOTE)).or(CharMatcher.is(PERCENT_ENCODING)).precomputed();
65
66         public static final CharMatcher IDENTIFIER_PREDICATE = IDENTIFIER_FIRST_CHAR_PREDICATE;
67         public static final String EMPTY_STRING = "";
68     }
69 }