package com.github.ltsopensource.autoconfigure.resolver; import com.github.ltsopensource.autoconfigure.AutoConfigContext; import com.github.ltsopensource.autoconfigure.PropertiesConfigurationResolveException; import java.beans.PropertyDescriptor; /** * @author Robert HG (254963746@qq.com) on 4/21/16. */ public class ClassResolver extends AbstractResolver { public static final ClassResolver INSTANCE = new ClassResolver(); @Override public void resolve(final AutoConfigContext context, final PropertyDescriptor descriptor, Class<?> propertyType) { doFilter(context, descriptor, new Filter() { @Override public boolean onCondition(String name, String key, String value) { return key.equals(name); } @Override public boolean call(String name, String key, String value) { try { Class clazz = Class.forName(value); writeProperty(context, descriptor, clazz); } catch (ClassNotFoundException e) { throw new PropertiesConfigurationResolveException(e); } return false; } }); } }