Lifecycle interface for all Composites.
This Lifecycle interface is a built-in feature of the Qi4j runtime, similar to the Initializable interface. Any Mixin that implements this interface AND is part of an EntityComposite will have these two methods called upon creation/removal of the EntityComposite instance to/from the EntityStore. Meaning, the create method is called only when the identifiable EntityComposite is created the first time, and not when it is read from its persisted state and created into memory.
Example;
public interface System { Property<User> admin(); } public class SystemAdminMixin implements System, Lifecyle, ... { @Structure private UnitOfWork uow; @This private Identity meAsIdentity; public void create() { String thisId = meAsIdentity.identity().get(); EntityBuilder builder = uow.newEntityBuilder( thisId + ":1", UserComposite.class ); User admin = builder.newInstance(); admin.set( admin ); } public void remove() { uow.remove( admin.get() ); } } @Mixins( SystemAdminMixin.class ) public interface SystemEntity extends System, EntityComposite {}