package org.javers.core.graph;
import org.javers.common.collections.Lists;
import org.javers.common.reflection.JaversMember;
import org.javers.core.metamodel.property.Property;
import org.javers.core.metamodel.type.ParametrizedDehydratedType;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
/**
* @author pawelszymczyk
*/
abstract class TailoredJaversMemberFactory {
protected abstract JaversMember create(Property primaryProperty, Class<?> genericItemClass);
protected ParameterizedType parametrizedType(Property property, Class<?> itemClass) {
return new ParametrizedDehydratedType(property.getRawType(), Lists.asList((Type) itemClass));
}
}