org_apache_struts2_convention_PackageBasedActionConfigBuilderTest_java
com.opensymphony.xwork2.config.entities.AllowedMethods
public static AllowedMethods build(boolean strictMethodInvocation, Set<String> methods, String defaultRegex) {
        HashSet<AllowedMethod> allowedMethods = new HashSet<AllowedMethod>();
        for (String method : methods) {
            boolean isPattern = false;
            StringBuilder methodPattern = new StringBuilder();
            int len = method.length();
            for (int x = 0; x < len; ++x) {
                char c = method.charAt(x);
                if (x < len - 2 && c == '{' && '}' == method.charAt(x + 2)) {
                    methodPattern.append(defaultRegex);
                    isPattern = true;
                    x += 2;
                    continue;
                }
                methodPattern.append(c);
            }
            if (isPattern && !method.startsWith("regex:") && !strictMethodInvocation) {
                allowedMethods.add((AllowedMethod)new PatternAllowedMethod(methodPattern.toString(), method));
                continue;
            }
            if (method.startsWith("regex:")) {
                String pattern = method.substring(method.indexOf(58) + 1);
                allowedMethods.add((AllowedMethod)new PatternAllowedMethod(pattern, method));
                continue;
            }
            if (method.contains("*") && !method.startsWith("regex:") && !strictMethodInvocation) {
                String pattern = method.replace("*", defaultRegex);
                allowedMethods.add((AllowedMethod)new PatternAllowedMethod(pattern, method));
                continue;
            }
            if (!isPattern) {
                allowedMethods.add(new LiteralAllowedMethod(method));
                continue;
            }
            LOG.trace("Ignoring method name: [{}] when SMI is set to [{}]", (Object)method, (Object)strictMethodInvocation);
        }
        LOG.debug("Defined allowed methods: {}", (Object)allowedMethods);
        return new AllowedMethods(strictMethodInvocation, allowedMethods, defaultRegex);
    }
 -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.lang.String.hashCode(): int -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.lang.String.hashCode(): int -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.lang.String.hashCode(): int -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.lang.String.hashCode(): int -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.lang.String.hashCode(): int -> java.util.Iterator.hasNext(): boolean -> java.util.Collections.unmodifiableSet(java.util.Set): java.util.Set
 [CALL] -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] -> java.lang.String.hashCode(): int [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] -> java.lang.String.hashCode(): int [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] -> java.lang.String.hashCode(): int [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] -> java.lang.String.hashCode(): int [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] -> java.lang.String.hashCode(): int [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.util.Collections.unmodifiableSet(java.util.Set): java.util.Set [EXIT] [EXIT]