All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.emc.mongoose.load.generator.LoadGeneratorBuilder Maven / Gradle / Ivy

There is a newer version: 4.0.0-alpha5
Show newest version
package com.emc.mongoose.load.generator;

import com.emc.mongoose.api.common.exception.OmgShootMyFootException;
import com.github.akurilov.commons.io.Input;
import com.emc.mongoose.api.model.io.task.IoTask;
import com.emc.mongoose.api.model.item.Item;
import com.emc.mongoose.api.model.item.ItemFactory;
import com.emc.mongoose.api.model.item.ItemType;
import com.emc.mongoose.api.model.load.LoadGenerator;
import com.emc.mongoose.api.model.storage.StorageDriver;
import com.emc.mongoose.ui.config.item.ItemConfig;
import com.emc.mongoose.ui.config.load.LoadConfig;
import com.emc.mongoose.ui.config.storage.auth.AuthConfig;
import com.emc.mongoose.ui.config.test.step.limit.LimitConfig;

import java.io.IOException;
import java.util.List;

/**
 Created by andrey on 12.11.16.
 */
public interface LoadGeneratorBuilder<
	I extends Item, O extends IoTask, T extends LoadGenerator
> {

	LoadGeneratorBuilder setItemConfig(final ItemConfig itemConfig);

	LoadGeneratorBuilder setLoadConfig(final LoadConfig loadConfig);

	LoadGeneratorBuilder setLimitConfig(final LimitConfig limitConfig);

	LoadGeneratorBuilder setItemType(final ItemType itemType);

	LoadGeneratorBuilder setItemFactory(final ItemFactory itemFactory);
	
	LoadGeneratorBuilder setAuthConfig(final AuthConfig authConfig);
	
	LoadGeneratorBuilder setStorageDrivers(
		final List> storageDrivers
	);
	
	LoadGeneratorBuilder setItemInput(final Input itemInput);

	T build()
	throws OmgShootMyFootException, IOException;
}