protected TypedElement createTypedElement(IJavaElement javaElement, BitSet modes) { String name; IClassFile classFile = (IClassFile) javaElement.getAncestor(IJavaElement.CLASS_FILE); // existing read-only class files if (classFile != null) { name = classFile.getPath().toOSString(); if (!name.endsWith(".class")) { // $NON-NLS-1$ name += '/' + JdtUtils.getFullBytecodeName(classFile); } } else { // usual eclipse - generated bytecode name = JdtUtils.getByteCodePath(javaElement); } String methodName = null; if (javaElement.getElementType() == IJavaElement.METHOD || javaElement.getElementType() == IJavaElement.INITIALIZER) { methodName = JdtUtils.getMethodSignature(javaElement); if (methodName != null) { name += ":" + methodName; } } return new TypedElement(name, methodName, TypedElement.TYPE_BYTECODE, javaElement, modes); }