blob: 874d39b8c552ea0fa73703d8f029c144f2d4b285 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.edit.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.common.util.AbstractTreeIterator;
import org.eclipse.epf.uma.Section;
import org.eclipse.epf.uma.Task;
import org.eclipse.epf.uma.VariabilityElement;
import org.eclipse.epf.uma.util.AssociationHelper;
/**
* This class defines static helper methods that are related to content element
* inheritance.
*
* @author Phong Nguyen Le
* @since 1.0
*/
public final class ContentElementInheritanceHelper {
private static List descendingSortByCreationTime(List tasks) {
return tasks;
}
// private static void addSteps(List steps, Task base) {
// Object first = null;
// if(!steps.isEmpty()) {
// first = steps.get(0);
// }
// List tasks = AssociationHelper.getImmediateVarieties(base);
// int size = tasks.size();
// for(int i = 0; i < size; i++) {
// Task task = (Task) tasks.get(i);
// List sections = task.getPresentation().getSections();
// int numOfSections = sections.size();
// Section prev = null;
// for (int j = 0; j < numOfSections; j++) {
// Section section = (Section) sections.get(j);
// Section pred = section.getPredecessor();
// if(pred == null) {
// }
// }
// }
// }
/**
* Gets all steps in the task tree that the given task belongs to
*
* @param task
* @return
*/
public static List getAllTaskSteps(Task task) {
Task base = (Task) TngUtil.getBase(task);
List steps = new ArrayList(base.getPresentation().getSections());
Iterator tasks = new AbstractTreeIterator(base, false) {
protected Iterator getChildren(Object object) {
return AssociationHelper.getImmediateVarieties(
(VariabilityElement) object).iterator();
}
};
Task currentBase = base;
while (tasks.hasNext()) {
Task t = (Task) tasks.next();
if (currentBase != t.getVariabilityBasedOnElement()) {
// new inheritance level
//
currentBase = (Task) t.getVariabilityBasedOnElement();
}
for (Iterator iter = t.getPresentation().getSections().iterator(); iter
.hasNext();) {
Section s = (Section) iter.next();
Section pred = s.getPredecessor();
if (pred != null) {
}
}
}
return steps;
}
}