⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex7_42.txt

📁 j2ee core design patterns
💻 TXT
字号:
Example 7.42 	Implementing the Transfer Object Assembler 

public class ProjectDetailsAssembler 
implements javax.ejb.SessionBean {

	...

	public ProjectDetailsData getData(String projectId){ 

		// Construct the composite transfer object
		ProjectDetailsData pData = new 
			ProjectDetailsData();

		// get the project details; 
		ProjectHome projectHome = 
			ServiceLocator.getInstance().getLocalHome(
				"Project", ProjectEntityHome.class);
		ProjectEntity project = 
			projectHome.findByPrimaryKey(projectId);
		ProjectTO projTO = project.getData();
	
		// Add Project Info to ProjectDetailsData
		pData.projectData = projTO;

		//get the project manager details;
		ProjectManagerHome projectManagerHome = 
			ServiceLocator.getInstance().getLocalHome( 
				"ProjectManager", ProjectEntityHome.class);
	
		ProjectManagerEntity projectManager = 
			projectManagerHome.findByPrimaryKey(
				projTO.managerId);

		ProjectManagerTO projMgrTO = projectManager.getData();
	
		// Add ProjectManager info to ProjectDetailsData
		pData.projectManagerData = projMgrTO;

		// Get list of TaskTOs from the Project
		Collection projTaskList = project.getTasksList();

		// construct a list of TaskResourceTOs
		ArrayList listOfTasks = new ArrayList();
	
		Iterator taskIter = projTaskList.iterator();
		while (taskIter.hasNext()) {
			TaskTO task = (TaskTO) taskIter.next();

			//get the Resource details; 
			ResourceHome resourceHome = 
					ServiceLocator.getInstance().getLocalHome( 
					"Resource", ResourceEntityHome.class);
	
			ResourceEntity resource =
					resourceHome.findByPrimaryKey(
					task.assignedResourceId);

			ResourceTO resTO = resource.getResourceData();

			// construct a new TaskResourceTO using Task
			// and Resource data
			TaskResourceTO trTO =
					new TaskResourceTO( task.projectId, task.taskId,
					task.name, task.description, task.startDate,
					task.endDate, resTO);

			// add TaskResourceTO to the list
			listOfTasks.add(trTO);
		}

		// add list of tasks to ProjectDetailsData
		pData.listOfTasks = listOfTasks;

		// add any other data to the transfer object
		...
	
		// return the composite transfer object
		return pData;

	}
	...
}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -