
javarepl.reflection.ClassReflection Maven / Gradle / Ivy
package javarepl.reflection;
import com.googlecode.totallylazy.Option;
import com.googlecode.totallylazy.Sequence;
import java.lang.annotation.Annotation;
import static com.googlecode.totallylazy.Option.option;
import static com.googlecode.totallylazy.Sequences.empty;
import static com.googlecode.totallylazy.Sequences.sequence;
public final class ClassReflection extends MemberReflection> {
public ClassReflection(Class> aClass) {
super(aClass);
}
public Integer modifiers() {
return member().getModifiers();
}
public String name() {
return member().getName();
}
public Option enclosingMethod() {
return option(member().getEnclosingMethod()).map(MethodReflection::new);
}
public Sequence declaredFields() {
return sequence(member().getDeclaredFields()).map(FieldReflection::new);
}
public Sequence fields() {
return sequence(member().getFields()).map(FieldReflection::new);
}
public Sequence declaredMethods() {
return sequence(member().getDeclaredMethods()).map(MethodReflection::new);
}
public Sequence methods() {
return sequence(member().getMethods()).map(MethodReflection::new);
}
public Sequence declaredConstructors() {
return sequence(member().getDeclaredConstructors()).map(ConstructorReflection::new);
}
public Sequence constructors() {
return sequence(member().getConstructors()).map(ConstructorReflection::new);
}
public Sequence declaredAnnotations() {
return sequence(member().getDeclaredAnnotations());
}
public Sequence annotations() {
return sequence(member().getAnnotations());
}
private Sequence interfaces() {
return sequence(member().getInterfaces()).map(ClassReflection::new);
}
private Sequence declaredClasses() {
return sequence(member().getDeclaredClasses()).map(ClassReflection::new);
}
private Sequence classes() {
return sequence(member().getClasses()).map(ClassReflection::new);
}
public Sequence> declaredMembers() {
return empty()
.join(declaredClasses())
.join(declaredConstructors())
.join(declaredFields())
.join(declaredMethods())
.unique()
.unsafeCast();
}
public Sequence> members() {
return empty()
.join(classes())
.join(constructors())
.join(fields())
.join(methods())
.unique()
.unsafeCast();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy