package org.zstack.storage.primary;
import org.zstack.core.workflow.FlowChainBuilder;
import org.zstack.header.Component;
import org.zstack.header.storage.primary.*;
import java.util.List;
public class DefaultPrimaryStorageAllocatorFactory implements PrimaryStorageAllocatorStrategyFactory, Component,
PrimaryStorageAllocatorFlowNameSetter {
private static final PrimaryStorageAllocatorStrategyType type = new PrimaryStorageAllocatorStrategyType(
PrimaryStorageConstant.DEFAULT_PRIMARY_STORAGE_ALLOCATION_STRATEGY_TYPE);
private DefaultPrimaryStorageAllocatorStrategy strategy;
private List<String> allocatorFlowNames;
private FlowChainBuilder builder = new FlowChainBuilder();
@Override
public List<String> getAllocatorFlowNames() {
return allocatorFlowNames;
}
public void setAllocatorFlowNames(List<String> allocatorFlowNames) {
this.allocatorFlowNames = allocatorFlowNames;
}
@Override
public PrimaryStorageAllocatorStrategyType getPrimaryStorageAllocatorStrategyType() {
return type;
}
@Override
public PrimaryStorageAllocatorStrategy getPrimaryStorageAllocatorStrategy() {
return strategy;
}
@Override
public boolean start() {
builder.setFlowClassNames(allocatorFlowNames).construct();
strategy = new DefaultPrimaryStorageAllocatorStrategy(builder);
return true;
}
@Override
public boolean stop() {
return true;
}
}