/*
* Copyright (c) 2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.api.service.impl.resource.utils;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Factory used for obtaining capacity calculators based on storage
* system type. The capacity calculators are spring configured and
* are used to calculate the actual allocation capacity for a given
* requested volume size on the array.
*/
public class CapacityCalculatorFactory {
@Resource(name = "capacityCalculators")
private Map<String, CapacityCalculator> capacityCalculators =
new HashMap<String, CapacityCalculator>();
@Autowired
DefaultCapacityCalculator defaultCapacityCalculator;
public CapacityCalculator getCapacityCalculator(String systemType) {
if (capacityCalculators.containsKey(systemType)) {
return capacityCalculators.get(systemType);
}
defaultCapacityCalculator.setSystemType(systemType);
return defaultCapacityCalculator;
}
}