- private static final CharMatcher SINGLE_QUOTE_MATCHER = CharMatcher
- .is('\'');
-
- private static final char SEPARATOR_NODENAME = '/';
+ private static final CharMatcher SINGLE_QUOTE_MATCHER = CharMatcher.is('\'');
+ private static final CharMatcher LEFT_PARENTHESIS_MATCHER = CharMatcher.is('(');
+ private static final CharMatcher RIGHT_PARENTHESIS_MATCHER = CharMatcher.is(')');
+ private static final CharMatcher AMPERSAND_MATCHER = CharMatcher.is('&');
+ private static final CharMatcher QUESTION_MARK_MATCHER = CharMatcher.is('?');
+ private static final Splitter SLASH_SPLITTER = Splitter.on('/').omitEmptyStrings().trimResults();
+ private static final Splitter SPACE_SPLITTER = Splitter.on(' ').omitEmptyStrings().trimResults();
+ private static final Pattern PATH_ABS = Pattern.compile("/[^/].*");
+
+ private static final Map<String, Deviate> KEYWORD_TO_DEVIATE_MAP;
+ static {
+ Builder<String, Deviate> keywordToDeviateMapBuilder = ImmutableMap.builder();
+ for (Deviate deviate : Deviation.Deviate.values()) {
+ keywordToDeviateMapBuilder.put(deviate.getKeyword(), deviate);
+ }
+ KEYWORD_TO_DEVIATE_MAP = keywordToDeviateMapBuilder.build();
+ }