package org.etk.orm.plugins.mapper.onetomany.hierarchical;
import org.etk.orm.core.EntityContext;
import org.etk.orm.plugins.bean.ValueKind;
public abstract class AnyChildMultiValueMapper<K extends ValueKind.Multi> {
public abstract <E> Object createValue(EntityContext parentCtx, String prefix, Class<E> relatedClass);
public static class Map extends AnyChildMultiValueMapper<ValueKind.Map> {
public <E> Object createValue(EntityContext parentCtx, String prefix, Class<E> relatedClass) {
return new AnyChildMap<E>(parentCtx, prefix, relatedClass);
}
}
public static class Collection extends AnyChildMultiValueMapper<ValueKind.Collection> {
public <E> Object createValue(EntityContext parentCtx, String prefix, Class<E> relatedClass) {
return new AnyChildCollection<E>(parentCtx, prefix, relatedClass);
}
}
public static class List extends AnyChildMultiValueMapper<ValueKind.Array> {
public <E> Object createValue(EntityContext parentCtx, String prefix, Class<E> relatedClass) {
return new AnyChildList<E>(parentCtx, prefix, relatedClass);
}
}
}