Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2000, 2009 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.builder;
 
 
 import  org.eclipse.core.resources.*;
 import  org.eclipse.core.runtime.*;
 
 
 public class ClasspathDirectory extends ClasspathLocation {
 
 IContainer binaryFolder// includes .class files for a single directory
 boolean isOutputFolder;
 
 ClasspathDirectory(IContainer binaryFolderboolean isOutputFolderAccessRuleSet accessRuleSet) {
 	this. = binaryFolder;
 	this. = isOutputFolder || binaryFolder.getProjectRelativePath().isEmpty(); // if binaryFolder == project, then treat it as an outputFolder
 	this. = new SimpleLookupTable(5);
 	this. = accessRuleSet;
 }
 
 public void cleanup() {
 	this. = null;
 }
 
 String[] directoryList(String qualifiedPackageName) {
 	String[] dirList = (String[]) this..get(qualifiedPackageName);
 	if (dirList == this.return null// package exists in another classpath directory or jar
 	if (dirList != nullreturn dirList;
 
 	try {
 		IResource container = this..findMember(qualifiedPackageName); // this is a case-sensitive check
 		if (container instanceof IContainer) {
 			IResource[] members = ((IContainer) container).members();
 			dirList = new String[members.length];
 			int index = 0;
 			for (int i = 0, l = members.length; i < li++) {
 				IResource m = members[i];
 				if (m.getType() == IResource.FILE && org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(m.getName()))
 					// add exclusion pattern check here if we want to hide .class files
 					dirList[index++] = m.getName();
 			}
 			if (index < dirList.length)
 				System.arraycopy(dirList, 0, dirList = new String[index], 0, index);
 			this..put(qualifiedPackageNamedirList);
 			return dirList;
 		}
 	} catch(CoreException ignored) {
 		// ignore
 	}
 	this..put(qualifiedPackageNamethis.);
 	return null;
 }
 
 boolean doesFileExist(String fileNameString qualifiedPackageNameString qualifiedFullName) {
 	String[] dirList = directoryList(qualifiedPackageName);
 	if (dirList == nullreturn false// most common case
 
 	for (int i = dirList.length; --i >= 0;)
 		if (fileName.equals(dirList[i]))
 			return true;
 	return false;
 }
 
 public boolean equals(Object o) {
 	if (this == oreturn true;
 	if (!(o instanceof ClasspathDirectory)) return false;
 
 	if (this. != dir.accessRuleSet)
 		if (this. == null || !this..equals(dir.accessRuleSet))
 			return false;
 	return this..equals(dir.binaryFolder);
 }
 
 public NameEnvironmentAnswer findClass(String binaryFileNameString qualifiedPackageNameString qualifiedBinaryFileName) {
 	if (!doesFileExist(binaryFileNamequalifiedPackageNamequalifiedBinaryFileName)) return null// most common case
 
 	ClassFileReader reader = null;
 	try {
		reader = Util.newClassFileReader(this..getFile(new Path(qualifiedBinaryFileName)));
catch (CoreException e) {
		return null;
catch (ClassFormatException e) {
		return null;
catch (IOException e) {
		return null;
	}
	if (reader != null) {
		if (this. == null)
			return new NameEnvironmentAnswer(readernull);
		String fileNameWithoutExtension = qualifiedBinaryFileName.substring(0, qualifiedBinaryFileName.length() - ..);
		return new NameEnvironmentAnswer(readerthis..getViolatedRestriction(fileNameWithoutExtension.toCharArray()));
	}
	return null;
public IPath getProjectRelativePath() {
	return this..getProjectRelativePath();
public int hashCode() {
	return this. == null ? super.hashCode() : this..hashCode();
protected boolean isExcluded(IResource resource) {
	return false;
public boolean isOutputFolder() {
	return this.;
public boolean isPackage(String qualifiedPackageName) {
	return directoryList(qualifiedPackageName) != null;
public void reset() {
public String toString() {
	String start = "Binary classpath directory " + this..getFullPath().toString(); //$NON-NLS-1$
	if (this. == null)
		return start;
	return start + " with " + this.//$NON-NLS-1$
	return this..getFullPath().toString();
New to GrepCode? Check out our FAQ X