/**
*
*/
package org.jboss.tools.smooks.configuration.editors;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
/**
* @author DartPeng
*
*/
public class ClassPathFileProcessor implements IFilePathProcessor {
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.IFilePathProcessor#
* processFileSystemPath(java.lang.String)
*/
public String processFileSystemPath(String filePath) {
return filePath;
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.IFilePathProcessor#
* processWorkBenchPath(org.eclipse.core.resources.IFile)
*/
public String processWorkBenchPath(IFile file) {
IProject project = file.getProject();
IJavaProject javaProject = JavaCore.create(project);
String path = null;
if (javaProject != null) {
try {
IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
for (int i = 0; i < classpathEntries.length; i++) {
IClasspathEntry entry = classpathEntries[i];
// if(entry.getEntryKind() == IClasspathEntry.CPE_SOURCE){
IPath sourcePath = entry.getPath();
if(sourcePath.isPrefixOf(file.getFullPath())){
IPath filePath = file.getFullPath();
String sp = sourcePath.toPortableString();
String fp = filePath.toPortableString();
path = fp.substring(sp.length(), fp.length());
break;
}
// }
}
} catch (JavaModelException e) {
// e.printStackTrace();
// ignore
}
}
if(path == null){
path = file.getFullPath().removeFirstSegments(1).toPortableString();
}
if(path.charAt(0) == '\\' || path.charAt(0) == '/' ){
}else{
path = "/" + path; //$NON-NLS-1$
}
return path;
}
}