package com.lexicalscope.fluentreflection;
import java.util.List;
import org.hamcrest.Matcher;
interface ReflectedMembers<T> {
List<FluentClass<?>> superclassesAndInterfaces(Matcher<? super FluentClass<?>> supertypeMatcher);
List<FluentMethod> declaredMethods();
List<FluentMethod> methods();
List<FluentMethod> methods(Matcher<? super FluentMethod> methodMatcher);
FluentMethod method(Matcher<? super FluentMethod> methodMatcher);
List<FluentClass<?>> superclassesAndInterfaces();
List<FluentConstructor<T>> constructors();
List<FluentConstructor<T>> constructors(Matcher<? super FluentConstructor<?>> constructorMatcher);
FluentConstructor<T> constructor(Matcher<? super FluentConstructor<?>> constructorMatcher);
List<FluentField> declaredFields();
List<FluentField> fields();
List<FluentField> fields(Matcher<? super FluentField> fieldMatcher);
FluentField field(Matcher<? super FluentField> fieldMatcher);
FluentMember member(Matcher<? super FluentMember> memberMatcher);
}