*/
protected char[] findSource(IType type, IBinaryType info, IClassFile cf,
BitSet decompilerFlags) {
IPackageFragment pkgFrag = type.getPackageFragment();
IPackageFragmentRoot root = (IPackageFragmentRoot) pkgFrag.getParent();
String pkg = type.getPackageFragment().getElementName().replace(
'.', '/');
String classFile = new String(info.getFileName());
int p = classFile.lastIndexOf('/');
classFile = classFile.substring(p + 1);
StringBuffer source = new StringBuffer();
String location = null;
String className = pkg + "/" + classFile;
if (root.isArchive()) {
location = getArchivePath(root);
DecompiledClass decompiledClass = decompileFromArchive(
source, location, className, decompilerFlags);
classToDecompiled.put(cf, decompiledClass);
} else {
try {
location = root.getUnderlyingResource().getLocation()
.toOSString()
+ "/" + className;
DecompiledClass decompiledClass = decompile(
source, location, decompilerFlags);
classToDecompiled.put(cf, decompiledClass);