Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Accounting and Billing Portal
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[abportal] View of /src/main/java/eu/smartlm/abs/portal/data/query/ws/EBSServiceClient.java
[abportal] / src / main / java / eu / smartlm / abs / portal / data / query / ws / EBSServiceClient.java Repository:
ViewVC logotype

View of /src/main/java/eu/smartlm/abs/portal/data/query/ws/EBSServiceClient.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (download) (annotate)
Wed Jul 28 10:05:51 2010 UTC (13 years, 9 months ago) by dgarcia
File size: 16557 byte(s)
First code commit
package eu.smartlm.abs.portal.data.query.ws;

import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import org.apache.axis2.AxisFault;
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 eu.smartlm.abs.portal.data.query.QueryConstructor;
import eu.smartlm.ebs.client.EBServiceClient;
import eu.smartlm.ebs.ws.ListOfAccountingGroupsInputDocument;
import eu.smartlm.ebs.ws.ListOfAccountingGroupsOutputDocument;
import eu.smartlm.ebs.ws.ListOfHostsInputDocument;
import eu.smartlm.ebs.ws.ListOfHostsOutputDocument;
import eu.smartlm.ebs.ws.ListOfInputType;
import eu.smartlm.ebs.ws.ListOfProductsInputDocument;
import eu.smartlm.ebs.ws.ListOfProductsOutputDocument;
import eu.smartlm.ebs.ws.ListOfProjectsInputDocument;
import eu.smartlm.ebs.ws.ListOfProjectsOutputDocument;
import eu.smartlm.ebs.ws.ListOfSmartLMUsageRecordsInputDocument;
import eu.smartlm.ebs.ws.ListOfSmartLMUsageRecordsOutputDocument;
import eu.smartlm.ebs.ws.ListOfSubmitFeaturesInputDocument;
import eu.smartlm.ebs.ws.ListOfSubmitFeaturesOutputDocument;
import eu.smartlm.ebs.ws.ListOfSubmitHostsInputDocument;
import eu.smartlm.ebs.ws.ListOfSubmitHostsOutputDocument;
import eu.smartlm.ebs.ws.ListOfUsersInputDocument;
import eu.smartlm.ebs.ws.ListOfUsersOutputDocument;
import eu.smartlm.ebs.ws.SetType;
import eu.smartlm.schemas.x2009.x06.urec.FeatureType;
import eu.smartlm.schemas.x2009.x06.urec.ProductType;
import eu.smartlm.schemas.x2009.x06.urec.SmartLMUsageRecordType;


/**
 * Web-service client to retrieve the accounting and billing data from the Accounting and Billing server
 * @author David Garcia Perez - CESGA
 */
public class EBSServiceClient implements QueryConstructor {
	private EBServiceClient stub;
	
	public void setUpConnection(String url, String rampartRepo, String clientProperties) {
		try {
			stub = EBServiceClient.getInstance(rampartRepo, clientProperties, url);
		} catch (Exception e) {
			System.out.println("Exception creating stub: " + e);
		}
	}

	public Set<String> getListOfAccountingGroups(Date startDate, Date endDate,
			Set<String> filterByUsers, Set<String> filterByProduct,
			Set<String> filterByProject, Set<String> filterByHost,
			Set<String> filterBySubmitHost, Set<String> filterByFeature,
			Set<String> filterByAccountingGroups) {

		ListOfAccountingGroupsInputDocument inputDocument = ListOfAccountingGroupsInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfAccountingGroupsInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfAccountingGroupsOutputDocument outputDocument = ListOfAccountingGroupsOutputDocument.Factory.newInstance();;
		
		try {
			 outputDocument = stub.getListOfAccountingGroups(inputDocument);
		} catch (AxisFault e) {
			System.out.println("Exception getting the list of accounting groups " + e);
			return new HashSet<String>();
		} catch (Exception e) {
			System.out.println("Error getting the list of Users: " + e);
		}
		
		Set<String> output = new HashSet<String>();
		
		if(outputDocument != null) {
			SetType[] sets = outputDocument.getListOfAccountingGroupsOutput().getSetArray();
			for(int i = 0; i < sets.length; i++) {
				output.add(sets[i].getStringValue1Array(0));
			}
		}
			
		return output;
	}

	public Set<Host> getListOfHosts(Date startDate, Date endDate,
			Set<String> filterByUsers, Set<String> filterByProduct,
			Set<String> filterByProject, Set<String> filterByHost,
			Set<String> filterBySubmitHost, Set<String> filterByFeature,
			Set<String> filterByAccountingGroups) {
		
		ListOfHostsInputDocument inputDocument = ListOfHostsInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfHostsInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfHostsOutputDocument outputDocument = ListOfHostsOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfHosts(inputDocument);
		} catch (AxisFault e) {
			return new HashSet<Host>();
		} catch (Exception e) {
			System.out.println("Error getting the list of Users: " + e);
		}
		
		Set<Host> output = new HashSet<Host>();
		
		if(outputDocument != null) {
			Host[] hosts = outputDocument.getListOfHostsOutput().getHostArray();
			
			for(int i = 0; i < hosts.length; i++) {
				Host host = (Host) hosts[i];
				output.add(host);
			}
		}
		
		return output; 
	}

	public Set<ProductType> getListOfProducts(Date startDate, Date endDate,
			Set<String> filterByUsers, Set<String> filterByProduct,
			Set<String> filterByProject, Set<String> filterByHost,
			Set<String> filterBySubmitHost, Set<String> filterByFeature,
			Set<String> filterByAccountingGroups) {
		
		ListOfProductsInputDocument inputDocument = ListOfProductsInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfProductsInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfProductsOutputDocument outputDocument = ListOfProductsOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfProducts(inputDocument);
		} catch (AxisFault e) {
			System.out.println("Exception getting the list of Products " + e);
			return new HashSet<ProductType>();
		} catch (Exception e) {
			System.out.println("Error getting the list of Users: " + e);
		}
		
		Set<ProductType> output = new HashSet<ProductType>();
		
		if(outputDocument != null) {
			ProductType[] products = outputDocument.getListOfProductsOutput().getProductTypeArray();
			for(int i = 0; i < products.length; i++) {
				output.add((ProductType) products[i]);
			}
		}
		
		return output; 
	}

	public Set<ProjectName> getListOfProjects(Date startDate, Date endDate,
			Set<String> filterByUsers, Set<String> filterByProduct,
			Set<String> filterByProject, Set<String> filterByHost,
			Set<String> filterBySubmitHost, Set<String> filterByFeature,
			Set<String> filterByAccountingGroups) {
		
		ListOfProjectsInputDocument inputDocument = ListOfProjectsInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfProjectsInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfProjectsOutputDocument outputDocument = ListOfProjectsOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfProjects(inputDocument);
		} catch (AxisFault e) {
			System.out.println("Exception getting the list of Projects " + e);
			return new HashSet<ProjectName>();
		} catch (Exception e) {
			System.out.println("Error getting the list of Projects: " + e);
		}
		
		Set<ProjectName> output = new HashSet<ProjectName>();
		
		if(outputDocument != null) {
			ProjectName[] projects = outputDocument.getListOfProjectsOutput().getProjectNameArray();
			for(int i = 0; i < projects.length; i++) {
				output.add( (ProjectName) projects[i]);
			}
		}
		
		return output; 
	}

	public Set<SmartLMUsageRecordType> getListOfSmartLMUsageRecords(
			Date startDate, Date endDate, Set<String> filterByUsers,
			Set<String> filterByProduct, Set<String> filterByProject,
			Set<String> filterByHost, Set<String> filterBySubmitHost,
			Set<String> filterByFeature, Set<String> filterByAccountingGroups) {
		
		ListOfSmartLMUsageRecordsInputDocument inputDocument = ListOfSmartLMUsageRecordsInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfSmartLMUsageRecordsInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfSmartLMUsageRecordsOutputDocument outputDocument = ListOfSmartLMUsageRecordsOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfSmartLMUsageRecords(inputDocument);
		} catch (AxisFault e) {
			System.out.println("Exception getting the list of usage records " + e);
			return new HashSet<SmartLMUsageRecordType>();
		} catch (Exception e) {
			System.out.println("Error getting the list of SmartLM Usage Records: " + e);
		}
		
		Set<SmartLMUsageRecordType> output = new HashSet<SmartLMUsageRecordType>();
		
		if(outputDocument != null) {
			SmartLMUsageRecordType[] smartLMUsageRecords = outputDocument.getListOfSmartLMUsageRecordsOutput().getSmartLMUsageRecordArray();
			for(int i = 0; i < smartLMUsageRecords.length; i++) {
				output.add( (SmartLMUsageRecordType) smartLMUsageRecords[i]);
			}
		}
		
		return output; 
	}

	public Set<FeatureType> getListOfSubmitFeatures(Date startDate,
			Date endDate, Set<String> filterByUsers,
			Set<String> filterByProduct, Set<String> filterByProject,
			Set<String> filterByHost, Set<String> filterBySubmitHost,
			Set<String> filterByFeature, Set<String> filterByAccountingGroups) {
		
		ListOfSubmitFeaturesInputDocument inputDocument = ListOfSubmitFeaturesInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfSubmitFeaturesInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfSubmitFeaturesOutputDocument outputDocument = ListOfSubmitFeaturesOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfSubmitFeatures(inputDocument);
		} catch (AxisFault e) {
			System.out.println("Exception getting the list of features" + e);
			return new HashSet<FeatureType>();
		} catch (Exception e) {
			System.out.println("Error getting the list of Features: " + e);
		}
		
		Set<FeatureType> output = new HashSet<FeatureType>();
		
		if(outputDocument != null) {
			FeatureType[] features = outputDocument.getListOfSubmitFeaturesOutput().getFeatureTypeArray();
			for(int i = 0; i < features.length; i++) {
				output.add((FeatureType) features[i]);
			}
		}
		
		return output; 
	}

	public Set<SubmitHost> getListOfSubmitHosts(Date startDate, Date endDate,
			Set<String> filterByUsers, Set<String> filterByProduct,
			Set<String> filterByProject, Set<String> filterByHost,
			Set<String> filterBySubmitHost, Set<String> filterByFeature,
			Set<String> filterByAccountingGroups) {
		
		ListOfSubmitHostsInputDocument inputDocument = ListOfSubmitHostsInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfSubmitHostsInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfSubmitHostsOutputDocument outputDocument = ListOfSubmitHostsOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfSubmitHosts(inputDocument);
		}catch (AxisFault e) {
			return new HashSet<SubmitHost>();
		} catch (Exception e) {
			System.out.println("Error getting the list of SubmitHosts: " + e);
		}
		
		Set<SubmitHost> output = new HashSet<SubmitHost>();
		
		if(outputDocument != null) {
			SubmitHost[] submitHosts = outputDocument.getListOfSubmitHostsOutput().getSubmitHostArray();
			for(int i = 0; i < submitHosts.length; i++) {
				output.add((SubmitHost) submitHosts[i]);
			}
		}
		
		return output; 
	}

	public Set<UserIdentity> getListOfUsers(Date startDate, Date endDate,
			Set<String> filterByUsers, Set<String> filterByProduct,
			Set<String> filterByProject, Set<String> filterByHost,
			Set<String> filterBySubmitHost, Set<String> filterByFeature,
			Set<String> filterByAccountingGroups) {
		
		ListOfUsersInputDocument inputDocument = ListOfUsersInputDocument.Factory.newInstance();
		ListOfInputType input = inputDocument.addNewListOfUsersInput();
		setInput(input, 
				 startDate, 
				 endDate, 
				 filterByUsers, 
				 filterByProduct, 
				 filterByProject, 
				 filterByHost,
				 filterBySubmitHost, 
				 filterByFeature,
				 filterByAccountingGroups);

		ListOfUsersOutputDocument outputDocument = ListOfUsersOutputDocument.Factory.newInstance();
		
		try {
			 outputDocument = stub.getListOfUsers(inputDocument);
		} catch (AxisFault e) {
			System.out.println("Exception getting the list of users: " + e);
			return new HashSet<UserIdentity>();
		} catch (Exception e) {
			System.out.println("Error getting the list of Users: " + e);
		}

		Set<UserIdentity> output = new HashSet<UserIdentity>();

		if(outputDocument != null) {
			UserIdentity[] users = outputDocument.getListOfUsersOutput().getUserIdentityArray();
			for(int i = 0; i < users.length; i++) {
				output.add((UserIdentity) users[i]);
			}
		}
		
		return output; 
	}
	
	private Calendar getCalendar(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		
		return calendar;
	}
	
	private void setInput(ListOfInputType input,
						  Date startDate, Date endDate,
						  Set<String> filterByUsers, 
						  Set<String> filterByProduct,
						  Set<String> filterByProject, 
						  Set<String> filterByHost,
						  Set<String> filterBySubmitHost, 
						  Set<String> filterByFeature,
						  Set<String> filterByAccountingGroups) {
		
		input.setStartDate(getCalendar(startDate));
		input.setEndDate(getCalendar(endDate));
		
		String[] filterByUsersArray = new String[filterByUsers.size()];
		String[] filterByProductArray = new String[filterByProduct.size()];
		String[] filterByProjectArray = new String[filterByProject.size()];
		String[] filterByHostArray = new String[filterByProject.size()];
		String[] filterBySubmitHostArray = new String[filterBySubmitHost.size()];
		String[] filterByFeatureArray = new String[filterByFeature.size()];
		String[] filterByAccountingGroupsArray = new String[filterByAccountingGroups.size()];
		
		// Users
		int i = 0;
		for(String user : filterByUsers) {
			filterByUsersArray[i] = user;
			i++;
		}
		SetType setofUsers = input.addNewFilterByUser();
		setofUsers.setStringValue1Array(filterByUsersArray);
		input.setFilterByUser(setofUsers);
		
		// Product
		i = 0;
		for(String product : filterByProduct) {
			filterByProductArray[i] = product;
			i++;
		}
		SetType setOfProducts = input.addNewFilterByProduct();
		setOfProducts.setStringValue1Array(filterByProductArray);
		input.setFilterByProduct(setOfProducts);
		
		//Project
		i = 0;
		for(String project : filterByProject) {
			filterByProjectArray[i] = project;
			i++;
		}
		SetType setOfProjects = input.addNewFilterByProject();
		setOfProjects.setStringValue1Array(filterByProjectArray);
		input.setFilterByProject(setOfProjects);
			
		// Host
		i = 0;
		for(String host : filterByHost) {
			filterByHostArray[i] = host;
			i++;
		}
		SetType setOfHosts = input.addNewFilterByHost();
		setOfHosts.setStringValue1Array(filterByHostArray);
		input.setFilterByHost(setOfHosts);
		
		//SubmitHost
		i = 0;
		for(String submitHost : filterBySubmitHost) {
			filterBySubmitHostArray[i] = submitHost;
			i++;
		}
		SetType setOfSubmitHosts = input.addNewFilterBySubmitHost();
		setOfSubmitHosts.setStringValue1Array(filterBySubmitHostArray);
		input.setFilterBySubmitHost(setOfSubmitHosts);
		
		// Feature
		i = 0;
		for(String feature : filterByFeature) {
			filterByFeatureArray[i] = feature;
			i++;
		}
		SetType setOfFeatures = input.addNewFilterByFeature();
		setOfFeatures.setStringValue1Array(filterByFeatureArray);
		input.setFilterByFeature(setOfFeatures);
		
		// Accounting Groups
		i = 0;
		for(String accountingGroup : filterByAccountingGroups) {
			filterByAccountingGroupsArray[i] = accountingGroup;
			i++;
		}
		SetType setOfAccountingGroups = input.addNewFilterByAccountingGroups();
		setOfAccountingGroups.setStringValue1Array(filterByAccountingGroupsArray);
		input.setFilterByAccountingGroups(setOfAccountingGroups);		
	}
}

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge