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

com.google.code.morphia.converters.ClassConverter Maven / Gradle / Ivy

package com.google.code.morphia.converters;


import com.google.code.morphia.mapping.MappedField;
import com.google.code.morphia.mapping.MappingException;


/**
 * @author Uwe Schaefer, ([email protected])
 * @author scotthernandez
 */
@SuppressWarnings({"rawtypes" })
public class ClassConverter extends TypeConverter implements SimpleValueConverter {

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

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

    final 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(final Object value, final MappedField optionalExtraInfo) {
    if (value == null) {
      return null;
    } else {
      return ((Class) value).getName();
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy