| package org.eclipse.epf.library.edit.uma; |
| |
| import java.util.ArrayList; |
| import java.util.HashSet; |
| import java.util.List; |
| import java.util.Set; |
| import org.eclipse.epf.uma.util.UmaUtil; |
| |
| import org.eclipse.epf.uma.Descriptor; |
| |
| public class DescriptorExt extends MethodElementExt { |
| |
| private Descriptor greenParent; |
| private Set<Descriptor> customizingChildSet; |
| |
| public DescriptorExt (Descriptor des) { |
| super(des); |
| } |
| |
| public void setGreenParent(Descriptor greenParent) { |
| this.greenParent = greenParent; |
| } |
| |
| public Descriptor getGreenParent() { |
| return greenParent; |
| } |
| |
| public Descriptor getDescriptor() { |
| return (Descriptor) getElement(); |
| } |
| |
| public List<? extends Descriptor> getCustomizingChildren() { |
| List<Descriptor> children = new ArrayList<Descriptor>(); |
| List<Descriptor> toRemoveList = null; |
| if (customizingChildSet != null && !customizingChildSet.isEmpty()) { |
| for (Descriptor des : customizingChildSet) { |
| if (UmaUtil.isInLibrary(des)) { |
| children.add(des); |
| } else { |
| if (toRemoveList == null) { |
| toRemoveList = new ArrayList<Descriptor>(); |
| } |
| toRemoveList.add(des); |
| } |
| } |
| if (toRemoveList != null) { |
| customizingChildSet.removeAll(toRemoveList); |
| } |
| } |
| return children; |
| } |
| |
| public void addToCustomizingChildren(Descriptor child) { |
| if (child == null) { |
| return; |
| } |
| if (customizingChildSet == null) { |
| customizingChildSet = new HashSet<Descriptor>(); |
| } |
| customizingChildSet.add(child); |
| } |
| |
| } |