package com.sequenceiq.cloudbreak.converter;
import java.util.List;
import org.springframework.stereotype.Component;
import com.sequenceiq.cloudbreak.api.model.AccountPreferencesJson;
import com.sequenceiq.cloudbreak.domain.AccountPreferences;
@Component
public class JsonToAccountPreferencesConverter extends AbstractConversionServiceAwareConverter<AccountPreferencesJson, AccountPreferences> {
private static final long HOUR_IN_MS = 3600000L;
@Override
public AccountPreferences convert(AccountPreferencesJson source) {
AccountPreferences target = new AccountPreferences();
target.setMaxNumberOfClusters(source.getMaxNumberOfClusters());
target.setMaxNumberOfNodesPerCluster(source.getMaxNumberOfNodesPerCluster());
List<String> allowedInstanceTypes = source.getAllowedInstanceTypes();
if (allowedInstanceTypes != null && !allowedInstanceTypes.isEmpty()) {
target.setAllowedInstanceTypes(allowedInstanceTypes);
}
target.setClusterTimeToLive(source.getClusterTimeToLive() * HOUR_IN_MS);
target.setUserTimeToLive(source.getUserTimeToLive() * HOUR_IN_MS);
target.setMaxNumberOfClustersPerUser(source.getMaxNumberOfClustersPerUser());
target.setPlatforms(source.getPlatforms());
return target;
}
}