class TaskService implements ITaskService {

    @Override
    public <T extends DataObject> DeleteBuilder<T> delete(Class<T> type) {

        ObjEntity entity = targetCayenneService.entityResolver().getObjEntity(type);
        if (entity == null) {
            throw new LmRuntimeException("Java class " + type.getName() + " is not mapped in Cayenne");
        }

        TargetEntity targetEntity = targetEntityMap.get(entity);
        MapperBuilder mapperBuilder = new MapperBuilder(entity, targetEntity, keyAdapterFactory);

        return new DefaultDeleteBuilder<>(
                type,
                targetCayenneService,
                tokenManager,
                this,
                mapperBuilder);
    }

    public  TaskService(
            @Inject IExtractorService extractorService,
            @Inject ITargetCayenneService targetCayenneService,
            @Inject ITokenManager tokenManager,
            @Inject IKeyAdapterFactory keyAdapterFactory,
            @Inject TargetEntityMap targetEntityMap,
            @Inject ITargetPropertyWriterService writerService,
            @Inject ValueConverterFactory valueConverterFactory);

}