package org.qi4j.api.entity; import org.qi4j.api.structure.Module; /** * EntityBuilderTemplate. */ public abstract class EntityBuilderTemplate<T> { Class<T> type; protected EntityBuilderTemplate( Class<T> type ) { this.type = type; } protected abstract void build( T prototype ); public T newInstance( Module module ) { EntityBuilder<T> builder = module.currentUnitOfWork().newEntityBuilder( type ); build( builder.instance() ); return builder.newInstance(); } }