Package com.github.jmkgreen.morphia.converters

Source Code of com.github.jmkgreen.morphia.converters.ClassConverter

/**
*
*/
package com.github.jmkgreen.morphia.converters;

import com.github.jmkgreen.morphia.mapping.MappedField;
import com.github.jmkgreen.morphia.mapping.MappingException;

/**
* @author Uwe Schaefer, (us@thomas-daily.de)
* @author scotthernandez
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public class ClassConverter extends TypeConverter implements SimpleValueConverter {

    public ClassConverter() {
        super(Class.class);
    }

    @Override
    public Object decode(Class targetClass, Object fromDBObject, MappedField optionalExtraInfo) throws MappingException {
        if (fromDBObject == null)
            return null;

        String l = fromDBObject.toString();
        try {
            return Class.forName(l);
        } catch (ClassNotFoundException e) {
            throw new MappingException("Cannot create class from Name '" + l + "'", e);
        }
    }

    @Override
    public Object encode(Object value, MappedField optionalExtraInfo) {
        if (value == null)
            return null;
        else
            return ((Class) value).getName();
    }
}
TOP

Related Classes of com.github.jmkgreen.morphia.converters.ClassConverter

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.