class ProgramObjectBundleHook extends
    AbstractObjectBundleHook {

    @Override
    public void postCreate( IdentifiableObject object, ObjectBundle bundle )
    {
        if ( !isProgram( object ) )
        {
            return;
        }

        syncSharingForEventProgram( (Program) object );

        addProgramInstance( (Program) object );

        updateProgramStage( (Program) object );
    }

    public  ProgramObjectBundleHook( ProgramInstanceService programInstanceService, ProgramService programService,
        ProgramStageService programStageService, AclService aclService );

}