All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.vidageek.mirror.MemberController Maven / Gradle / Ivy

package net.vidageek.mirror;

import java.lang.reflect.AccessibleObject;

import net.vidageek.mirror.provider.ReflectionProvider;
import net.vidageek.mirror.reflect.AllMemberHandler;
import net.vidageek.mirror.reflect.MemberHandler;

/**
 * Class to provide reflection features to AccessibleObjects
 * 
 * @author dnfeitosa
 */
public final class MemberController {

	private final AccessibleObject member;

	private final ReflectionProvider provider;

	public MemberController(final ReflectionProvider provider, final AccessibleObject member) {
		if (member == null) {
			throw new IllegalArgumentException("Argument member cannot be null");
		}
		this.provider = provider;
		this.member = member;
	}

	/**
	 * This part of the DSL controls reflection of a list of reflection
	 * elements.
	 * 
	 * @return An object to control reflection of lists of elements.
	 */
	public AllMemberHandler reflectAll() {
		return new AllMemberHandler(provider, member);
	}

	/**
	 * This part of the DSL controls reflection of single reflection elements.
	 * 
	 * @return An object to control reflection of single elements.
	 */
	public MemberHandler reflect() {
		return new MemberHandler(provider, member);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy