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

fr.soleil.tango.clientapi.util.DevEncodedConverter 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.DefaultConverters;
import net.entropysoft.transmorph.IConverter;
import net.entropysoft.transmorph.Transmorph;
import net.entropysoft.transmorph.type.TypeReference;
import fr.esrf.Tango.DevEncoded;

public final class DevEncodedConverter implements IConverter {

    @Override
    public Object convert(final ConversionContext context, final Object sourceObject,
	    final TypeReference destinationType) throws ConverterException {
	Object result;
	if (sourceObject instanceof DevEncoded) {
	    result = sourceObject;
	} else {
	    final Transmorph transmorph = new Transmorph(new DefaultConverters());
	    if (sourceObject.getClass().isArray()) {
		result = new DevEncoded("unknown", transmorph.convert(sourceObject, byte[].class));
	    } else {
		result = new DevEncoded("unknown", new byte[] { transmorph.convert(sourceObject, byte.class) });
	    }

	}
	return result;
    }

    @Override
    public boolean canHandle(final ConversionContext context, final Object sourceObject,
	    final TypeReference destinationType) {
	boolean canHandle = false;
	if (destinationType.isType(DevEncoded.class)) {
	    canHandle = true;
	}
	return canHandle;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy