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

org.atemsource.atem.utility.transform.impl.converter.JavaUniConverterWrapper Maven / Gradle / Ivy

package org.atemsource.atem.utility.transform.impl.converter;

import org.atemsource.atem.api.type.Type;
import org.atemsource.atem.utility.transform.api.TransformationContext;
import org.atemsource.atem.utility.transform.api.UniConverter;


public class JavaUniConverterWrapper implements UniConverter
{
	private final JavaConverterWrapper converter;

	private final boolean direction;

	public JavaUniConverterWrapper(JavaConverterWrapper converter, boolean direction)
	{
		super();
		this.direction = direction;
		this.converter = converter;
	}

	@Override
	public Object convert(Object a, TransformationContext ctx)
	{
		if (direction)
		{
			return converter.convertAB(a, ctx);
		}
		else
		{
			return converter.convertBA(a, ctx);
		}
	}

	@Override
	public Type getSourceType()
	{
		if (direction)
		{
			return converter.getTypeA();
		}
		else
		{
			return converter.getTypeB();
		}
	}

	@Override
	public Type getTargetType()
	{
		if (direction)
		{
			return converter.getTypeB();
		}
		else
		{
			return converter.getTypeA();
		}
	}

	@Override
	public Type getTargetType(Type sourceType)
	{
		if (direction)
		{
			return converter.getTypeB();
		}
		else
		{
			return converter.getTypeA();
		}
	}

}