Package com.googlecode.mjorm.convert.converters

Source Code of com.googlecode.mjorm.convert.converters.BooleanTypeConverter

package com.googlecode.mjorm.convert.converters;

import com.googlecode.mjorm.convert.ConversionContext;
import com.googlecode.mjorm.convert.ConversionException;
import com.googlecode.mjorm.convert.JavaType;
import com.googlecode.mjorm.convert.TypeConversionHints;
import com.googlecode.mjorm.convert.TypeConverter;

public class BooleanTypeConverter
  implements TypeConverter<Object, Boolean> {

  public boolean canConvert(Class<?> sourceClass, Class<?> targetClass) {
    return (Number.class.isAssignableFrom(sourceClass)
      || Character.class.isAssignableFrom(sourceClass)
      || String.class.isAssignableFrom(sourceClass)
    ) && Boolean.class.equals(targetClass);
  }

  public Boolean convert(
    Object source, JavaType targetType, ConversionContext context, TypeConversionHints hints)
    throws ConversionException {

    if (Number.class.isInstance(source)) {
      return Boolean.valueOf(Number.class.cast(source).intValue()==1);

    } else if (Character.class.isInstance(source)) {
      char c = Character.class.cast(source).charValue();
      return Boolean.valueOf(c==(char)1);

    } else if (String.class.isInstance(source)) {
      return Boolean.valueOf(String.class.cast(source));
    }

    throw new ConversionException("Unable to convert source to boolean");
  }

}
TOP

Related Classes of com.googlecode.mjorm.convert.converters.BooleanTypeConverter

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.