Package org.nutz.castor.castor

Source Code of org.nutz.castor.castor.String2Class

package org.nutz.castor.castor;

import java.util.HashMap;
import java.util.Map;

import org.nutz.castor.Castor;
import org.nutz.castor.FailToCastObjectException;

import static java.lang.String.*;

@SuppressWarnings({"rawtypes"})
public class String2Class extends Castor<String, Class> {

    public String2Class() {
        fromClass = String.class;
        toClass = Class.class;
    }

    public static final Map<String, Class<?>> map = new HashMap<String, Class<?>>();
    static {
        map.put("long", long.class);
        map.put("int", int.class);
        map.put("short", short.class);
        map.put("byte", byte.class);
        map.put("float", float.class);
        map.put("double", double.class);
        map.put("char", char.class);
        map.put("boolean", boolean.class);
    }

    @Override
    public Class<?> cast(String src, Class toType, String... args) {
        if (null == src)
            return null;
        Class<?> c = map.get(src);
        if (null != c)
            return c;
        try {
            return Class.forName(src);
        }
        catch (ClassNotFoundException e) {
            throw new FailToCastObjectException(format("String '%s' can not cast to Class<?>!", src));
        }
    }

}
TOP

Related Classes of org.nutz.castor.castor.String2Class

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.