| 1 46 package org.mr.api.jms.selector.parser; 47 48 import org.mr.api.jms.selector.syntax.SelectorException; 49 50 55 final class PatternValidator { 56 57 60 private PatternValidator() { 61 } 63 64 71 public static void validate(final SelectorAST patternNode, final SelectorAST escapeNode) throws SelectorException { 72 73 String pattern = patternNode.getText(); 74 75 if (escapeNode != null) { 76 String escape = escapeNode.getText(); 77 if (escape.length() != 1) { 78 String msg = "escape must be a single character"; 79 throw new SelectorException(escapeNode.getContext(), msg); 80 } 82 char esc = escape.charAt(0); 83 for (int i = 0; i < pattern.length(); ++i) { 84 if (pattern.charAt(i) == esc) { 86 if (++i >= pattern.length()) { 87 String msg = "invalid pattern: no character " 88 + "following last escape character"; 89 throw new SelectorException(patternNode.getContext(), 90 msg); 91 } } } } }} | Popular Tags |