List of usage examples for org.eclipse.jdt.core.util IClassFileReader getInterfaceNames
char[][] getInterfaceNames();
From source file:com.siteview.mde.internal.ui.search.dependencies.PackageFinder.java
License:Open Source License
static void computeReferencedTypes(IClassFileReader cfr, Set packages) { char[][] interfaces = cfr.getInterfaceNames(); if (interfaces != null) { for (int i = 0; i < interfaces.length; i++) { //note: have to convert names like Ljava/lang/Object; to java.lang.Object packages.add(getPackage(new String(interfaces[i]).replace('/', '.'))); }//from w w w . j a v a 2 s .co m } char[] scn = cfr.getSuperclassName(); if (scn != null) { packages.add(getPackage(new String(scn).replace('/', '.'))); } IFieldInfo[] fieldInfo = cfr.getFieldInfos(); for (int i = 0; i < fieldInfo.length; i++) { String fieldName = new String(fieldInfo[i].getDescriptor()); if (!isPrimitiveTypeSignature(fieldName)) { String fieldDescriptor = extractFullyQualifiedTopLevelType(fieldName); packages.add(getPackage(new String(fieldDescriptor))); } } IMethodInfo[] methodInfo = cfr.getMethodInfos(); for (int i = 0; i < methodInfo.length; i++) { IExceptionAttribute exceptionAttribute = methodInfo[i].getExceptionAttribute(); if (exceptionAttribute != null) { char[][] exceptionNames = exceptionAttribute.getExceptionNames(); for (int j = 0; j < exceptionNames.length; j++) { packages.add(getPackage(new String(exceptionNames[j]).replace('/', '.'))); } } String descriptor = new String(methodInfo[i].getDescriptor()); //add parameter types String[] parameterTypes = Signature.getParameterTypes(descriptor); for (int j = 0; j < parameterTypes.length; j++) { //have to parse to convert [Ljava/lang/String; to java.lang.String if (!isPrimitiveTypeSignature(parameterTypes[j])) { packages.add(getPackage(new String(extractFullyQualifiedTopLevelType(parameterTypes[j])))); } } //add return type String returnType = Signature.getReturnType(descriptor); if (!isPrimitiveTypeSignature(returnType)) { returnType = extractFullyQualifiedTopLevelType(returnType); packages.add(getPackage(returnType)); } } // Is there more to extract from the constant pool?? IConstantPoolEntry entry; IConstantPool pool = cfr.getConstantPool(); int length = pool.getConstantPoolCount(); for (int i = 1; i < length; i++) { switch (pool.getEntryKind(i)) { case IConstantPoolConstant.CONSTANT_Class: // add reference to the class entry = pool.decodeEntry(i); //note: may have to convert names like Ljava/lang/Object; to java.lang.Object String className = new String(entry.getClassInfoName()).replace('/', '.'); className = className.indexOf(';') >= 0 ? extractFullyQualifiedTopLevelType(className) : className; packages.add(getPackage(className)); break; case IConstantPoolConstant.CONSTANT_NameAndType: // add reference to the name and type entry = pool.decodeEntry(i); int descIndex = entry.getNameAndTypeInfoDescriptorIndex(); if (pool.getEntryKind(descIndex) == IConstantPoolConstant.CONSTANT_Utf8) { entry = pool.decodeEntry(descIndex); char[] type = entry.getUtf8Value(); if (type[0] == '(') { // Method signature. //add parameter types String descriptor = new String(type); String[] parameterTypes = Signature.getParameterTypes(descriptor); for (int j = 0; j < parameterTypes.length; j++) { if (!isPrimitiveTypeSignature(parameterTypes[j])) { packages.add(getPackage(extractFullyQualifiedTopLevelType(parameterTypes[j]))); } } //add return type String returnType = Signature.getReturnType(descriptor); if (!isPrimitiveTypeSignature(returnType)) { returnType = extractFullyQualifiedTopLevelType(returnType); packages.add(getPackage(returnType)); } } else { // Field type. String typeString = new String(type); if (!isPrimitiveTypeSignature(typeString)) { packages.add(getPackage(extractFullyQualifiedTopLevelType(typeString))); } } } break; } } packages.remove(""); // removes default package if it exists //$NON-NLS-1$ }
From source file:org.eclipse.ajdt.internal.ui.editor.quickfix.AJSerialVersionHashOperation.java
License:Open Source License
private static char[][] getSortedInterfacesNames(IClassFileReader cfReader) { char[][] interfaceNames = cfReader.getInterfaceNames(); Arrays.sort(interfaceNames, new Comparator() { public int compare(Object o1, Object o2) { return CharOperation.compareTo(((char[]) o1), ((char[]) o2)); }/*from ww w . j av a 2 s.co m*/ }); return interfaceNames; }
From source file:org.eclipse.pde.internal.ui.search.dependencies.PackageFinder.java
License:Open Source License
static void computeReferencedTypes(IClassFileReader cfr, Set<String> packages) { char[][] interfaces = cfr.getInterfaceNames(); if (interfaces != null) { for (int i = 0; i < interfaces.length; i++) { //note: have to convert names like Ljava/lang/Object; to java.lang.Object packages.add(getPackage(new String(interfaces[i]).replace('/', '.'))); }/* www .ja v a 2 s . c om*/ } char[] scn = cfr.getSuperclassName(); if (scn != null) { packages.add(getPackage(new String(scn).replace('/', '.'))); } IFieldInfo[] fieldInfo = cfr.getFieldInfos(); for (int i = 0; i < fieldInfo.length; i++) { String fieldName = new String(fieldInfo[i].getDescriptor()); if (!isPrimitiveTypeSignature(fieldName)) { String fieldDescriptor = extractFullyQualifiedTopLevelType(fieldName); packages.add(getPackage(new String(fieldDescriptor))); } } IMethodInfo[] methodInfo = cfr.getMethodInfos(); for (int i = 0; i < methodInfo.length; i++) { IExceptionAttribute exceptionAttribute = methodInfo[i].getExceptionAttribute(); if (exceptionAttribute != null) { char[][] exceptionNames = exceptionAttribute.getExceptionNames(); for (int j = 0; j < exceptionNames.length; j++) { packages.add(getPackage(new String(exceptionNames[j]).replace('/', '.'))); } } String descriptor = new String(methodInfo[i].getDescriptor()); //add parameter types String[] parameterTypes = Signature.getParameterTypes(descriptor); for (int j = 0; j < parameterTypes.length; j++) { //have to parse to convert [Ljava/lang/String; to java.lang.String if (!isPrimitiveTypeSignature(parameterTypes[j])) { packages.add(getPackage(new String(extractFullyQualifiedTopLevelType(parameterTypes[j])))); } } //add return type String returnType = Signature.getReturnType(descriptor); if (!isPrimitiveTypeSignature(returnType)) { returnType = extractFullyQualifiedTopLevelType(returnType); packages.add(getPackage(returnType)); } } // Is there more to extract from the constant pool?? IConstantPoolEntry entry; IConstantPool pool = cfr.getConstantPool(); int length = pool.getConstantPoolCount(); for (int i = 1; i < length; i++) { switch (pool.getEntryKind(i)) { case IConstantPoolConstant.CONSTANT_Class: // add reference to the class entry = pool.decodeEntry(i); //note: may have to convert names like Ljava/lang/Object; to java.lang.Object String className = new String(entry.getClassInfoName()).replace('/', '.'); className = className.indexOf(';') >= 0 ? extractFullyQualifiedTopLevelType(className) : className; packages.add(getPackage(className)); break; case IConstantPoolConstant.CONSTANT_NameAndType: // add reference to the name and type entry = pool.decodeEntry(i); int descIndex = entry.getNameAndTypeInfoDescriptorIndex(); if (pool.getEntryKind(descIndex) == IConstantPoolConstant.CONSTANT_Utf8) { entry = pool.decodeEntry(descIndex); char[] type = entry.getUtf8Value(); if (type[0] == '(') { // Method signature. //add parameter types String descriptor = new String(type); String[] parameterTypes = Signature.getParameterTypes(descriptor); for (int j = 0; j < parameterTypes.length; j++) { if (!isPrimitiveTypeSignature(parameterTypes[j])) { packages.add(getPackage(extractFullyQualifiedTopLevelType(parameterTypes[j]))); } } //add return type String returnType = Signature.getReturnType(descriptor); if (!isPrimitiveTypeSignature(returnType)) { returnType = extractFullyQualifiedTopLevelType(returnType); packages.add(getPackage(returnType)); } } else { // Field type. String typeString = new String(type); if (!isPrimitiveTypeSignature(typeString)) { packages.add(getPackage(extractFullyQualifiedTopLevelType(typeString))); } } } break; } } packages.remove(""); // removes default package if it exists //$NON-NLS-1$ }
From source file:org.eclipse.pde.tools.internal.versioning.JavaClassVersionCompare.java
License:Open Source License
/** * compares two java classes denoted by <code>classFileReader1</code> and <code>classFileReader2</code>, * and check if there is any change from <code>classFileReader2</code> to <code>classFileReader1</code>. * /*from ww w.j a v a2s .c o m*/ * @param classFileReader1 * @param classFileReader2 * @param monitor IProgressMonitor instance * @return compare result IStatus instance */ private IStatus compareJavaClasses(IClassFileReader classFileReader1, IClassFileReader classFileReader2, IProgressMonitor monitor) { try { monitor.beginTask("", 100); //$NON-NLS-1$ // compare class names String name1 = charsToString(classFileReader1.getClassName()); String name2 = charsToString(classFileReader2.getClassName()); if (!name1.equals(name2)) { finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.JavaClassVersionCompare_differentClassNameMsg, name1, name2), null)); return finalResult; } // worked 5% monitor.worked(5); // compare super classes checkSuperClasses(name1, classFileReader1.getSuperclassName(), classFileReader2.getSuperclassName()); // worked 5% monitor.worked(5); // compare interfaces checkInterfaces(name1, generateList(classFileReader1.getInterfaceNames()), generateList(classFileReader2.getInterfaceNames())); // worked 5% monitor.worked(5); // compare modifier of classes checkClassModifiers(name1, classFileReader1.getAccessFlags(), classFileReader2.getAccessFlags()); // worked 5% monitor.worked(5); // compare fields checkElements(name1, generateTable(classFileReader1.getFieldInfos()), generateTable(classFileReader2.getFieldInfos())); // worked 40% monitor.worked(40); // compare methods (40%) checkElements(name1, generateTable(classFileReader1.getMethodInfos()), generateTable(classFileReader2.getMethodInfos())); return finalResult; } finally { monitor.done(); } }