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

net.vidageek.mirror.set.DefaultSetterHandler Maven / Gradle / Ivy

/**
 * 
 */
package net.vidageek.mirror.set;

import java.lang.reflect.Field;

import net.vidageek.mirror.provider.ReflectionProvider;
import net.vidageek.mirror.set.dsl.FieldSetter;
import net.vidageek.mirror.set.dsl.SetterHandler;

/**
 * This class is responsible for providing field setting features.
 * 
 * @author jonasabreu
 */
public final class DefaultSetterHandler implements SetterHandler {

    private final Object target;

    private final Class clazz;

    private final ReflectionProvider provider;

    public DefaultSetterHandler(final ReflectionProvider provider, final Object target) {
        if (target == null) {
            throw new IllegalArgumentException("target cannot be null");
        }
        this.provider = provider;
        this.target = target;
        clazz = target.getClass();
    }

    public DefaultSetterHandler(final ReflectionProvider provider, final Class clazz) {
        if (clazz == null) {
            throw new IllegalArgumentException("clazz cannot be null");
        }
        this.provider = provider;
        this.clazz = clazz;
        target = null;
    }

    public FieldSetter field(final String fieldName) {
        if ((fieldName == null) || (fieldName.trim().length() == 0)) {
            throw new IllegalArgumentException("fieldName cannot be null or empty.");
        }
        return new FieldSetterByName(provider, fieldName, target, clazz);
    }

    public FieldSetter field(final Field field) {
        if (field == null) {
            throw new IllegalArgumentException("parameter field cannot be null.");
        }
        return new FieldSetterByField(provider, target, clazz, field);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy