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

net.amygdalum.testrecorder.deserializers.builder.DefaultClassAdaptor Maven / Gradle / Ivy

There is a newer version: 0.10.5
Show newest version
package net.amygdalum.testrecorder.deserializers.builder;

import static net.amygdalum.testrecorder.types.Computation.expression;
import static net.amygdalum.testrecorder.util.Types.equalBaseTypes;

import java.lang.reflect.Type;

import net.amygdalum.testrecorder.deserializers.Adaptor;
import net.amygdalum.testrecorder.deserializers.Deserializer;
import net.amygdalum.testrecorder.types.Computation;
import net.amygdalum.testrecorder.types.DeserializerContext;
import net.amygdalum.testrecorder.types.TypeManager;
import net.amygdalum.testrecorder.values.SerializedImmutable;

public class DefaultClassAdaptor extends DefaultSetupGenerator>> implements Adaptor>> {

	@SuppressWarnings("rawtypes")
	@Override
	public Class getAdaptedClass() {
		return SerializedImmutable.class;
	}

	@Override
	public boolean matches(Type type) {
		return equalBaseTypes(type, Class.class);
	}

	@Override
	public Computation tryDeserialize(SerializedImmutable> value, Deserializer generator) {
		DeserializerContext context = generator.getContext();
		TypeManager types = context.getTypes();
		types.registerImport(Class.class);

		Class clazz = value.getValue();

		return expression(types.getRawClass(clazz), types.mostSpecialOf(value.getUsedTypes()).orElse(Class.class));
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy