package org.qi4j.manual.recipes.createEntity;
import org.qi4j.api.entity.EntityBuilder;
import org.qi4j.api.injection.scope.Structure;
import org.qi4j.api.unitofwork.UnitOfWork;
import org.qi4j.api.unitofwork.UnitOfWorkFactory;
// START SNIPPET: carFactoryMixin2
// START SNIPPET: carFactoryMixin1
public class CarEntityFactoryMixin
implements CarEntityFactory
{
// END SNIPPET: carFactoryMixin1
@Structure
UnitOfWorkFactory uowf;
// END SNIPPET: carFactoryMixin2
// START SNIPPET: carFactoryMixin3
public CarEntityFactoryMixin( @Structure UnitOfWorkFactory uowf )
{
}
// END SNIPPET: carFactoryMixin3
// START SNIPPET: createCar
public Car create(Manufacturer manufacturer, String model)
{
UnitOfWork uow = uowf.currentUnitOfWork();
EntityBuilder<Car> builder = uow.newEntityBuilder( Car.class );
Car prototype = builder.instance();
prototype.manufacturer().set( manufacturer );
prototype.model().set( model );
return builder.newInstance();
}
// END SNIPPET: createCar
}