/** * Creates a new pattern entry using the given parameters. * * @param strPattern * The pattern string. * @param activated * Determines the activated state. * * @throws InvalidPatternException * If the given pattern is invalid. */ public PatternEntry(final String strPattern, final boolean activated) throws InvalidPatternException { this.pattern = PatternParser.parseToPattern(strPattern); this.strPattern = strPattern; this.activated = activated; }
private static final String parseMultipleParameters(final String[] paramList) throws InvalidPatternException { final StringBuilder sb = new StringBuilder(255); final int length = paramList.length; int start = 1; if ("..".equals(paramList[0])) { sb.append("(((\\s)?" + FULLY_QUALFIED_NAME + "(\\s)?,)*"); if (length > 1) { start = 2; PatternParser.createParameterRegex(sb, paramList[1]); } } else if ("*".equals(paramList[0])) { sb.append("(\\s)?(\\p{javaJavaIdentifierPart})+(\\s)?"); } else if (paramList[0].length() == 0) { throw new InvalidPatternException("Invalid parameter list."); } else { try { sb.append("(\\s)?").append(PatternParser.parseFQType(paramList[0])).append("(\\s)?"); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid parameter list.", ex); } } for (int i = start; i < length; i++) { PatternParser.createParameterRegex(sb, paramList[i]); } return sb.toString(); }
private static final String parseFQType(final String fqType) throws InvalidPatternException { if (fqType.contains("...") || fqType.endsWith(".") || (fqType.length() == 0)) { throw new InvalidPatternException("Invalid fully qualified type."); } final String[] tokens = fqType.split("\\."); if (tokens.length == 1) { try { return PatternParser.parseIdentifier(fqType); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid fully qualified type.", ex); } } else { return PatternParser.parseFQTypeTokenized(tokens); } }
sb.append(PatternParser.parseModifierConstraintList(modifierList)); sb.append(PatternParser.parseRetType(tokens[numOfModifiers])); // first token after modifiers in the return type sb.append(PatternParser.parseFQType(fqType)); sb.append("\\."); sb.append(PatternParser.parseMethodName(methodName)); sb.append("\\("); sb.append(PatternParser.parseParameterList(PatternParser.trimValues(params.trim().split(",")))); sb.append("\\)"); sb.append(PatternParser.parseThrowsPattern(throwsPattern));
switch (numberOfModifiers) { case 1: PatternParser.onOneModifier(modifierList, sb); break; case 2: PatternParser.onTwoModifiers(modifierList, sb); break; case 3: PatternParser.onThreeModifiers(modifierList, sb); break; case 4: PatternParser.onFourModifiers(modifierList, sb); break; case 5: PatternParser.onFiveModifiers(modifierList, sb); break; case 6: PatternParser.onSixModifiers(modifierList, sb); break; default:
private static final String parseRetType(final String retType) throws InvalidPatternException { if ("new".equals(retType)) { return ""; } else { try { return PatternParser.parseFQType(retType) + "\\s"; } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid return type.", ex); } } }
private static final String parseMethodName(final String methodName) throws InvalidPatternException { try { return PatternParser.parseIdentifier(methodName); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid method name.", ex); } }
sb.append(PatternParser.parseModifierConstraintList(modifierList)); sb.append(PatternParser.parseRetType(retType)); sb.append(PatternParser.parseFQType(fqType)); sb.append("\\."); sb.append(PatternParser.parseMethodName(methodName)); sb.append("\\("); sb.append(PatternParser.parseParameterList(params.trim().split(","))); sb.append("\\)"); sb.append(PatternParser.parseThrowsPattern(throwsPattern));
switch (numberOfModifiers) { case 1: PatternParser.onOneModifier(modifierList, sb); break; case 2: PatternParser.onTwoModifiers(modifierList, sb); break; case 3: PatternParser.onThreeModifiers(modifierList, sb); break; case 4: PatternParser.onFourModifiers(modifierList, sb); break; case 5: PatternParser.onFiveModifiers(modifierList, sb); break; case 6: PatternParser.onSixModifiers(modifierList, sb); break; default:
private static final String parseRetType(final String retType) throws InvalidPatternException { if ("new".equals(retType)) { return ""; } else { try { return PatternParser.parseFQType(retType) + "\\s"; } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid return type.", ex); } } }
private static final String parseMethodName(final String methodName) throws InvalidPatternException { try { return PatternParser.parseIdentifier(methodName); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid method name.", ex); } }
/** * Creates a new pattern entry using the given parameters. * * @param strPattern * The pattern string. * @param activated * Determines the activated state. * * @throws InvalidPatternException * If the given pattern is invalid. */ public PatternEntry(final String strPattern, final boolean activated) throws InvalidPatternException { this.pattern = PatternParser.parseToPattern(strPattern); this.strPattern = strPattern; this.activated = activated; }
/** * Create the regular expression part for the given parameter. * * @param regexBuilder * used string builder * @param parameter * the parameter to be processed * @throws InvalidPatternException * on invalid pattern */ private static final void createParameterRegex(final StringBuilder regexBuilder, final String parameter) throws InvalidPatternException { if ("..".equals(parameter)) { regexBuilder.append("(,?((\\s)?" + FULLY_QUALFIED_NAME + "(\\s)?)*"); } else if ("*".equals(parameter)) { regexBuilder.append(",?(\\s)?" + SIMPLE_NAME + "(\\s)?"); } else if (parameter.length() == 0) { throw new InvalidPatternException("Invalid parameter list."); } else { try { regexBuilder.append(",?(\\s)?"); regexBuilder.append(PatternParser.parseFQType(parameter)); regexBuilder.append("(\\s)?"); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid parameter list.", ex); } } }
} else { try { sb.append(PatternParser.parseIdentifier(tokens[i])); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid fully qualified type.", ex); sb.append(PatternParser.parseIdentifier(tokens[length - 1])); } catch (final InvalidPatternException ex) { final InvalidPatternException newEx = new InvalidPatternException("Invalid fully qualified type.");
private boolean addPattern(final String strPattern, final boolean activated) { if (!this.enabled) { LOGGER.warn("Adapative Monitoring is disabled!"); return false; } synchronized (this) { // we must always clear the cache! this.signatureCache.clear(); final Pattern pattern; try { pattern = PatternParser.parseToPattern(strPattern); } catch (final InvalidPatternException ex) { LOGGER.error("'{}' is not a valid pattern.", strPattern, ex); return false; } this.patterns.add(new PatternEntry(strPattern, pattern, activated)); if (this.configFileUpdate) { this.updatePatternFile(); } } return true; }
try { sb.append("(\\s)?"); sb.append(PatternParser.parseFQType(paramList[0].trim())); sb.append("(\\s)?"); } catch (final InvalidPatternException ex) { try { sb.append("(\\s)?"); sb.append(PatternParser.parseFQType(paramList[1].trim())); sb.append("(\\s)?"); } catch (final InvalidPatternException ex) { try { sb.append(",(\\s)?"); sb.append(PatternParser.parseFQType(paramList[i].trim())); sb.append("(\\s)?"); } catch (final InvalidPatternException ex) {
if (length == 1) { try { return PatternParser.parseIdentifier(fqType); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid fully qualified type.", ex); } else { try { sb.append(PatternParser.parseIdentifier(array[i])); } catch (final InvalidPatternException ex) { throw new InvalidPatternException("Invalid fully qualified type.", ex); sb.append(PatternParser.parseIdentifier(array[length - 1])); } catch (final InvalidPatternException ex) { final InvalidPatternException newEx = new InvalidPatternException("Invalid fully qualified type.");
private boolean addPattern(final String strPattern, final boolean activated) { if (!this.enabled) { LOG.warn("Adapative Monitoring is disabled!"); return false; } synchronized (this) { // we must always clear the cache! this.signatureCache.clear(); final Pattern pattern; try { pattern = PatternParser.parseToPattern(strPattern); } catch (final InvalidPatternException ex) { LOG.error("'" + strPattern + "' is not a valid pattern.", ex); return false; } this.patternList.add(new PatternEntry(strPattern, pattern, activated)); if (this.configFileUpdate) { this.updatePatternFile(); } } return true; }
operationNames[operationNameIdx], paramLists[paramListIdx]); final Pattern pattern = PatternParser.parseToPattern(signature); final Matcher m = pattern.matcher(signature01); final boolean result = m.matches();
final Pattern pattern = PatternParser.parseToPattern(patternStr); final Matcher m = pattern.matcher(signature);