newChildren.add(lp);
	protected Object[] combineSamePackagesIntoLogialPackages(IPackageFragment[] children) {		if (!fCompoundState)			return children;		Set newChildren= new HashSet();		for (int i= 0; i < children.length; i++) {			IPackageFragment fragment=  children[i];						if (fragment == null)				continue;						LogicalPackage lp= findLogicalPackage(fragment);			if (lp != null) {				if (lp.belongs(fragment)) {					lp.add(fragment);				}				newChildren.add(lp);			} else {				String key= getKey(fragment);				IPackageFragment frag= (IPackageFragment)fMapToPackageFragments.get(key);				if (frag != null && !fragment.equals(frag)) {					lp= new LogicalPackage(frag);					lp.add(fragment);					newChildren.remove(frag);					newChildren.add(lp);					fMapToLogicalPackage.put(key, lp);					fMapToPackageFragments.remove(frag);				} else {					fMapToPackageFragments.put(key, fragment);					newChildren.add(fragment);				}			}		}		return newChildren.toArray();	}