/*
 * @author Ranides Atterwim <ranides@gmail.com>
 * @copyright Ranides Atterwim
 * @license WTFPL
 * @url http://ranides.net/projects/assira
 */
package net.ranides.assira.reflection;

import net.ranides.assira.generic.Wrapper;

/**
 *
 * @author Ranides Atterwim <ranides@gmail.com>
 */
public final class ResolveUtils {
    
    private ResolveUtils() {
        /* utility class */
    }
    
    public static Object get(Object that, String expression) {
        return ResolvePattern.compile(expression).get(that);
    }
    
    public static void set(Object that, String expression, Object value) {
        ResolvePattern.compile(expression).set(that, value);
    }
    
    public static Object replace(Object that, String expression, Object value) {
        return ResolvePattern.compile(expression).replace(that, value);
    }
    
    public static IClass<?> type(Object that, String expression) {
        return ResolvePattern.compile(expression).type(that);
    }
    
    public static Wrapper<Object> bind(Object that, String expression) {
        return ResolvePattern.compile(expression).bind(that);
    }
    
    
}
