Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2000, 2013 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 API and implementation /
 
 package org.eclipse.jdt.internal.core;
 
 import java.net.URL;
 import java.util.Map;
 
 import  org.eclipse.core.resources.IContainer;
 import  org.eclipse.core.resources.IFolder;
 import  org.eclipse.core.resources.IResource;
 import  org.eclipse.core.runtime.CoreException;
 import  org.eclipse.core.runtime.IPath;
 import  org.eclipse.core.runtime.IProgressMonitor;
 import  org.eclipse.core.runtime.IStatus;
 import  org.eclipse.core.runtime.OperationCanceledException;
 import  org.eclipse.core.runtime.Path;

See also:
IPackageFragment
 
 public class PackageFragment extends Openable implements IPackageFragment, SuffixConstants {
Constant empty list of class files
 
 	protected static final IClassFile[] NO_CLASSFILES = new IClassFile[] {};
Constant empty list of compilation units
 
 	protected static final ICompilationUnit[] NO_COMPILATION_UNITS = new ICompilationUnit[] {};
 
 	public String[] names;
 
 protected PackageFragment(PackageFragmentRoot rootString[] names) {
 	super(root);
 	this. = names;
 }

See also:
Openable
 
 protected boolean buildStructure(OpenableElementInfo info, IProgressMonitor pmMap newElements, IResource underlyingResourcethrows JavaModelException {
 	// add compilation units/class files from resources
 	HashSet vChildren = new HashSet();
 	int kind = getKind();
 	try {
 		char[][] inclusionPatterns = root.fullInclusionPatternChars();
 		char[][] exclusionPatterns = root.fullExclusionPatternChars();
 		IResource[] members = ((IContainer) underlyingResource).members();
 		int length = members.length;
 		if (length > 0) {
 			IJavaProject project = getJavaProject();
 			String sourceLevel = project.getOption(.true);
 			String complianceLevel = project.getOption(.true);
 			for (int i = 0; i < lengthi++) {
 				IResource child = members[i];
 				if (child.getType() != IResource.FOLDER
 						&& !Util.isExcluded(childinclusionPatternsexclusionPatterns)) {
 					IJavaElement childElement;
 					if (kind == . && Util.isValidCompilationUnitName(child.getName(), sourceLevelcomplianceLevel)) {
 						childElement = new CompilationUnit(thischild.getName(), .);
 						vChildren.add(childElement);
 					} else if (kind == . && Util.isValidClassFileName(child.getName(), sourceLevelcomplianceLevel)) {
 						childElement = getClassFile(child.getName());
 						vChildren.add(childElement);
 					}
 				}
 			}
 		}
 	} catch (CoreException e) {
 		throw new JavaModelException(e);
 	}
 
 	if (kind == .) {
		// add primary compilation units
		for (int i = 0, length = primaryCompilationUnits.lengthi < lengthi++) {
			ICompilationUnit primary = primaryCompilationUnits[i];
			vChildren.add(primary);
		}
	}
	IJavaElement[] children = new IJavaElement[vChildren.size()];
	vChildren.toArray(children);
	info.setChildren(children);
	return true;
Returns true if this fragment contains at least one java resource. Returns false otherwise.
public boolean containsJavaResources() throws JavaModelException {

See also:
ISourceManipulation
public void copy(IJavaElement containerIJavaElement siblingString renameboolean force, IProgressMonitor monitorthrows JavaModelException {
	if (container == null) {
	}
	IJavaElement[] elementsnew IJavaElement[] {this};
	IJavaElement[] containersnew IJavaElement[] {container};
	IJavaElement[] siblingsnull;
	if (sibling != null) {
		siblingsnew IJavaElement[] {sibling};
	}
	String[] renamingsnull;
	if (rename != null) {
		renamingsnew String[] {rename};
	}
	getJavaModel().copy(elementscontainerssiblingsrenamingsforcemonitor);

See also:
IPackageFragment
public ICompilationUnit createCompilationUnit(String cuNameString contentsboolean force, IProgressMonitor monitorthrows JavaModelException {
	CreateCompilationUnitOperation opnew CreateCompilationUnitOperation(thiscuNamecontentsforce);
	op.runOperation(monitor);
	return new CompilationUnit(thiscuName.);

See also:
JavaElement
protected Object createElementInfo() {
	return new PackageFragmentInfo();

See also:
ISourceManipulation
public void delete(boolean force, IProgressMonitor monitorthrows JavaModelException {
	IJavaElement[] elements = new IJavaElement[] {this};
	getJavaModel().delete(elementsforcemonitor);
public boolean equals(Object o) {
	if (this == oreturn true;
	if (!(o instanceof PackageFragment)) return false;
	return Util.equalArraysOrNull(this.other.names) &&
			this..equals(other.parent);
public boolean exists() {
	// super.exist() only checks for the parent and the resource existence
	// so also ensure that:
	//  - the package is not excluded (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=138577)
	//  - its name is valide (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=108456)
	return super.exists() && !Util.isExcluded(this) && isValidPackageName();

Throws:
IllegalArgumentException if the name does not end with ".class"
See also:
IPackageFragment.getClassFile(String)
public IClassFile getClassFile(String classFileName) {
	if (!org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(classFileName)) {
	}
	// don't hold on the .class file extension to save memory
	// also make sure to not use substring as the resulting String may hold on the underlying char[] which might be much bigger than necessary
	int length = classFileName.length() - 6;
	char[] nameWithoutExtension = new char[length];
	classFileName.getChars(0, lengthnameWithoutExtension, 0);
	return new ClassFile(thisnew String(nameWithoutExtension));
Returns a the collection of class files in this - a folder package fragment which has a root that has its kind set to IPackageFragmentRoot.K_Source does not recognize class files.

See also:
IPackageFragment.getClassFiles()
	}
	ArrayList list = getChildrenOfType(CLASS_FILE);
	IClassFile[] arraynew IClassFile[list.size()];
	list.toArray(array);
	return array;

Throws:
IllegalArgumentException if the name does not end with ".java"
See also:
IPackageFragment.getCompilationUnit(String)
	if (!org.eclipse.jdt.internal.core.util.Util.isJavaLikeFileName(cuName)) {
	}
	return new CompilationUnit(thiscuName.);

See also:
IPackageFragment.getCompilationUnits()
	}
	ArrayList list = getChildrenOfType(COMPILATION_UNIT);
	ICompilationUnit[] arraynew ICompilationUnit[list.size()];
	list.toArray(array);
	return array;

See also:
IPackageFragment.getCompilationUnits(WorkingCopyOwner)
	ICompilationUnit[] workingCopies = JavaModelManager.getJavaModelManager().getWorkingCopies(ownerfalse/*don't add primary*/);
	if (workingCopies == nullreturn .;
	int length = workingCopies.length;
	ICompilationUnit[] result = new ICompilationUnit[length];
	int index = 0;
	for (int i = 0; i < lengthi++) {
		ICompilationUnit wc = workingCopies[i];
		if (equals(wc.getParent()) && !Util.isExcluded(wc)) { // 59933 - excluded wc shouldn't be answered back
			result[index++] = wc;
		}
	}
	if (index != length) {
		System.arraycopy(result, 0, result = new ICompilationUnit[index], 0, index);
	}
	return result;
	if (this..length == 0)
		return DEFAULT_PACKAGE_NAME;
	return Util.concatWith(this.'.');

See also:
IJavaElement
public int getElementType() {
	return PACKAGE_FRAGMENT;
/*
 * @see JavaElement
 */
	switch (token.charAt(0)) {
		case JEM_CLASSFILE:
			if (!memento.hasMoreTokens()) return this;
			String classFileName = memento.nextToken();
			JavaElement classFile = (JavaElement)getClassFile(classFileName);
			return classFile.getHandleFromMemento(mementoowner);
		case JEM_COMPILATIONUNIT:
			if (!memento.hasMoreTokens()) return this;
			String cuName = memento.nextToken();
			JavaElement cu = new CompilationUnit(thiscuNameowner);
			return cu.getHandleFromMemento(mementoowner);
	}
	return null;

See also:
JavaElement.getHandleMementoDelimiter()
protected char getHandleMementoDelimiter() {

See also:
IPackageFragment.getKind()
public int getKind() throws JavaModelException {
Returns an array of non-java resources contained in the receiver.
		// We don't want to show non java resources of the default package (see PR #1G58NB8)
else {
	}

See also:
IJavaElement.getPath()
public IPath getPath() {
	if (root.isArchive()) {
		return root.getPath();
else {
		IPath path = root.getPath();
		for (int i = 0, length = this..lengthi < lengthi++) {
			String name = this.[i];
			path = path.append(name);
		}
		return path;
	}

See also:
JavaElement.resource()
public IResource resource(PackageFragmentRoot root) {
	int length = this..length;
	if (length == 0) {
		return root.resource(root);
else {
		IPath path = new Path(this.[0]);
		for (int i = 1; i < lengthi++)
			path = path.append(this.[i]);
		return ((IContainer)root.resource(root)).getFolder(path);
	}

See also:
IJavaElement.getUnderlyingResource()
public IResource getUnderlyingResource() throws JavaModelException {
	IResource rootResource = this..getUnderlyingResource();
	if (rootResource == null) {
		//jar package fragment root that has no associated resource
		return null;
	}
	// the underlying resource may be a folder or a project (in the case that the project folder
	// is atually the package fragment root)
	if (rootResource.getType() == IResource.FOLDER || rootResource.getType() == IResource.PROJECT) {
		IContainer folder = (IContainer) rootResource;
		String[] segs = this.;
		for (int i = 0; i < segs.length; ++i) {
			IResource child = folder.findMember(segs[i]);
			if (child == null || child.getType() != IResource.FOLDER) {
			}
			folder = (IFolder) child;
		}
		return folder;
else {
		return rootResource;
	}
public int hashCode() {
	int hash = this..hashCode();
	for (int i = 0, length = this..lengthi < lengthi++)
		hash = Util.combineHashCodes(this.[i].hashCode(), hash);
	return hash;

See also:
IParent
public boolean hasChildren() throws JavaModelException {
	return getChildren().length > 0;

See also:
IPackageFragment.hasSubpackages()
public boolean hasSubpackages() throws JavaModelException {
	int namesLength = this..length;
	nextPackage: for (int i= 0, length = packages.lengthi < lengthi++) {
		String[] otherNames = ((PackageFragmentpackages[i]).;
		if (otherNames.length <= namesLengthcontinue nextPackage;
		for (int j = 0; j < namesLengthj++)
			if (!this.[j].equals(otherNames[j]))
				continue nextPackage;
		return true;
	}
	return false;

See also:
IPackageFragment.isDefaultPackage()
public boolean isDefaultPackage() {
	return this..length == 0;
private boolean isValidPackageName() {
	JavaProject javaProject = (JavaProjectgetJavaProject();
	String sourceLevel = javaProject.getOption(.true);
	String complianceLevel = javaProject.getOption(.true);
	for (int i = 0, length = this..lengthi < lengthi++) {
		if (!Util.isValidFolderNameForPackage(this.[i], sourceLevelcomplianceLevel))
			return false;
	}
	return true;

See also:
ISourceManipulation.move(IJavaElement, IJavaElement, String, boolean, IProgressMonitor)
public void move(IJavaElement containerIJavaElement siblingString renameboolean force, IProgressMonitor monitorthrows JavaModelException {
	if (container == null) {
	}
	IJavaElement[] elementsnew IJavaElement[] {this};
	IJavaElement[] containersnew IJavaElement[] {container};
	IJavaElement[] siblingsnull;
	if (sibling != null) {
		siblingsnew IJavaElement[] {sibling};
	}
	String[] renamingsnull;
	if (rename != null) {
		renamingsnew String[] {rename};
	}
	getJavaModel().move(elementscontainerssiblingsrenamingsforcemonitor);

See also:
ISourceManipulation.rename(String, boolean, IProgressMonitor)
public void rename(String newNameboolean force, IProgressMonitor monitorthrows JavaModelException {
	if (newName == null) {
	}
	IJavaElement[] elementsnew IJavaElement[] {this};
	IJavaElement[] destsnew IJavaElement[] {getParent()};
	String[] renamingsnew String[] {newName};
	getJavaModel().rename(elementsdestsrenamingsforcemonitor);
Debugging purposes
protected void toStringChildren(int tabStringBuffer bufferObject info) {
	if (tab == 0) {
		super.toStringChildren(tabbufferinfo);
	}
Debugging purposes
protected void toStringInfo(int tabStringBuffer bufferObject infoboolean showResolvedInfo) {
	buffer.append(tabString(tab));
	if (this..length == 0) {
		buffer.append("<default>"); //$NON-NLS-1$
else {
		toStringName(buffer);
	}
	if (info == null) {
		buffer.append(" (not open)"); //$NON-NLS-1$
else {
		if (tab > 0) {
			buffer.append(" (...)"); //$NON-NLS-1$
		}
	}
/*
 * @see IJavaElement#getAttachedJavadoc(IProgressMonitor)
 */
public String getAttachedJavadoc(IProgressMonitor monitorthrows JavaModelException {
	PerProjectInfo projectInfo = JavaModelManager.getJavaModelManager().getPerProjectInfoCheckExistence(getJavaProject().getProject());
	String cachedJavadoc = null;
	synchronized (projectInfo.javadocCache) {
		cachedJavadoc = (StringprojectInfo.javadocCache.get(this);
	}
	if (cachedJavadoc != null) {
		return cachedJavadoc;
	}
	URL baseLocationgetJavadocBaseLocation();
	if (baseLocation == null) {
		return null;
	}
	StringBuffer pathBuffer = new StringBuffer(baseLocation.toExternalForm());
	if (!(pathBuffer.charAt(pathBuffer.length() - 1) == '/')) {
		pathBuffer.append('/');
	}
	String packPathgetElementName().replace('.''/');
	if (monitor != null && monitor.isCanceled()) throw new OperationCanceledException();
	String contents = getURLContents(String.valueOf(pathBuffer));
	if (monitor != null && monitor.isCanceled()) throw new OperationCanceledException();
	if (contents == nullreturn null;
	contents = (new JavadocContents(contents)).getPackageDoc();
	if (contents == nullcontents = ""//$NON-NLS-1$
	synchronized (projectInfo.javadocCache) {
		projectInfo.javadocCache.put(thiscontents);
	}
	return contents;
protected IStatus validateExistence(IResource underlyingResource) {
	// check that the name of the package is valid (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=108456)
	// check whether this pkg can be opened
	if (underlyingResource != null && !resourceExists(underlyingResource))
	// check that it is not excluded (https://bugs.eclipse.org/bugs/show_bug.cgi?id=138577)
	int kind;
	try {
		kind = getKind();
catch (JavaModelException e) {
		return e.getStatus();
	}
	if (kind == . && Util.isExcluded(this))
New to GrepCode? Check out our FAQ X