@Test public void testNameStartsWith() throws Exception { ByteCodeElement byteCodeElement = mock(ByteCodeElement.class); when(byteCodeElement.getActualName()).thenReturn(FOO); assertThat(ElementMatchers.nameStartsWith(FOO.substring(0, 2)).matches(byteCodeElement), is(true)); assertThat(ElementMatchers.nameStartsWith(FOO.substring(0, 2).toUpperCase()).matches(byteCodeElement), is(false)); assertThat(ElementMatchers.nameStartsWith(BAR).matches(byteCodeElement), is(false)); }
public static <T extends NamedElement> ElementMatcher.Junction<T> nameStartsWith(String prefix) { return new NameMatcher<T>(new StringMatcher(prefix, StringMatcher.Mode.STARTS_WITH)); }
ElementMatchers { public static <T extends NamedElement> ElementMatcher.Junction<T> nameStartsWith(String prefix) { return new NameMatcher<T>(new StringMatcher(prefix, StringMatcher.Mode.STARTS_WITH)); } }
ElementMatchers { public static <T extends NamedElement> ElementMatcher.Junction<T> nameStartsWith(String prefix) { return new NameMatcher<T>(new StringMatcher(prefix, StringMatcher.Mode.STARTS_WITH)); } private  ElementMatchers(); }
ElementMatchers { public static <T extends NamedElement> ElementMatcher.Junction<T> nameStartsWith(String prefix) { return new NameMatcher<T>(new StringMatcher(prefix, StringMatcher.Mode.STARTS_WITH)); } private  ElementMatchers(); static ElementMatcher.Junction<T> failSafe(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<T> cached(ElementMatcher<? super T> matcher, ConcurrentMap<? super T, Boolean> map); static ElementMatcher.Junction<T> cached(ElementMatcher<? super T> matcher, int evictionSize); static ElementMatcher.Junction<T> is(Object value); static ElementMatcher.Junction<T> is(Field field); static ElementMatcher.Junction<T> is(FieldDescription.InDefinedShape field); static ElementMatcher.Junction<T> definedField(ElementMatcher<? super FieldDescription.InDefinedShape> matcher); static ElementMatcher.Junction<T> is(Method method); static ElementMatcher.Junction<T> is(Constructor<?> constructor); static ElementMatcher.Junction<T> is(MethodDescription.InDefinedShape method); static ElementMatcher.Junction<T> definedMethod(ElementMatcher<? super MethodDescription.InDefinedShape> matcher); static ElementMatcher.Junction<T> is(ParameterDescription.InDefinedShape parameter); static ElementMatcher.Junction<T> definedParameter(ElementMatcher<? super ParameterDescription.InDefinedShape> matcher); static ElementMatcher.Junction<T> hasType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasGenericType(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isMandated(); static ElementMatcher.Junction<T> is(Type type); static ElementMatcher.Junction<T> is(Annotation annotation); static ElementMatcher.Junction<T> not(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<T> any(); static ElementMatcher.Junction<T> none(); static ElementMatcher.Junction<T> anyOf(Object... value); static ElementMatcher.Junction<T> anyOf(Iterable<?> values); static ElementMatcher.Junction<T> anyOf(Type... value); static ElementMatcher.Junction<T> anyOf(Constructor<?>... value); static ElementMatcher.Junction<T> anyOf(Method... value); static ElementMatcher.Junction<T> anyOf(Field... value); static ElementMatcher.Junction<T> anyOf(Annotation... value); static ElementMatcher.Junction<T> noneOf(Object... value); static ElementMatcher.Junction<T> noneOf(Iterable<?> values); static ElementMatcher.Junction<T> noneOf(Type... value); static ElementMatcher.Junction<T> noneOf(Constructor<?>... value); static ElementMatcher.Junction<T> noneOf(Method... value); static ElementMatcher.Junction<T> noneOf(Field... value); static ElementMatcher.Junction<T> noneOf(Annotation... value); static ElementMatcher.Junction<Iterable<? extends T>> whereAny(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<Iterable<? extends T>> whereNone(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<T> erasure(Class<?> type); static ElementMatcher.Junction<T> erasure(TypeDescription type); static ElementMatcher.Junction<T> erasure(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> erasures(Class<?>... type); static ElementMatcher.Junction<T> erasures(TypeDescription... type); static ElementMatcher.Junction<T> erasures(
            Iterable<? extends TypeDescription> types); static ElementMatcher.Junction<T> erasures(
            ElementMatcher<? super Iterable<? extends TypeDescription>> matcher); static ElementMatcher.Junction<T> isVariable(String symbol); static ElementMatcher.Junction<T> isVariable(ElementMatcher<? super NamedElement> matcher); static ElementMatcher.Junction<T> named(String name); static ElementMatcher.Junction<T> namedOneOf(String... names); static ElementMatcher.Junction<T> namedIgnoreCase(String name); static ElementMatcher.Junction<T> nameStartsWith(String prefix); static ElementMatcher.Junction<T> nameStartsWithIgnoreCase(String prefix); static ElementMatcher.Junction<T> nameEndsWith(String suffix); static ElementMatcher.Junction<T> nameEndsWithIgnoreCase(String suffix); static ElementMatcher.Junction<T> nameContains(String infix); static ElementMatcher.Junction<T> nameContainsIgnoreCase(String infix); static ElementMatcher.Junction<T> nameMatches(String regex); static ElementMatcher.Junction<T> isNamed(); static ElementMatcher.Junction<T> hasDescriptor(String descriptor); static ElementMatcher.Junction<T> isDeclaredBy(Class<?> type); static ElementMatcher.Junction<T> isDeclaredBy(TypeDescription type); static ElementMatcher.Junction<T> isDeclaredBy(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isDeclaredByGeneric(Type type); static ElementMatcher.Junction<T> isDeclaredByGeneric(TypeDescription.Generic type); static ElementMatcher.Junction<T> isDeclaredByGeneric(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isVisibleTo(Class<?> type); static ElementMatcher.Junction<T> isVisibleTo(TypeDescription type); static ElementMatcher.Junction<T> isAccessibleTo(Class<?> type); static ElementMatcher.Junction<T> isAccessibleTo(TypeDescription type); static ElementMatcher.Junction<T> isAbstract(); static ElementMatcher.Junction<T> isEnum(); static ElementMatcher.Junction<T> isAnnotatedWith(Class<? extends Annotation> type); static ElementMatcher.Junction<T> isAnnotatedWith(TypeDescription type); static ElementMatcher.Junction<T> isAnnotatedWith(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> declaresAnnotation(ElementMatcher<? super AnnotationDescription> matcher); static ElementMatcher.Junction<T> isPublic(); static ElementMatcher.Junction<T> isProtected(); static ElementMatcher.Junction<T> isPackagePrivate(); static ElementMatcher.Junction<T> isPrivate(); static ElementMatcher.Junction<T> isStatic(); static ElementMatcher.Junction<T> isFinal(); static ElementMatcher.Junction<T> isSynthetic(); static ElementMatcher.Junction<T> isSynchronized(); static ElementMatcher.Junction<T> isNative(); static ElementMatcher.Junction<T> isStrict(); static ElementMatcher.Junction<T> isVarArgs(); static ElementMatcher.Junction<T> isBridge(); static ElementMatcher.Junction<T> returnsGeneric(Type type); static ElementMatcher.Junction<T> returnsGeneric(TypeDescription.Generic type); static ElementMatcher.Junction<T> returns(Class<?> type); static ElementMatcher.Junction<T> returns(TypeDescription type); static ElementMatcher.Junction<T> returns(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> returnsGeneric(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> takesGenericArgument(int index, Type type); static ElementMatcher.Junction<T> takesGenericArgument(int index, TypeDescription.Generic type); static ElementMatcher.Junction<T> takesGenericArgument(int index, ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> takesGenericArguments(Type... type); static ElementMatcher.Junction<T> takesGenericArguments(TypeDefinition... type); static ElementMatcher.Junction<T> takesGenericArguments(List<? extends TypeDefinition> types); static ElementMatcher.Junction<T> takesGenericArguments(ElementMatcher<? super Iterable<? extends TypeDescription.Generic>> matchers); static ElementMatcher.Junction<T> takesArgument(int index, Class<?> type); static ElementMatcher.Junction<T> takesArgument(int index, TypeDescription type); static ElementMatcher.Junction<T> takesArgument(int index, ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> takesArguments(Class<?>... type); static ElementMatcher.Junction<T> takesArguments(TypeDescription... type); static ElementMatcher.Junction<T> takesArguments(Iterable<? extends TypeDescription> types); static ElementMatcher.Junction<T> takesArguments(ElementMatcher<? super Iterable<? extends TypeDescription>> matchers); static ElementMatcher.Junction<T> takesArguments(int length); static ElementMatcher.Junction<T> takesNoArguments(); static ElementMatcher.Junction<T> hasParameters(
            ElementMatcher<? super Iterable<? extends ParameterDescription>> matcher); static ElementMatcher.Junction<T> canThrow(Class<? extends Throwable> exceptionType); static ElementMatcher.Junction<T> canThrow(TypeDescription exceptionType); static ElementMatcher.Junction<T> declaresGenericException(Type exceptionType); static ElementMatcher.Junction<T> declaresGenericException(TypeDescription.Generic exceptionType); static ElementMatcher.Junction<T> declaresException(Class<? extends Throwable> exceptionType); static ElementMatcher.Junction<T> declaresException(TypeDescription exceptionType); static ElementMatcher.Junction<T> declaresGenericException(
            ElementMatcher<? super Iterable<? extends TypeDescription.Generic>> matcher); static ElementMatcher.Junction<T> isOverriddenFrom(Class<?> type); static ElementMatcher.Junction<T> isOverriddenFrom(TypeDescription type); static ElementMatcher.Junction<T> isOverriddenFrom(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isOverriddenFromGeneric(Type type); static ElementMatcher.Junction<T> isOverriddenFromGeneric(TypeDescription.Generic type); static ElementMatcher.Junction<T> isOverriddenFromGeneric(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isInterface(); static ElementMatcher.Junction<T> isAnnotation(); static ElementMatcher.Junction<T> isMethod(); static ElementMatcher.Junction<T> isConstructor(); static ElementMatcher.Junction<T> isTypeInitializer(); static ElementMatcher.Junction<T> isVirtual(); static ElementMatcher.Junction<T> isDefaultMethod(); static ElementMatcher.Junction<T> isDefaultConstructor(); static ElementMatcher.Junction<T> isDefaultFinalizer(); static ElementMatcher.Junction<T> isFinalizer(); static ElementMatcher.Junction<T> isHashCode(); static ElementMatcher.Junction<T> isEquals(); static ElementMatcher.Junction<T> isClone(); static ElementMatcher.Junction<T> isToString(); static ElementMatcher.Junction<T> isSetter(); static ElementMatcher.Junction<T> isSetter(String property); static ElementMatcher.Junction<T> isSetter(Class<?> type); static ElementMatcher.Junction<T> isGenericSetter(Type type); static ElementMatcher.Junction<T> isSetter(TypeDescription type); static ElementMatcher.Junction<T> isGenericSetter(TypeDescription.Generic type); static ElementMatcher.Junction<T> isSetter(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isGenericSetter(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isGetter(); static ElementMatcher.Junction<T> isGetter(String property); static ElementMatcher.Junction<T> isGetter(Class<?> type); static ElementMatcher.Junction<T> isGenericGetter(Type type); static ElementMatcher.Junction<T> isGetter(TypeDescription type); static ElementMatcher.Junction<T> isGenericGetter(TypeDescription.Generic type); static ElementMatcher.Junction<T> isGetter(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isGenericGetter(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> hasMethodName(String internalName); static ElementMatcher.Junction<T> hasSignature(MethodDescription.SignatureToken token); static ElementMatcher.Junction<T> isSubTypeOf(Class<?> type); static ElementMatcher.Junction<T> isSubTypeOf(TypeDescription type); static ElementMatcher.Junction<T> isSuperTypeOf(Class<?> type); static ElementMatcher.Junction<T> isSuperTypeOf(TypeDescription type); static ElementMatcher.Junction<T> hasSuperClass(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasGenericSuperClass(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> hasSuperType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasGenericSuperType(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> inheritsAnnotation(Class<?> type); static ElementMatcher.Junction<T> inheritsAnnotation(TypeDescription type); static ElementMatcher.Junction<T> inheritsAnnotation(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasAnnotation(ElementMatcher<? super AnnotationDescription> matcher); static ElementMatcher.Junction<T> declaresField(ElementMatcher<? super FieldDescription> matcher); static ElementMatcher.Junction<T> declaresMethod(ElementMatcher<? super MethodDescription> matcher); static ElementMatcher.Junction<T> ofSort(TypeDefinition.Sort sort); static ElementMatcher.Junction<T> ofSort(ElementMatcher<? super TypeDefinition.Sort> matcher); static ElementMatcher.Junction<T> isPrimitive(); static ElementMatcher.Junction<T> isArray(); static ElementMatcher.Junction<T> isRecord(); static ElementMatcher.Junction<T> genericFieldType(Type fieldType); static ElementMatcher.Junction<T> genericFieldType(TypeDescription.Generic fieldType); static ElementMatcher.Junction<T> genericFieldType(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> fieldType(Class<?> fieldType); static ElementMatcher.Junction<T> fieldType(TypeDescription fieldType); static ElementMatcher.Junction<T> fieldType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isVolatile(); static ElementMatcher.Junction<T> isTransient(); static ElementMatcher.Junction<T> annotationType(Class<? extends Annotation> type); static ElementMatcher.Junction<T> annotationType(TypeDescription type); static ElementMatcher.Junction<T> annotationType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> targetsElement(ElementType elementType); static ElementMatcher.Junction<T> isBootstrapClassLoader(); static ElementMatcher.Junction<T> isSystemClassLoader(); static ElementMatcher.Junction<T> isExtensionClassLoader(); static ElementMatcher.Junction<T> isChildOf(ClassLoader classLoader); static ElementMatcher.Junction<T> hasChild(ElementMatcher<? super ClassLoader> matcher); static ElementMatcher.Junction<T> isParentOf(ClassLoader classLoader); static ElementMatcher.Junction<T> ofType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> supportsModules(); }
ElementMatchers { public static <T extends NamedElement> ElementMatcher.Junction<T> nameStartsWith(String prefix) { return new NameMatcher<T>(new StringMatcher(prefix, StringMatcher.Mode.STARTS_WITH)); } private  ElementMatchers(); static ElementMatcher.Junction<T> failSafe(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<T> cached(ElementMatcher<? super T> matcher, ConcurrentMap<? super T, Boolean> map); static ElementMatcher.Junction<T> cached(ElementMatcher<? super T> matcher, int evictionSize); static ElementMatcher.Junction<T> is(Object value); static ElementMatcher.Junction<T> is(Field field); static ElementMatcher.Junction<T> is(FieldDescription.InDefinedShape field); static ElementMatcher.Junction<T> definedField(ElementMatcher<? super FieldDescription.InDefinedShape> matcher); static ElementMatcher.Junction<T> is(Method method); static ElementMatcher.Junction<T> is(Constructor<?> constructor); static ElementMatcher.Junction<T> is(MethodDescription.InDefinedShape method); static ElementMatcher.Junction<T> definedMethod(ElementMatcher<? super MethodDescription.InDefinedShape> matcher); static ElementMatcher.Junction<T> is(ParameterDescription.InDefinedShape parameter); static ElementMatcher.Junction<T> definedParameter(ElementMatcher<? super ParameterDescription.InDefinedShape> matcher); static ElementMatcher.Junction<T> hasType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasGenericType(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isMandated(); static ElementMatcher.Junction<T> is(Type type); static ElementMatcher.Junction<T> is(Annotation annotation); static ElementMatcher.Junction<T> not(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<T> any(); static ElementMatcher.Junction<T> none(); static ElementMatcher.Junction<T> anyOf(Object... value); static ElementMatcher.Junction<T> anyOf(Iterable<?> values); static ElementMatcher.Junction<T> anyOf(Type... value); static ElementMatcher.Junction<T> anyOf(Constructor<?>... value); static ElementMatcher.Junction<T> anyOf(Method... value); static ElementMatcher.Junction<T> anyOf(Field... value); static ElementMatcher.Junction<T> anyOf(Annotation... value); static ElementMatcher.Junction<T> noneOf(Object... value); static ElementMatcher.Junction<T> noneOf(Iterable<?> values); static ElementMatcher.Junction<T> noneOf(Type... value); static ElementMatcher.Junction<T> noneOf(Constructor<?>... value); static ElementMatcher.Junction<T> noneOf(Method... value); static ElementMatcher.Junction<T> noneOf(Field... value); static ElementMatcher.Junction<T> noneOf(Annotation... value); static ElementMatcher.Junction<Iterable<? extends T>> whereAny(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<Iterable<? extends T>> whereNone(ElementMatcher<? super T> matcher); static ElementMatcher.Junction<T> erasure(Class<?> type); static ElementMatcher.Junction<T> erasure(TypeDescription type); static ElementMatcher.Junction<T> erasure(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> erasures(Class<?>... type); static ElementMatcher.Junction<T> erasures(TypeDescription... type); static ElementMatcher.Junction<T> erasures(
            Iterable<? extends TypeDescription> types); static ElementMatcher.Junction<T> erasures(
            ElementMatcher<? super Iterable<? extends TypeDescription>> matcher); static ElementMatcher.Junction<T> isVariable(String symbol); static ElementMatcher.Junction<T> isVariable(ElementMatcher<? super NamedElement> matcher); static ElementMatcher.Junction<T> named(String name); static ElementMatcher.Junction<T> namedOneOf(String... names); static ElementMatcher.Junction<T> namedIgnoreCase(String name); static ElementMatcher.Junction<T> nameStartsWith(String prefix); static ElementMatcher.Junction<T> nameStartsWithIgnoreCase(String prefix); static ElementMatcher.Junction<T> nameEndsWith(String suffix); static ElementMatcher.Junction<T> nameEndsWithIgnoreCase(String suffix); static ElementMatcher.Junction<T> nameContains(String infix); static ElementMatcher.Junction<T> nameContainsIgnoreCase(String infix); static ElementMatcher.Junction<T> nameMatches(String regex); static ElementMatcher.Junction<T> isNamed(); static ElementMatcher.Junction<T> hasDescriptor(String descriptor); static ElementMatcher.Junction<T> isDeclaredBy(Class<?> type); static ElementMatcher.Junction<T> isDeclaredBy(TypeDescription type); static ElementMatcher.Junction<T> isDeclaredBy(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isDeclaredByGeneric(Type type); static ElementMatcher.Junction<T> isDeclaredByGeneric(TypeDescription.Generic type); static ElementMatcher.Junction<T> isDeclaredByGeneric(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isVisibleTo(Class<?> type); static ElementMatcher.Junction<T> isVisibleTo(TypeDescription type); static ElementMatcher.Junction<T> isAccessibleTo(Class<?> type); static ElementMatcher.Junction<T> isAccessibleTo(TypeDescription type); static ElementMatcher.Junction<T> isAbstract(); static ElementMatcher.Junction<T> isEnum(); static ElementMatcher.Junction<T> isAnnotatedWith(Class<? extends Annotation> type); static ElementMatcher.Junction<T> isAnnotatedWith(TypeDescription type); static ElementMatcher.Junction<T> isAnnotatedWith(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> declaresAnnotation(ElementMatcher<? super AnnotationDescription> matcher); static ElementMatcher.Junction<T> isPublic(); static ElementMatcher.Junction<T> isProtected(); static ElementMatcher.Junction<T> isPackagePrivate(); static ElementMatcher.Junction<T> isPrivate(); static ElementMatcher.Junction<T> isStatic(); static ElementMatcher.Junction<T> isFinal(); static ElementMatcher.Junction<T> isSynthetic(); static ElementMatcher.Junction<T> isSynchronized(); static ElementMatcher.Junction<T> isNative(); static ElementMatcher.Junction<T> isStrict(); static ElementMatcher.Junction<T> isVarArgs(); static ElementMatcher.Junction<T> isBridge(); static ElementMatcher.Junction<T> returnsGeneric(Type type); static ElementMatcher.Junction<T> returnsGeneric(TypeDescription.Generic type); static ElementMatcher.Junction<T> returns(Class<?> type); static ElementMatcher.Junction<T> returns(TypeDescription type); static ElementMatcher.Junction<T> returns(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> returnsGeneric(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> takesGenericArgument(int index, Type type); static ElementMatcher.Junction<T> takesGenericArgument(int index, TypeDescription.Generic type); static ElementMatcher.Junction<T> takesGenericArgument(int index, ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> takesGenericArguments(Type... type); static ElementMatcher.Junction<T> takesGenericArguments(TypeDefinition... type); static ElementMatcher.Junction<T> takesGenericArguments(List<? extends TypeDefinition> types); static ElementMatcher.Junction<T> takesGenericArguments(ElementMatcher<? super Iterable<? extends TypeDescription.Generic>> matchers); static ElementMatcher.Junction<T> takesArgument(int index, Class<?> type); static ElementMatcher.Junction<T> takesArgument(int index, TypeDescription type); static ElementMatcher.Junction<T> takesArgument(int index, ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> takesArguments(Class<?>... type); static ElementMatcher.Junction<T> takesArguments(TypeDescription... type); static ElementMatcher.Junction<T> takesArguments(Iterable<? extends TypeDescription> types); static ElementMatcher.Junction<T> takesArguments(ElementMatcher<? super Iterable<? extends TypeDescription>> matchers); static ElementMatcher.Junction<T> takesArguments(int length); static ElementMatcher.Junction<T> takesNoArguments(); static ElementMatcher.Junction<T> hasParameters(
            ElementMatcher<? super Iterable<? extends ParameterDescription>> matcher); static ElementMatcher.Junction<T> canThrow(Class<? extends Throwable> exceptionType); static ElementMatcher.Junction<T> canThrow(TypeDescription exceptionType); static ElementMatcher.Junction<T> declaresGenericException(Type exceptionType); static ElementMatcher.Junction<T> declaresGenericException(TypeDescription.Generic exceptionType); static ElementMatcher.Junction<T> declaresException(Class<? extends Throwable> exceptionType); static ElementMatcher.Junction<T> declaresException(TypeDescription exceptionType); static ElementMatcher.Junction<T> declaresGenericException(
            ElementMatcher<? super Iterable<? extends TypeDescription.Generic>> matcher); static ElementMatcher.Junction<T> isOverriddenFrom(Class<?> type); static ElementMatcher.Junction<T> isOverriddenFrom(TypeDescription type); static ElementMatcher.Junction<T> isOverriddenFrom(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isOverriddenFromGeneric(Type type); static ElementMatcher.Junction<T> isOverriddenFromGeneric(TypeDescription.Generic type); static ElementMatcher.Junction<T> isOverriddenFromGeneric(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isInterface(); static ElementMatcher.Junction<T> isAnnotation(); static ElementMatcher.Junction<T> isMethod(); static ElementMatcher.Junction<T> isConstructor(); static ElementMatcher.Junction<T> isTypeInitializer(); static ElementMatcher.Junction<T> isVirtual(); static ElementMatcher.Junction<T> isDefaultMethod(); static ElementMatcher.Junction<T> isDefaultConstructor(); static ElementMatcher.Junction<T> isDefaultFinalizer(); static ElementMatcher.Junction<T> isFinalizer(); static ElementMatcher.Junction<T> isHashCode(); static ElementMatcher.Junction<T> isEquals(); static ElementMatcher.Junction<T> isClone(); static ElementMatcher.Junction<T> isToString(); static ElementMatcher.Junction<T> isSetter(); static ElementMatcher.Junction<T> isSetter(String property); static ElementMatcher.Junction<T> isSetter(Class<?> type); static ElementMatcher.Junction<T> isGenericSetter(Type type); static ElementMatcher.Junction<T> isSetter(TypeDescription type); static ElementMatcher.Junction<T> isGenericSetter(TypeDescription.Generic type); static ElementMatcher.Junction<T> isSetter(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isGenericSetter(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> isGetter(); static ElementMatcher.Junction<T> isGetter(String property); static ElementMatcher.Junction<T> isGetter(Class<?> type); static ElementMatcher.Junction<T> isGenericGetter(Type type); static ElementMatcher.Junction<T> isGetter(TypeDescription type); static ElementMatcher.Junction<T> isGenericGetter(TypeDescription.Generic type); static ElementMatcher.Junction<T> isGetter(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isGenericGetter(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> hasMethodName(String internalName); static ElementMatcher.Junction<T> hasSignature(MethodDescription.SignatureToken token); static ElementMatcher.Junction<T> isSubTypeOf(Class<?> type); static ElementMatcher.Junction<T> isSubTypeOf(TypeDescription type); static ElementMatcher.Junction<T> isSuperTypeOf(Class<?> type); static ElementMatcher.Junction<T> isSuperTypeOf(TypeDescription type); static ElementMatcher.Junction<T> hasSuperClass(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasGenericSuperClass(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> hasSuperType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasGenericSuperType(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> inheritsAnnotation(Class<?> type); static ElementMatcher.Junction<T> inheritsAnnotation(TypeDescription type); static ElementMatcher.Junction<T> inheritsAnnotation(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> hasAnnotation(ElementMatcher<? super AnnotationDescription> matcher); static ElementMatcher.Junction<T> declaresField(ElementMatcher<? super FieldDescription> matcher); static ElementMatcher.Junction<T> declaresMethod(ElementMatcher<? super MethodDescription> matcher); static ElementMatcher.Junction<T> ofSort(TypeDefinition.Sort sort); static ElementMatcher.Junction<T> ofSort(ElementMatcher<? super TypeDefinition.Sort> matcher); static ElementMatcher.Junction<T> isPrimitive(); static ElementMatcher.Junction<T> isArray(); static ElementMatcher.Junction<T> isRecord(); static ElementMatcher.Junction<T> genericFieldType(Type fieldType); static ElementMatcher.Junction<T> genericFieldType(TypeDescription.Generic fieldType); static ElementMatcher.Junction<T> genericFieldType(ElementMatcher<? super TypeDescription.Generic> matcher); static ElementMatcher.Junction<T> fieldType(Class<?> fieldType); static ElementMatcher.Junction<T> fieldType(TypeDescription fieldType); static ElementMatcher.Junction<T> fieldType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> isVolatile(); static ElementMatcher.Junction<T> isTransient(); static ElementMatcher.Junction<T> annotationType(Class<? extends Annotation> type); static ElementMatcher.Junction<T> annotationType(TypeDescription type); static ElementMatcher.Junction<T> annotationType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> targetsElement(ElementType elementType); static ElementMatcher.Junction<T> isBootstrapClassLoader(); static ElementMatcher.Junction<T> isSystemClassLoader(); static ElementMatcher.Junction<T> isExtensionClassLoader(); static ElementMatcher.Junction<T> isChildOf(ClassLoader classLoader); static ElementMatcher.Junction<T> hasChild(ElementMatcher<? super ClassLoader> matcher); static ElementMatcher.Junction<T> isParentOf(ClassLoader classLoader); static ElementMatcher.Junction<T> ofType(ElementMatcher<? super TypeDescription> matcher); static ElementMatcher.Junction<T> supportsModules();  }