package com.netflix.ice.basic;
import com.google.common.collect.Lists;
import com.netflix.ice.common.ResourceService;
import com.netflix.ice.processor.ProcessorConfig;
import com.netflix.ice.reader.ReaderConfig;
import com.netflix.ice.tag.Account;
import com.netflix.ice.tag.Product;
import com.netflix.ice.tag.Region;
import org.apache.commons.lang.StringUtils;
import java.util.List;
public class BasicResourceService extends ResourceService {
private ProcessorConfig processorConfig;
@Override
public void init() {
processorConfig = ProcessorConfig.getInstance();
}
@Override
public String getResource(Account account, Region region, Product product, String resourceId, String[] lineItem, long millisStart) {
List<String> header = processorConfig.lineItemProcessor.getHeader();
String result = "";
for (String tag: processorConfig.customTags) {
int index = header.indexOf(tag);
if (index > 0 && lineItem.length > index && !StringUtils.isEmpty(lineItem[index]))
result = StringUtils.isEmpty(result) ? lineItem[index] : result + "_" + lineItem[index];
}
return StringUtils.isEmpty(result) ? product.name : result;
}
@Override
public List<List<Product>> getProductsWithResources() {
List<List<Product>> result = Lists.newArrayList();
for (Product product: ReaderConfig.getInstance().productService.getProducts()) {
result.add(Lists.<Product>newArrayList(product));
}
return result;
}
@Override
public void commit() {
}
}