1 /*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.jdt.internal.ui.packageview;
13 import java.util.ArrayList;
14 import java.util.List;
16 import org.eclipse.core.runtime.IAdaptable;
18 import org.eclipse.jface.resource.ImageDescriptor;
20 import org.eclipse.jdt.core.IClasspathEntry;
21 import org.eclipse.jdt.core.IJavaProject;
22 import org.eclipse.jdt.core.IPackageFragmentRoot;
23 import org.eclipse.jdt.core.JavaModelException;
25 import org.eclipse.jdt.internal.ui.JavaPluginImages;
27 public class LibraryContainer extends PackageFragmentRootContainer {
29 public LibraryContainer(IJavaProject project) {
34 public boolean equals(Object obj) {
35 if (obj instanceof LibraryContainer) {
36 LibraryContainer other = (LibraryContainer)obj;
37 return getJavaProject().equals(other.getJavaProject());
43 public int hashCode() {
44 return getJavaProject().hashCode();
48 public IAdaptable[] getChildren() {
49 return getPackageFragmentRoots();
54 public ImageDescriptor getImageDescriptor() {
55 return JavaPluginImages.DESC_OBJS_LIBRARY;
59 public String getLabel() {
60 return PackagesMessages.LibraryContainer_name;
64 * @see org.eclipse.jdt.internal.ui.packageview.PackageFragmentRootContainer#getPackageFragmentRoots()
67 public IPackageFragmentRoot[] getPackageFragmentRoots() {
68 List<IPackageFragmentRoot> list= new ArrayList<IPackageFragmentRoot>();
70 IPackageFragmentRoot[] roots= getJavaProject().getPackageFragmentRoots();
71 for (int i= 0; i < roots.length; i++) {
72 IPackageFragmentRoot root= roots[i];
73 int classpathEntryKind= root.getRawClasspathEntry().getEntryKind();
74 if (classpathEntryKind == IClasspathEntry.CPE_LIBRARY || classpathEntryKind == IClasspathEntry.CPE_VARIABLE) {
78 } catch (JavaModelException e) {
81 return list.toArray(new IPackageFragmentRoot[list.size()]);