List<Token> tokenize() throws ScanException { List<Token> tokenList = new ArrayList<Token>(); StringBuilder buf = new StringBuilder(); while (pointer < patternLength) { char c = pattern.charAt(pointer); pointer++; switch (state) { case LITERAL_STATE: handleLiteralState(c, tokenList, buf); break; case START_STATE: handleStartState(c, tokenList, buf); break; case DEFAULT_VAL_STATE: handleDefaultValueState(c, tokenList, buf); default: } } // EOS switch (state) { case LITERAL_STATE: addLiteralToken(tokenList, buf); break; case START_STATE: throw new ScanException("Unexpected end of pattern string"); } return tokenList; }
private void handleLiteralState(char c, List<Token> tokenList, StringBuilder stringBuilder) { if (c == CoreConstants.DOLLAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; } else if (c == CoreConstants.COLON_CHAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.DEFAULT_VAL_STATE; } else if (c == CoreConstants.CURLY_LEFT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_LEFT_TOKEN); stringBuilder.setLength(0); } else if (c == CoreConstants.CURLY_RIGHT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_RIGHT_TOKEN); stringBuilder.setLength(0); } else { stringBuilder.append(c); } }
private void handleDefaultValueState(char c, List<Token> tokenList, StringBuilder stringBuilder) { switch(c) { case CoreConstants.DASH_CHAR: tokenList.add(Token.DEFAULT_SEP_TOKEN); state = TokenizerState.LITERAL_STATE; break; case CoreConstants.DOLLAR: stringBuilder.append(CoreConstants.COLON_CHAR); addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; break; default: stringBuilder.append(CoreConstants.COLON_CHAR).append(c); state = TokenizerState.LITERAL_STATE; break; } }
List tokenize() throws ScanException { List<Token> tokenList = new ArrayList<Token>(); StringBuilder buf = new StringBuilder(); while (pointer < patternLength) { char c = pattern.charAt(pointer); pointer++; switch (state) { case LITERAL_STATE: handleLiteralState(c, tokenList, buf); break; case START_STATE: handleStartState(c, tokenList, buf); break; case DEFAULT_VAL_STATE: handleDefaultValueState(c, tokenList, buf); default: } } // EOS switch (state) { case LITERAL_STATE: addLiteralToken(tokenList, buf); break; case START_STATE: throw new ScanException("Unexpected end of pattern string"); } return tokenList; }
private void handleLiteralState(char c, List<Token> tokenList, StringBuilder stringBuilder) { if (c == CoreConstants.DOLLAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; } else if (c == CoreConstants.COLON_CHAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.DEFAULT_VAL_STATE; } else if (c == CoreConstants.CURLY_LEFT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_LEFT_TOKEN); stringBuilder.setLength(0); } else if (c == CoreConstants.CURLY_RIGHT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_RIGHT_TOKEN); stringBuilder.setLength(0); } else { stringBuilder.append(c); } }
handleLiteralState(c, tokenList, buf); break; case START_STATE: handleStartState(c, tokenList, buf); break; case DEFAULT_VAL_STATE: handleDefaultValueState(c, tokenList, buf); default: addLiteralToken(tokenList, buf); break; case DEFAULT_VAL_STATE: addLiteralToken(tokenList, buf); break; case START_STATE: addLiteralToken(tokenList, buf); break;
private void handleLiteralState(char c, List<Token> tokenList, StringBuilder stringBuilder) { if (c == CoreConstants.DOLLAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; } else if (c == CoreConstants.COLON_CHAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.DEFAULT_VAL_STATE; } else if (c == CoreConstants.CURLY_LEFT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_LEFT_TOKEN); stringBuilder.setLength(0); } else if (c == CoreConstants.CURLY_RIGHT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_RIGHT_TOKEN); stringBuilder.setLength(0); } else { stringBuilder.append(c); } }
handleLiteralState(c, tokenList, buf); break; case START_STATE: handleStartState(c, tokenList, buf); break; case DEFAULT_VAL_STATE: handleDefaultValueState(c, tokenList, buf); default: addLiteralToken(tokenList, buf); break; case DEFAULT_VAL_STATE: addLiteralToken(tokenList, buf); break; case START_STATE: addLiteralToken(tokenList, buf); break;
private void handleLiteralState(char c, List<Token> tokenList, StringBuilder stringBuilder) { if (c == CoreConstants.DOLLAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; } else if (c == CoreConstants.COLON_CHAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.DEFAULT_VAL_STATE; } else if (c == CoreConstants.CURLY_LEFT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_LEFT_TOKEN); stringBuilder.setLength(0); } else if (c == CoreConstants.CURLY_RIGHT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_RIGHT_TOKEN); stringBuilder.setLength(0); } else { stringBuilder.append(c); } }
handleLiteralState(c, tokenList, buf); break; case START_STATE: handleStartState(c, tokenList, buf); break; case DEFAULT_VAL_STATE: handleDefaultValueState(c, tokenList, buf); default: addLiteralToken(tokenList, buf); break; case DEFAULT_VAL_STATE: addLiteralToken(tokenList, buf); break; case START_STATE: addLiteralToken(tokenList, buf); break;
private void handleLiteralState(char c, List<Token> tokenList, StringBuilder stringBuilder) { if (c == CoreConstants.DOLLAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; } else if (c == CoreConstants.COLON_CHAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.DEFAULT_VAL_STATE; } else if (c == CoreConstants.CURLY_LEFT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_LEFT_TOKEN); stringBuilder.setLength(0); } else if (c == CoreConstants.CURLY_RIGHT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_RIGHT_TOKEN); stringBuilder.setLength(0); } else { stringBuilder.append(c); } }
handleLiteralState(c, tokenList, buf); break; case START_STATE: handleStartState(c, tokenList, buf); break; case DEFAULT_VAL_STATE: handleDefaultValueState(c, tokenList, buf); default: addLiteralToken(tokenList, buf); break; case DEFAULT_VAL_STATE: addLiteralToken(tokenList, buf); break; case START_STATE: addLiteralToken(tokenList, buf); break;
private void handleLiteralState(char c, List<Token> tokenList, StringBuilder stringBuilder) { if (c == CoreConstants.DOLLAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.START_STATE; } else if (c == CoreConstants.COLON_CHAR) { addLiteralToken(tokenList, stringBuilder); stringBuilder.setLength(0); state = TokenizerState.DEFAULT_VAL_STATE; } else if (c == CoreConstants.CURLY_LEFT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_LEFT_TOKEN); stringBuilder.setLength(0); } else if (c == CoreConstants.CURLY_RIGHT) { addLiteralToken(tokenList, stringBuilder); tokenList.add(Token.CURLY_RIGHT_TOKEN); stringBuilder.setLength(0); } else { stringBuilder.append(c); } }
public static String substituteVariable(String input, PropertyContainer pc0, PropertyContainer pc1) throws ScanException { Tokenizer tokenizer = new Tokenizer(input); Parser parser = new Parser(tokenizer.tokenize()); Node node = parser.parse(); NodeToStringTransformer nodeToStringTransformer = new NodeToStringTransformer(node, pc0, pc1); return nodeToStringTransformer.transform(); }