com_baeldung_transactional_TransactionalDetectionUnitTest_java
org.springframework.core.annotation.AnnotationTypeMapping
private void processAliases(int attributeIndex, List<Method> aliases) {
        int rootAttributeIndex = this.getFirstRootAttributeIndex(aliases);
        AnnotationTypeMapping mapping = this;
        while (mapping != null) {
            if (rootAttributeIndex != -1 && mapping != this.root) {
                for (int i = 0; i < mapping.attributes.size(); ++i) {
                    if (!aliases.contains(mapping.attributes.get(i))) continue;
                    mapping.aliasMappings[i] = rootAttributeIndex;
                }
            }
            mapping.mirrorSets.updateFrom(aliases);
            mapping.claimedAliases.addAll(aliases);
            if (mapping.annotation != null) {
                int[] resolvedMirrors = mapping.mirrorSets.resolve(null, mapping.annotation, ReflectionUtils::invokeMethod);
                for (int i = 0; i < mapping.attributes.size(); ++i) {
                    if (!aliases.contains(mapping.attributes.get(i))) continue;
                    this.annotationValueMappings[attributeIndex] = resolvedMirrors[i];
                    this.annotationValueSource[attributeIndex] = mapping;
                }
            }
            mapping = mapping.source;
        }
    }
 -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Collection.contains(java.lang.Object): boolean -> java.util.Arrays.fill(int[],int): void -> java.util.Arrays.asList(java.lang.Object[]): java.util.List -> java.util.Set.remove(java.lang.Object): boolean -> java.util.Set.toArray(java.lang.Object[]): java.lang.Object[] -> java.util.Set.addAll(java.util.Collection): boolean
 [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Collection.contains(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.util.Arrays.fill(int[],int): void [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] -> java.util.Arrays.asList(java.lang.Object[]): java.util.List -> java.util.Set.remove(java.lang.Object): boolean [CALL] [EXIT] -> java.util.Set.toArray(java.lang.Object[]): java.lang.Object[] [EXIT] -> java.util.Set.addAll(java.util.Collection): boolean [EXIT]