• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java IClassFileReader类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.eclipse.jdt.core.util.IClassFileReader的典型用法代码示例。如果您正苦于以下问题:Java IClassFileReader类的具体用法?Java IClassFileReader怎么用?Java IClassFileReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IClassFileReader类属于org.eclipse.jdt.core.util包,在下文中一共展示了IClassFileReader类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: calculateSerialVersionId

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
public static Long calculateSerialVersionId(ITypeBinding typeBinding, final IProgressMonitor monitor) throws CoreException, IOException {
	try {
		IFile classfileResource = getClassfile(typeBinding);
		if (classfileResource == null) {
			return null;
		}

		InputStream contents = classfileResource.getContents();
		try {
			IClassFileReader cfReader = ToolFactory.createDefaultClassFileReader(contents, IClassFileReader.ALL);
			if (cfReader != null) {
				return calculateSerialVersionId(cfReader);
			}
		} finally {
			contents.close();
		}
		return null;
	} finally {
		if (monitor != null) {
			monitor.done();
		}
	}
}
 
开发者ID:eclipse,项目名称:eclipse.jdt.ls,代码行数:24,代码来源:SerialVersionHashOperation.java


示例2: getClassModifiers

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static int getClassModifiers(IClassFileReader cfReader) {
	IInnerClassesAttribute innerClassesAttribute = cfReader.getInnerClassesAttribute();
	if (innerClassesAttribute != null) {
		IInnerClassesAttributeEntry[] entries = innerClassesAttribute.getInnerClassAttributesEntries();
		for (int i = 0; i < entries.length; i++) {
			IInnerClassesAttributeEntry entry = entries[i];
			char[] innerClassName = entry.getInnerClassName();
			if (innerClassName != null) {
				if (CharOperation.equals(cfReader.getClassName(), innerClassName)) {
					return entry.getAccessFlags();
				}
			}
		}
	}
	return cfReader.getAccessFlags();
}
 
开发者ID:eclipse,项目名称:eclipse.jdt.ls,代码行数:17,代码来源:SerialVersionHashOperation.java


示例3: getSortedMethods

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static IMethodInfo[] getSortedMethods(IClassFileReader cfReader) {
	IMethodInfo[] allMethods = cfReader.getMethodInfos();
	Arrays.sort(allMethods, new Comparator<IMethodInfo>() {
		@Override
		public int compare(IMethodInfo mi1, IMethodInfo mi2) {
			if (mi1.isConstructor() != mi2.isConstructor()) {
				return mi1.isConstructor() ? -1 : 1;
			} else if (mi1.isConstructor()) {
				return 0;
			}
			int res = CharOperation.compareTo(mi1.getName(), mi2.getName());
			if (res != 0) {
				return res;
			}
			return CharOperation.compareTo(mi1.getDescriptor(), mi2.getDescriptor());
		}
	});
	return allMethods;
}
 
开发者ID:eclipse,项目名称:eclipse.jdt.ls,代码行数:20,代码来源:SerialVersionHashOperation.java


示例4: calculateSerialVersionId

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
public static Long calculateSerialVersionId(ITypeBinding typeBinding, final IProgressMonitor monitor) throws CoreException, IOException {
	try {
		IFile classfileResource= getClassfile(typeBinding);
		if (classfileResource == null)
			return null;

		InputStream contents= classfileResource.getContents();
		try {
			IClassFileReader cfReader= ToolFactory.createDefaultClassFileReader(contents, IClassFileReader.ALL);
			if (cfReader != null) {
				return calculateSerialVersionId(cfReader);
			}
		} finally {
			contents.close();
		}
		return null;
	} finally {
		if (monitor != null)
			monitor.done();
	}
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:22,代码来源:SerialVersionHashOperation.java


示例5: getClassModifiers

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static int getClassModifiers(IClassFileReader cfReader) {
	IInnerClassesAttribute innerClassesAttribute= cfReader.getInnerClassesAttribute();
	if (innerClassesAttribute != null) {
		IInnerClassesAttributeEntry[] entries = innerClassesAttribute.getInnerClassAttributesEntries();
		for (int i= 0; i < entries.length; i++) {
			IInnerClassesAttributeEntry entry = entries[i];
			char[] innerClassName = entry.getInnerClassName();
			if (innerClassName != null) {
				if (CharOperation.equals(cfReader.getClassName(), innerClassName)) {
					return entry.getAccessFlags();
				}
			}
		}
	}
	return cfReader.getAccessFlags();
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:17,代码来源:SerialVersionHashOperation.java


示例6: getSortedMethods

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static IMethodInfo[] getSortedMethods(IClassFileReader cfReader) {
	IMethodInfo[] allMethods= cfReader.getMethodInfos();
	Arrays.sort(allMethods, new Comparator<IMethodInfo>() {
		public int compare(IMethodInfo mi1, IMethodInfo mi2) {
			if (mi1.isConstructor() != mi2.isConstructor()) {
				return mi1.isConstructor() ? -1 : 1;
			} else if (mi1.isConstructor()) {
				return 0;
			}
			int res= CharOperation.compareTo(mi1.getName(), mi2.getName());
			if (res != 0) {
				return res;
			}
			return CharOperation.compareTo(mi1.getDescriptor(), mi2.getDescriptor());
		}
	});
	return allMethods;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:19,代码来源:SerialVersionHashOperation.java


示例7: getSortedInterfacesNames

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static char[][] getSortedInterfacesNames(IClassFileReader cfReader) {
	char[][] interfaceNames = cfReader.getInterfaceNames();
	Arrays.sort(interfaceNames, new Comparator<char[]>() {
		@Override
		public int compare(char[] o1, char[] o2) {
			return CharOperation.compareTo(o1, o2);
		}
	});
	return interfaceNames;
}
 
开发者ID:eclipse,项目名称:eclipse.jdt.ls,代码行数:11,代码来源:SerialVersionHashOperation.java


示例8: getSortedFields

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static IFieldInfo[] getSortedFields(IClassFileReader cfReader) {
	IFieldInfo[] allFields = cfReader.getFieldInfos();
	Arrays.sort(allFields, new Comparator<IFieldInfo>() {
		@Override
		public int compare(IFieldInfo o1, IFieldInfo o2) {
			return CharOperation.compareTo(o1.getName(), o2.getName());
		}
	});
	return allFields;
}
 
开发者ID:eclipse,项目名称:eclipse.jdt.ls,代码行数:11,代码来源:SerialVersionHashOperation.java


示例9: hasStaticClassInitializer

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static boolean hasStaticClassInitializer(IClassFileReader cfReader) {
	IMethodInfo[] methodInfos = cfReader.getMethodInfos();
	for (int i = 0; i < methodInfos.length; i++) {
		if (methodInfos[i].isClinit()) {
			return true;
		}
	}
	return false;
}
 
开发者ID:eclipse,项目名称:eclipse.jdt.ls,代码行数:10,代码来源:SerialVersionHashOperation.java


示例10: getAttribute

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
public static IClassFileAttribute getAttribute(
    IClassFileReader classFileReader, char[] attributeName) {
  IClassFileAttribute[] attributes = classFileReader.getAttributes();
  for (int i = 0, max = attributes.length; i < max; i++) {
    if (CharOperation.equals(attributes[i].getAttributeName(), attributeName)) {
      return attributes[i];
    }
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:11,代码来源:Util.java


示例11: getSortedInterfacesNames

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static char[][] getSortedInterfacesNames(IClassFileReader cfReader) {
	char[][] interfaceNames= cfReader.getInterfaceNames();
	Arrays.sort(interfaceNames, new Comparator<char[]>() {
		public int compare(char[] o1, char[] o2) {
			return CharOperation.compareTo(o1, o2);
		}
	});
	return interfaceNames;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:10,代码来源:SerialVersionHashOperation.java


示例12: getSortedFields

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static IFieldInfo[] getSortedFields(IClassFileReader cfReader) {
	IFieldInfo[] allFields= cfReader.getFieldInfos();
	Arrays.sort(allFields, new Comparator<IFieldInfo>() {
		public int compare(IFieldInfo o1, IFieldInfo o2) {
			return CharOperation.compareTo(o1.getName(), o2.getName());
		}
	});
	return allFields;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:10,代码来源:SerialVersionHashOperation.java


示例13: hasStaticClassInitializer

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private static boolean hasStaticClassInitializer(IClassFileReader cfReader) {
	IMethodInfo[] methodInfos= cfReader.getMethodInfos();
	for (int i= 0; i < methodInfos.length; i++) {
		if (methodInfos[i].isClinit()) {
			return true;
		}
	}
	return false;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:10,代码来源:SerialVersionHashOperation.java


示例14: checkClassFile

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private boolean checkClassFile(IClassFileReader classFileReader) {
	IMethodInfo[] methodInfos = classFileReader.getMethodInfos();
	for (int i = 0, max = methodInfos.length; i < max; i++) {
		ICodeAttribute codeAttribute = methodInfos[i].getCodeAttribute();
		if (codeAttribute != null && codeAttribute.getLineNumberAttribute() != null) {
			return true;
		}
	}
	return false;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:11,代码来源:CheckDebugAttributes.java


示例15: openBuffer

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
/**
 * @see Openable#openBuffer(IProgressMonitor, Object)
 */
protected IBuffer openBuffer(IProgressMonitor pm, Object info) throws JavaModelException {

	// create buffer
	IBuffer buffer = BufferManager.createBuffer(this);

	// set the buffer source
	IBuffer classFileBuffer = this.classFile.getBuffer();
	if (classFileBuffer != null) {
		buffer.setContents(classFileBuffer.getCharacters());
	} else {
		// Disassemble
		IClassFileReader reader = ToolFactory.createDefaultClassFileReader(this.classFile, IClassFileReader.ALL);
		Disassembler disassembler = new Disassembler();
		String contents = disassembler.disassemble(reader, Util.getLineSeparator("", getJavaProject()), ClassFileBytesDisassembler.WORKING_COPY); //$NON-NLS-1$
		buffer.setContents(contents);
	}

	// add buffer to buffer cache
	BufferManager bufManager = getBufferManager();
	bufManager.addBuffer(buffer);

	// listen to buffer changes
	buffer.addBufferChangedListener(this);

	return buffer;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:30,代码来源:ClassFileWorkingCopy.java


示例16: getAttribute

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
public static IClassFileAttribute getAttribute(IClassFileReader classFileReader, char[] attributeName) {
	IClassFileAttribute[] attributes = classFileReader.getAttributes();
	for (int i = 0, max = attributes.length; i < max; i++) {
		if (CharOperation.equals(attributes[i].getAttributeName(), attributeName)) {
			return attributes[i];
		}
	}
	return null;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:10,代码来源:Util.java


示例17: visit

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
/**
 * Answers whether children should be visited.
 * <p>
 * If the associated resource is a class file which has been changed, record it.
 * </p>
 */
@Override
public boolean visit(IResourceDelta delta) {
    if (delta == null || 0 == (delta.getKind() & IResourceDelta.CHANGED)) {
        return false;
    }
    IResource resource = delta.getResource();
    if (resource != null) {
        switch (resource.getType()) {
            case IResource.FILE:
                if (0 == (delta.getFlags() & IResourceDelta.CONTENT)) {
                    return false;
                }
                if (CLASS_FILE_EXTENSION.equals(resource.getFullPath().getFileExtension())) {
                    IPath localLocation = resource.getLocation();
                    if (localLocation != null) {
                        String path = localLocation.toOSString();
                        IClassFileReader reader = ToolFactory.createDefaultClassFileReader(path,
                                IClassFileReader.CLASSFILE_ATTRIBUTES);
                        if (reader != null) {
                            // this name is slash-delimited
                            String qualifiedName = new String(reader.getClassName());
                            boolean hasBlockingErrors = false;
                            try {
                                // If the user doesn't want to replace
                                // classfiles containing
                                // compilation errors, get the source
                                // file associated with
                                // the class file and query it for
                                // compilation errors
                                IJavaProject pro = JavaCore.create(resource.getProject());
                                ISourceAttribute sourceAttribute = reader.getSourceFileAttribute();
                                String sourceName = null;
                                if (sourceAttribute != null) {
                                    sourceName = new String(sourceAttribute.getSourceFileName());
                                }
                                IResource sourceFile = getSourceFile(pro, qualifiedName, sourceName);
                                if (sourceFile != null) {
                                    IMarker[] problemMarkers = null;
                                    problemMarkers = sourceFile.findMarkers(
                                            IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true,
                                            IResource.DEPTH_INFINITE);
                                    for (IMarker problemMarker : problemMarkers) {
                                        if (problemMarker.getAttribute(IMarker.SEVERITY,
                                                -1) == IMarker.SEVERITY_ERROR) {
                                            hasBlockingErrors = true;
                                            break;
                                        }
                                    }
                                }
                            } catch (CoreException e) {
                                logger.log(Level.SEVERE, "Failed to visit classes: " + e.getMessage(), e);
                            }
                            if (!hasBlockingErrors) {
                                changedFiles.add(resource);
                                // dot-delimit the name
                                fullyQualifiedNames.add(qualifiedName.replace('/', '.'));
                            }
                        }
                    }
                }
                return false;

            default:
                return true;
        }
    }
    return true;
}
 
开发者ID:Microsoft,项目名称:java-debug,代码行数:75,代码来源:JavaHotCodeReplaceProvider.java


示例18: buildJavaToClassMap

import org.eclipse.jdt.core.util.IClassFileReader; //导入依赖的package包/类
private Map<String, ArrayList<IResource>> buildJavaToClassMap(IContainer container, IProgressMonitor monitor) throws CoreException {
	if (container == null || !container.isAccessible())
		return new HashMap<String, ArrayList<IResource>>(0);
	/*
	 * XXX: Bug 6584: Need a way to get class files for a java file (or CU)
	 */
	IClassFileReader cfReader= null;
	IResource[] members= container.members();
	Map<String, ArrayList<IResource>> map= new HashMap<String, ArrayList<IResource>>(members.length);
	for (int i= 0;  i < members.length; i++) {
		if (isClassFile(members[i])) {
			IFile classFile= (IFile)members[i];
			URI location= classFile.getLocationURI();
			if (location != null) {
				InputStream contents= null;
				try {
					contents= EFS.getStore(location).openInputStream(EFS.NONE, monitor);
					cfReader= ToolFactory.createDefaultClassFileReader(contents, IClassFileReader.CLASSFILE_ATTRIBUTES);
				} finally {
					try {
						if (contents != null)
							contents.close();
					} catch (IOException e) {
						throw new CoreException(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), IStatus.ERROR,
							Messages.format(JarPackagerMessages.JarFileExportOperation_errorCannotCloseConnection, BasicElementLabels.getURLPart(Resources.getLocationString(classFile))),
							e));
					}
				}
				if (cfReader != null) {
					ISourceAttribute sourceAttribute= cfReader.getSourceFileAttribute();
					if (sourceAttribute == null) {
						/*
						 * Can't fully build the map because one or more
						 * class file does not contain the name of its
						 * source file.
						 */
						addWarning(Messages.format(
							JarPackagerMessages.JarFileExportOperation_classFileWithoutSourceFileAttribute,
							BasicElementLabels.getURLPart(Resources.getLocationString(classFile))), null);
						return null;
					}
					String javaName= new String(sourceAttribute.getSourceFileName());
					ArrayList<IResource> classFiles= map.get(javaName);
					if (classFiles == null) {
						classFiles= new ArrayList<IResource>(3);
						map.put(javaName, classFiles);
					}
					classFiles.add(classFile);
				}
			}
		}
	}
	return map;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:55,代码来源:JarFileExportOperation.java



注:本文中的org.eclipse.jdt.core.util.IClassFileReader类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java AdvisorySupport类代码示例发布时间:2022-05-22
下一篇:
Java RandomAccessFile类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap