package eu.smartlm.abs.portal.graph;
import eu.smartlm.abs.portal.view.data.ABSQuery;
import eu.smartlm.abs.portal.view.portlet.QueryPortlet;
import eu.smartlm.schemas.x2009.x06.urec.LicenseResourceType;
import eu.smartlm.schemas.x2009.x06.urec.ProductType;
import eu.smartlm.schemas.x2009.x06.urec.SmartLMUsageRecordType;
import java.util.HashSet;
import java.util.Set;
import org.gridforum.x2003.urWg.HostDocument.Host;
import org.gridforum.x2003.urWg.ProjectNameDocument.ProjectName;
import org.gridforum.x2003.urWg.SubmitHostDocument.SubmitHost;
import org.gridforum.x2003.urWg.UserIdentityDocument.UserIdentity;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* Creates JFreeChart graphs of different types depending of the data request.
* @author David García Pérez - CESGA
*
*/
public class GraphConstructor {
public static String GRAPH_TYPE_BARCHAR3D = "BarChart3D";
// USERS
private static JFreeChart constructGraphForTimeUsageVsUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsUsers(usageRecords,
getUsers(usageRecords, users));
return constructGraph(dataset, graphType, "User's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsUsers(usageRecords,
getUsers(usageRecords, users));
return constructGraph(dataset, graphType, "User's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsUsersFilterByProduct(String graphType,
Set<SmartLMUsageRecordType> usageRecords, Set<String> users, Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsUsersFilterByProducts(
usageRecords,
getUsers(usageRecords, users),
getProducts(usageRecords, products),
QueryPortlet.TYPE_ACCOUNTING);
return constructGraph(dataset, graphType, "User's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsUsersFilterByProduct(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> users,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsUsersFilterByProducts(
usageRecords,
getUsers(usageRecords, users),
getProducts(usageRecords, products),
QueryPortlet.TYPE_BILLING);
return constructGraph(dataset, graphType, "Billing User's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsUsersFilterByAccountingGroup(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> users,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsUsersFilterByAccountingGroups(
usageRecords,
getUsers(usageRecords, users),
accountingGroups,
QueryPortlet.TYPE_ACCOUNTING);
return constructGraph(dataset, graphType, "User's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsUsersFilterByAccountingGroup(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> users,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsUsersFilterByAccountingGroups(
usageRecords,
getUsers(usageRecords, users),
accountingGroups,
QueryPortlet.TYPE_BILLING);
return constructGraph(dataset, graphType, "User's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsUsersFilterByProject(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users, Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsUsersFilterByProjects(
usageRecords,
getUsers(usageRecords, users),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "User's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsUsersFilterByProject(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users, Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsUsersFilterByProjects(
usageRecords,
getUsers(usageRecords, users),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "User's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsUsersFilterByHosts(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users, Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsUsersFilterByHosts(
usageRecords,
getUsers(usageRecords, users),
getHosts(usageRecords, hosts));
return constructGraph(dataset, graphType, "User's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsUsersFilterByHosts(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users, Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsUsersFilterByHosts(
usageRecords,
getUsers(usageRecords, users),
getHosts(usageRecords, hosts));
return constructGraph(dataset, graphType, "User's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsUsersFilterBySubmitHosts(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users, Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsUsersFilterBySubmitHosts(
usageRecords,
getUsers(usageRecords, users),
getSubmitHosts(usageRecords, submitHosts));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsUsersFilterBySubmitHosts(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> users, Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsUsersFilterBySubmitHosts(
usageRecords,
getUsers(usageRecords, users),
getSubmitHosts(usageRecords, submitHosts));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Euros", true, true);
}
// PRODUCTS
private static JFreeChart constructGraphForTimeUsageVsProducts( String graphType, Set<SmartLMUsageRecordType> usageRecords, Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsProduct(usageRecords, getProducts(usageRecords, products), QueryPortlet.TYPE_ACCOUNTING);
return constructGraph(dataset, graphType, "Product's usage", "Products", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsProducts(String graphType, Set<SmartLMUsageRecordType> usageRecords, Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsProduct(usageRecords, getProducts(usageRecords, products), QueryPortlet.TYPE_BILLING);
return constructGraph(dataset, graphType, "Product's usage", "Products", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsegaVsProductsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> products, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsProductsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
getProducts(usageRecords, products),
QueryPortlet.TYPE_ACCOUNTING);
return constructGraph(dataset, graphType, "Product's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsegaVsProductsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> products, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsProductsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
getProducts(usageRecords, products),
QueryPortlet.TYPE_BILLING);
return constructGraph(dataset, graphType, "Product's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsProductsFilterByAccountingGroups(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> products, Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsProductsFilterByAccountingGroups(
usageRecords,
accountingGroups,
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsegaVsProductsFilterByAccountingGroups(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> products, Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsProductsFilterByAccountingGroups(
usageRecords,
accountingGroups,
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsProductsFilterByProjects(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> products,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsProductsFilterByProjects(
usageRecords,
getProjects(usageRecords, projects),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsProductsFilterByProjects(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> products,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsProductsFilterByProjects(
usageRecords,
getProjects(usageRecords, projects),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsProductFilterBySumbitHosts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> products,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsProductsFilterBySubmitHosts(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsProductFilterBySumbitHosts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> products,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsProductsFilterBySubmitHosts(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsProductFilterByHosts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> products,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsProductsFilterByHosts(
usageRecords,
getHosts(usageRecords, hosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsProductFilterByHosts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> products,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsProductsFilterByHosts(
usageRecords,
getHosts(usageRecords, hosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Product's usage", "Products", "Euros", true, true);
}
//ACCOUNTINGGROUPS
private static JFreeChart constructGraphForTimeUsageVsAccountingGroups(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsAccountingGroup(
usageRecords,
accountingGroups);
return constructGraph(dataset, graphType, "Accounting Group's usage", "AccountingGroups", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsAccountingGroups(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsAccountingGroup(
usageRecords,
accountingGroups);
return constructGraph(dataset, graphType, "Accounting Group's usage", "AccountingGroups", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsAccountingGroupsFilterByProducts(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups, Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsAccountingGroupFilterByProducts(
usageRecords,
accountingGroups,
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Accounting Group's usage", "AccountingGroups", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsAccountingGroupsFilterByProducts(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups, Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsAccountingGroupFilterByProducts(
usageRecords,
accountingGroups,
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Accounting Group's usage", "AccountingGroups", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsAccountingGroupsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsAccountingGroupsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
accountingGroups,
QueryPortlet.TYPE_ACCOUNTING);
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsAccountingGroupsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForUsageVsAccountingGroupsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
accountingGroups,
QueryPortlet.TYPE_BILLING);
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsAccountingGroupFilterByProject(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsAccountingGroupFilterByProjects(
usageRecords,
accountingGroups,
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsAccountingGroupFilterByProject(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsAccountingGroupFilterByProjects(
usageRecords,
accountingGroups,
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsAccountingGroupFilterByHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsAccountingGroupFilterByHost(
usageRecords,
getHosts(usageRecords, hosts),
accountingGroups);
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsAccountingGroupFilterByHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsAccountingGroupFilterByHost(
usageRecords,
getHosts(usageRecords, hosts),
accountingGroups);
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsAccountingGroupFilterBySubmitHost(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsAccountingGroupFilterBySubmitHost(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
accountingGroups);
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsAccountingGroupFilterBySubmitHost(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> accountingGroups,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsAccountingGroupFilterBySubmitHost(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
accountingGroups);
return constructGraph(dataset, graphType, "AccountingGroup's usage", "AccountingGroup", "Euros", true, true);
}
//PROJECTS
private static JFreeChart constructGraphForTimeUsageVsProjects(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsProject(
usageRecords,
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Projects's usage", "Projects", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsProjects(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsProject(
usageRecords,
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Projects's usage", "Projects", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVSProjectFilterByAccountingGroup(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForTimeUsageVsProjectsFilterByAccountingGroups(
usageRecords,
accountingGroups,
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Projects's usage", "Projects", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVSProjectFilterByAccountingGroup(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor.constructDatasetForBillingUsageVsProjectsFilterByAccountingGroups(
usageRecords,
accountingGroups,
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Projects's usage", "Projects", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVSProjectsFilterByProducts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsProjectsFilterByProducts(
usageRecords,
getProjects(usageRecords, projects),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Projects's usage", "Projects", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVSProjectsFilterByProducts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsProjectsFilterByProducts(
usageRecords,
getProjects(usageRecords, projects),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Projects's usage", "Projects", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsProjectsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsProjectsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Project's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsProjectsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsProjectsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Project's usage", "Users", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVSProjectFilterBySumbitHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsProjectFilterBySubmitHosts(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Project's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVSProjectFilterBySumbitHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsProjectFilterBySubmitHosts(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Project's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForTimeUsageVSProjectFilterByHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsProjectFilterByHosts(
usageRecords,
getHosts(usageRecords, hosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Project's usage", "Users", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVSProjectFilterByHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsProjectFilterByHosts(
usageRecords,
getHosts(usageRecords, hosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Project's usage", "Users", "Euros", true, true);
}
// HOSTS
private static JFreeChart constructGraphForTimeUsegaVsHostsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsHostsFilterByUsers(
usageRecords,
getHosts(usageRecords, hosts),
getUsers(usageRecords, users));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsegaVsHostsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsHostsFilterByUsers(
usageRecords,
getHosts(usageRecords, hosts),
getUsers(usageRecords, users));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsHostsFilterByProducts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsHostsFilterByProducts(
usageRecords,
getHosts(usageRecords, hosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsHostsFilterByProducts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsHostsFilterByProducts(
usageRecords,
getHosts(usageRecords, hosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Euros", true, true);
}
private static JFreeChart contructGraphForTimeUsageVsHostsFilterByAccountingGroup(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsHostFilterByAccountingGroup(
usageRecords,
getHosts(usageRecords, hosts),
accountingGroups);
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Hours", true, true);
}
private static JFreeChart contructGraphForBillingUsageVsHostsFilterByAccountingGroup(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsHostFilterByAccountingGroup(
usageRecords,
getHosts(usageRecords, hosts),
accountingGroups);
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsHostsFilterByProject(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsHostFilterByProjects(
usageRecords,
getHosts(usageRecords, hosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsHostsFilterByProject(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsHostFilterByProjects(
usageRecords,
getHosts(usageRecords, hosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsHosts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageForAHost(
usageRecords,
getHosts(usageRecords, hosts));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsHosts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> hosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageForAHost(
usageRecords,
getHosts(usageRecords, hosts));
return constructGraph(dataset, graphType, "Host's usage", "Hosts", "Euros", true, true);
}
// SUBMITHOSTS
private static JFreeChart constructGraphForTimeUsegaVsSubmitHostsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSubmitHostsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
getSubmitHosts(usageRecords, submitHosts));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsegaVsSubmitHostsFilterByUsers(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts, Set<String> users) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSubmitHostsFilterByUsers(
usageRecords,
getUsers(usageRecords, users),
getSubmitHosts(usageRecords, submitHosts));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsSubmitHostsFilterByProducts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSubmitHostsFilterByProducts(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsSubmitHostsFilterByProducts(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts,
Set<String> products) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSubmitHostsFilterByProducts(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProducts(usageRecords, products));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Euros", true, true);
}
private static JFreeChart contructGraphForTimeUsageVsSubmitHostsFilterByAccountingGroup(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSubmitHostFilterByAccountingGroup(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
accountingGroups);
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Hours", true, true);
}
private static JFreeChart contructGraphForBillingUsageVsSubmitHostsFilterByAccountingGroup(
String graphType, Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts,
Set<String> accountingGroups) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSubmitHostFilterByAccountingGroup(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
accountingGroups);
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Euros", true, true);
}
private static JFreeChart constructGraphForTimeUsageVsSubmitHostsFilterByProject(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageVsSumitHostFilterByProjects(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Hours", true, true);
}
private static JFreeChart constructGraphForBillingUsageVsSubmitHostsFilterByProject(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts,
Set<String> projects) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageVsSumitHostFilterByProjects(
usageRecords,
getSubmitHosts(usageRecords, submitHosts),
getProjects(usageRecords, projects));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Euros", true, true);
}
private static JFreeChart contructGraphForTimeUsageVsSubmitHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForTimeUsageForASubmitHost(
usageRecords,
getSubmitHosts(usageRecords, submitHosts));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Hours", true, true);
}
private static JFreeChart contructGraphForBillingUsageVsSubmitHost(
String graphType,
Set<SmartLMUsageRecordType> usageRecords,
Set<String> submitHosts) {
DefaultCategoryDataset dataset = DatasetConstructor
.constructDatasetForBillingUsageForASubmitHost(
usageRecords,
getSubmitHosts(usageRecords, submitHosts));
return constructGraph(dataset, graphType, "SubmitHost's usage", "SubmitHosts", "Euros", true, true);
}
// UTILITY METHODS
private static JFreeChart constructGraph(DefaultCategoryDataset dataset, String graphType,
String legend, String x, String y, boolean showLegend, boolean showTooltips) {
if(graphType.equals(GRAPH_TYPE_BARCHAR3D))
return ChartFactory.createBarChart3D(legend, x, y, dataset,
PlotOrientation.VERTICAL, true, true, false);
return null;
}
private static Set<UserIdentity> getUsers(
Set<SmartLMUsageRecordType> usageRecords, Set<String> users) {
Set<UserIdentity> usersList = new HashSet<UserIdentity>();
for(SmartLMUsageRecordType usageRecord : usageRecords) {
UserIdentity[] userArray = usageRecord.getUserIdentityArray();
for(int i = 0; i < userArray.length; i++) {
String userID = userArray[i].getLocalUserId();
for(String user : users) {
if(user.equals(userID)) {
usersList.add(userArray[i]);
}
}
}
}
return usersList;
}
private static Set<Host> getHosts(Set<SmartLMUsageRecordType> usageRecords, Set<String> stringHosts) {
Set<Host> hostsList = new HashSet<Host>();
for(SmartLMUsageRecordType usageRecord : usageRecords) {
Host[] hosts = usageRecord.getHostArray();
for(int i = 0; i < hosts.length; i++) {
for(String host : stringHosts) {
if(host.equals(hosts[i].getStringValue()))
hostsList.add(hosts[i]);
}
}
}
return hostsList;
}
private static Set<ProjectName> getProjects(Set<SmartLMUsageRecordType> usageRecords,
Set<String> projects) {
Set<ProjectName> projectsList = new HashSet<ProjectName>();
for(SmartLMUsageRecordType usageRecord : usageRecords) {
ProjectName[] projectNames = usageRecord.getProjectNameArray();
for(int i = 0; i < projectNames.length; i++) {
for(String project : projects) {
if(project.equals(projectNames[i].getStringValue()))
projectsList.add(projectNames[i]);
}
}
}
return projectsList;
}
private static Set<SubmitHost> getSubmitHosts(Set<SmartLMUsageRecordType> usageRecords,
Set<String> stringSubmitHosts) {
Set<SubmitHost> submitHostsList = new HashSet<SubmitHost>();
for(SmartLMUsageRecordType usageRecord : usageRecords) {
SubmitHost[] submitHosts = usageRecord.getSubmitHostArray();
for(int i = 0; i < submitHosts.length; i++) {
for(String submitHost : stringSubmitHosts) {
if(submitHost.equals(submitHosts[i].getStringValue()))
submitHostsList.add(submitHosts[i]);
}
}
}
return submitHostsList;
}
private static Set<ProductType> getProducts(Set<SmartLMUsageRecordType> usageRecords,
Set<String> products) {
Set<ProductType> productList = new HashSet<ProductType>();
for(SmartLMUsageRecordType usageRecord : usageRecords) {
LicenseResourceType[] licenseResources = usageRecord.getLicenseResourceArray();
for(int i = 0; i < licenseResources.length; i++) {
String productID = licenseResources[i].getLicense().getProduct().getProductId();
for(String product : products)
if(product.equals(productID))
productList.add(licenseResources[i].getLicense().getProduct());
}
}
return productList;
}
/**
* Constructs a JFreeChart graph
* @param aBSquery necessary query information to construct the graph
* @param graphType Type of Graph to be created
* @param usageRecords Usage Records from where to extract the information for the graph
* @return a JFreeChart of the specified type, <code>null</code> if the <code>graphType</code> is not correct.
*/
public static JFreeChart constructHourGraph(
ABSQuery aBSquery,
String graphType,
Set<SmartLMUsageRecordType> usageRecords) {
String firstOption = aBSquery.getFirstOption();
String secondOption = aBSquery.getSecondOption();
// USER
if(firstOption.equals(ABSQuery.USER)) {
if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForTimeUsageVsUsersFilterByProduct(graphType, usageRecords,
aBSquery.getQueryUsers(), aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return constructGraphForTimeUsageVsUsersFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQueryUsers(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForTimeUsageVsUsersFilterByProject(graphType, usageRecords,
aBSquery.getQueryUsers(), aBSquery.getQueryProjects());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForTimeUsageVsUsersFilterByHosts(graphType, usageRecords,
aBSquery.getQueryUsers(), aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForTimeUsageVsUsersFilterBySubmitHosts(graphType, usageRecords,
aBSquery.getQueryUsers(), aBSquery.getQuerySubmitHosts());
else return constructGraphForTimeUsageVsUsers(graphType, usageRecords, aBSquery.getQueryUsers());
}
// PRODUCT
else if (firstOption.equals(ABSQuery.PRODUCT)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForTimeUsegaVsProductsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryProducts(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return constructGraphForTimeUsageVsProductsFilterByAccountingGroups(graphType, usageRecords,
aBSquery.getQueryProducts(), aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForTimeUsageVsProductsFilterByProjects(
graphType,
usageRecords,
aBSquery.getQueryProducts(),
aBSquery.getQueryProjects());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForTimeUsageVsProductFilterByHosts(
graphType,
usageRecords,
aBSquery.getQueryProducts(),
aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForTimeUsageVsProductFilterBySumbitHosts(
graphType,
usageRecords,
aBSquery.getQueryProducts(),
aBSquery.getQuerySubmitHosts());
else return constructGraphForTimeUsageVsProducts(graphType,
usageRecords,
aBSquery.getQueryProducts());
}
// ACCOUNTINGGROUP
else if(firstOption.equals(ABSQuery.ACCOUNTINGGROUP)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForTimeUsageVsAccountingGroupsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryAccountingGroups(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForTimeUsageVsAccountingGroupsFilterByProducts(graphType, usageRecords,
aBSquery.getQueryAccountingGroups(), aBSquery.getQueryProducts());
else if (secondOption.equals(ABSQuery.PROJECT))
return constructGraphForTimeUsageVsAccountingGroupFilterByProject(
graphType,
usageRecords,
aBSquery.getQueryAccountingGroups(),
aBSquery.getQueryProjects());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForTimeUsageVsAccountingGroupFilterByHost(
graphType,
usageRecords,
aBSquery.getQueryAccountingGroups(),
aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForTimeUsageVsAccountingGroupFilterBySubmitHost(
graphType,
usageRecords,
aBSquery.getQueryAccountingGroups(),
aBSquery.getQuerySubmitHosts());
else
return constructGraphForTimeUsageVsAccountingGroups(graphType, usageRecords,
aBSquery.getQueryAccountingGroups());
}
//PROJECT
else if(firstOption.equals(ABSQuery.PROJECT)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForTimeUsageVsProjectsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryProjects(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForTimeUsageVSProjectsFilterByProducts(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return constructGraphForTimeUsageVSProjectFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForTimeUsageVSProjectFilterByHost(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForTimeUsageVSProjectFilterBySumbitHost(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQuerySubmitHosts());
else
return constructGraphForTimeUsageVsProjects(graphType, usageRecords,
aBSquery.getQueryProjects());
}
// HOST
else if (firstOption.equals(ABSQuery.HOST)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForTimeUsegaVsHostsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryHosts(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForTimeUsageVsHostsFilterByProducts(
graphType,
usageRecords,
aBSquery.getQueryHosts(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return contructGraphForTimeUsageVsHostsFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQueryHosts(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForTimeUsageVsHostsFilterByProject(
graphType,
usageRecords,
aBSquery.getQueryHosts(),
aBSquery.getQueryProjects());
else
return constructGraphForTimeUsageVsHosts(
graphType,
usageRecords,
aBSquery.getQueryHosts());
}
// SUBMITHOST
else if (firstOption.equals(ABSQuery.SUBMITHOST)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForTimeUsegaVsSubmitHostsFilterByUsers(graphType, usageRecords,
aBSquery.getQuerySubmitHosts(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForTimeUsageVsSubmitHostsFilterByProducts(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return contructGraphForTimeUsageVsSubmitHostsFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForTimeUsageVsSubmitHostsFilterByProject(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts(),
aBSquery.getQueryProjects());
else
return contructGraphForTimeUsageVsSubmitHost(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts());
}
return null;
}
/**
* Constructs a billing JFreeChart graph
* @param aBSquery necessary query information to construct the graph
* @param graphType Type of Graph to be created
* @param usageRecords Usage Records from where to extract the information for the graph
* @return a JFreeChart of the specified type, <code>null</code> if the <code>graphType</code> is not correct.
*/
public static JFreeChart constructBillingGraph(
ABSQuery aBSquery,
String graphType,
Set<SmartLMUsageRecordType> usageRecords) {
String firstOption = aBSquery.getFirstOption();
String secondOption = aBSquery.getSecondOption();
// USER
if(firstOption.equals(ABSQuery.USER)) {
if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForBillingUsageVsUsersFilterByProduct(
graphType,
usageRecords,
aBSquery.getQueryUsers(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return constructGraphForBillingUsageVsUsersFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQueryUsers(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForBillingUsageVsUsersFilterByProject(graphType, usageRecords, aBSquery.getQueryUsers(), aBSquery.getQueryProjects());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForBillingUsageVsUsersFilterByHosts(graphType, usageRecords,
aBSquery.getQueryUsers(), aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForBillingUsageVsUsersFilterBySubmitHosts(graphType, usageRecords,
aBSquery.getQueryUsers(), aBSquery.getQuerySubmitHosts());
else return constructGraphForBillingUsageVsUsers(graphType, usageRecords, aBSquery.getQueryUsers());
}
// PRODUCT
else if (firstOption.equals(ABSQuery.PRODUCT)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForBillingUsegaVsProductsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryProducts(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return constructGraphForBillingUsegaVsProductsFilterByAccountingGroups(graphType, usageRecords,
aBSquery.getQueryProducts(), aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForBillingUsageVsProductsFilterByProjects(
graphType,
usageRecords,
aBSquery.getQueryProducts(),
aBSquery.getQueryProjects());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForBillingUsageVsProductFilterByHosts(
graphType,
usageRecords,
aBSquery.getQueryProducts(),
aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForBillingUsageVsProductFilterBySumbitHosts(
graphType,
usageRecords,
aBSquery.getQueryProducts(),
aBSquery.getQuerySubmitHosts());
else return constructGraphForBillingUsageVsProducts(graphType,
usageRecords,
aBSquery.getQueryProducts());
}
// ACCOUNTINGGROUP
else if(firstOption.equals(ABSQuery.ACCOUNTINGGROUP)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForBillingUsageVsAccountingGroupsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryAccountingGroups(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForBillingUsageVsAccountingGroupsFilterByProducts(graphType, usageRecords,
aBSquery.getQueryAccountingGroups(), aBSquery.getQueryProducts());
else if (secondOption.equals(ABSQuery.PROJECT))
return constructGraphForBillingUsageVsAccountingGroupFilterByProject(
graphType,
usageRecords,
aBSquery.getQueryAccountingGroups(),
aBSquery.getQueryProjects());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForBillingUsageVsAccountingGroupFilterByHost(
graphType,
usageRecords,
aBSquery.getQueryAccountingGroups(),
aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForBillingUsageVsAccountingGroupFilterBySubmitHost(
graphType,
usageRecords,
aBSquery.getQueryAccountingGroups(),
aBSquery.getQuerySubmitHosts());
else
return constructGraphForBillingUsageVsAccountingGroups(graphType, usageRecords,
aBSquery.getQueryAccountingGroups());
}
//PROJECT
else if(firstOption.equals(ABSQuery.PROJECT)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForBillingUsageVsProjectsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryProjects(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForBillingUsageVSProjectsFilterByProducts(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return constructGraphForBillingUsageVSProjectFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.HOST))
return constructGraphForBillingUsageVSProjectFilterByHost(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQueryHosts());
else if(secondOption.equals(ABSQuery.SUBMITHOST))
return constructGraphForBillingUsageVSProjectFilterBySumbitHost(
graphType,
usageRecords,
aBSquery.getQueryProjects(),
aBSquery.getQuerySubmitHosts());
else
return constructGraphForBillingUsageVsProjects(graphType, usageRecords,
aBSquery.getQueryProjects());
}
// HOST
else if (firstOption.equals(ABSQuery.HOST)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForBillingUsegaVsHostsFilterByUsers(graphType, usageRecords,
aBSquery.getQueryHosts(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForBillingUsageVsHostsFilterByProducts(
graphType,
usageRecords,
aBSquery.getQueryHosts(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return contructGraphForBillingUsageVsHostsFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQueryHosts(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForBillingUsageVsHostsFilterByProject(
graphType,
usageRecords,
aBSquery.getQueryHosts(),
aBSquery.getQueryProjects());
else
return constructGraphForBillingUsageVsHosts(
graphType,
usageRecords,
aBSquery.getQueryHosts());
}
// SUBMITHOST
else if (firstOption.equals(ABSQuery.SUBMITHOST)) {
if (secondOption.equals(ABSQuery.USER))
return constructGraphForBillingUsegaVsSubmitHostsFilterByUsers(graphType, usageRecords,
aBSquery.getQuerySubmitHosts(), aBSquery.getQueryUsers());
else if(secondOption.equals(ABSQuery.PRODUCT))
return constructGraphForBillingUsageVsSubmitHostsFilterByProducts(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts(),
aBSquery.getQueryProducts());
else if(secondOption.equals(ABSQuery.ACCOUNTINGGROUP))
return contructGraphForBillingUsageVsSubmitHostsFilterByAccountingGroup(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts(),
aBSquery.getQueryAccountingGroups());
else if(secondOption.equals(ABSQuery.PROJECT))
return constructGraphForBillingUsageVsSubmitHostsFilterByProject(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts(),
aBSquery.getQueryProjects());
else
return contructGraphForBillingUsageVsSubmitHost(
graphType,
usageRecords,
aBSquery.getQuerySubmitHosts());
}
return null;
}
}