Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static ArrayList<ProjectFile> MakeChildren(ProjectFile project, double maxDuration, double maxCost)
- {
- ArrayList<ProjectFile> childrenProjects = new ArrayList<ProjectFile>();
- List<Task> tasks = ResourceAssignmentUtilities.getTasksWithoutAssignments(project);
- if (!tasks.isEmpty())
- {
- Task task = tasks.get(0);
- tasks.clear();
- Qualification qual1 = SkillsUtilities.strToQualification(task.getText(1));
- List<Resource> resources = SkillsUtilities.resourcesMatchingQualification(qual1, project.getAllResources());
- for (Resource resource : resources)
- {
- ProjectFile temp = ProjectCloner.createBaseProject(project,true);
- Task taskTemp = TaskUtilities.findTaskOnList(temp.getAllTasks(), task.getName());
- Resource resourceTemp = ResourceUtilities.findResource(temp.getAllResources(), resource.getName());
- ResourceAssignment ra = taskTemp.addResourceAssignment(resourceTemp);
- ra.setStart(taskTemp.getStart());
- ra.setWork(taskTemp.getDuration());
- ra.setRemainingWork(ra.getWork());
- ra.setCost(ra.getWork().getDuration() * resourceTemp.getStandardRate().getAmount());
- ConflictFixer.pack(temp);
- ConflictFixer.fixConflicts(temp);
- if ((optimalizationMethod == OptimalizationMethod.DurationOpt && Eval.getProjectDuration(temp) <= maxDuration)
- || (optimalizationMethod == OptimalizationMethod.CostOpt && Eval.getProjectCost(temp) <= maxCost))
- childrenProjects.add(temp);
- }
- resources.clear();
- }
- return childrenProjects;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement