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

fr.soleil.tango.clientapi.util.ObjectToBooleanConverter Maven / Gradle / Ivy

There is a newer version: 10.0.0
Show newest version
package fr.soleil.tango.clientapi.util;

import net.entropysoft.transmorph.ConversionContext;
import net.entropysoft.transmorph.ConverterException;
import net.entropysoft.transmorph.IConverter;
import net.entropysoft.transmorph.type.TypeReference;

public final class ObjectToBooleanConverter implements IConverter {

    @Override
    public Object convert(final ConversionContext context, final Object sourceObject,
	    final TypeReference destinationType) throws ConverterException {

	Object result = true;
	final String stringVal = sourceObject.toString();
	if (stringVal.equalsIgnoreCase("true")) {
	    result = true;
	} else if (stringVal.equalsIgnoreCase("false")) {
	    result = false;
	} else if (stringVal.isEmpty()) {
	    result = false;
	} else {
	    double value = 0;
	    try {
		value = Double.valueOf(sourceObject.toString());
		if (value == 0) {
		    result = false;
		}
	    } catch (final NumberFormatException e) {
		result = false;
	    }

	}
	return result;
    }

    @Override
    public boolean canHandle(final ConversionContext context, final Object sourceObject,
	    final TypeReference destinationType) {
	return (destinationType.isType(Boolean.class) || destinationType.isType(boolean.class))
		&& (Number.class.isAssignableFrom(sourceObject.getClass()) || String.class
			.isAssignableFrom(sourceObject.getClass()));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy