当前位置: 首页>>代码示例>>Java>>正文


Java IType.getCompilationUnit方法代码示例

本文整理汇总了Java中org.eclipse.jdt.core.IType.getCompilationUnit方法的典型用法代码示例。如果您正苦于以下问题:Java IType.getCompilationUnit方法的具体用法?Java IType.getCompilationUnit怎么用?Java IType.getCompilationUnit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.eclipse.jdt.core.IType的用法示例。


在下文中一共展示了IType.getCompilationUnit方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: findPathInGeneratedAnnotation

import org.eclipse.jdt.core.IType; //导入方法依赖的package包/类
/**
 * @param project
 * @param itype
 * @return
 * @throws JavaModelException
 */
private static IPath findPathInGeneratedAnnotation(IProject project, IType itype) throws JavaModelException {
	ICompilationUnit cu = itype.getCompilationUnit();
	List<IAnnotationBinding> annotations = resolveAnnotation(cu, Generated.class).getAnnotations();
	if ((annotations != null) && (annotations.size() > 0)) {
		IAnnotationBinding ab = annotations.get(0);
		IMemberValuePairBinding[] attributes = ab.getAllMemberValuePairs();
		for (int i = 0; i < attributes.length; i++) {
			IMemberValuePairBinding attribut = attributes[i];
			if (attribut.getName().equalsIgnoreCase("value")) {
				Object[] o = (Object[]) attribut.getValue();
				if (o != null && o.length > 0 && String.valueOf(o[0]).trim().length() > 0) {
					try {
						IPath p = ResourceManager.find(project, String.valueOf(o[0]).trim());
						return p;
					} catch (Exception e) {
						ResourceManager.logException(e);
						return null;
					}
				}
			}
		}
	}
	return null;
}
 
开发者ID:gw4e,项目名称:gw4e.project,代码行数:31,代码来源:JDTManager.java

示例2: findPathInModelAnnotation

import org.eclipse.jdt.core.IType; //导入方法依赖的package包/类
/**
 * @param project
 * @param itype
 * @return
 * @throws JavaModelException
 */
public static IPath findPathInModelAnnotation(IProject project, IType itype) throws JavaModelException {
	ICompilationUnit cu = itype.getCompilationUnit();
	List<IAnnotationBinding> annotations = resolveAnnotation(cu, Model.class).getAnnotations();
	if ((annotations != null) && (annotations.size() > 0)) {
		IAnnotationBinding ab = annotations.get(0);
		IMemberValuePairBinding[] attributes = ab.getAllMemberValuePairs();
		for (int i = 0; i < attributes.length; i++) {
			IMemberValuePairBinding attribut = attributes[i];
			if (attribut.getName().equalsIgnoreCase("value")) {
				Object[] o = (Object[]) attribut.getValue();
				if (o != null && o.length > 0 && String.valueOf(o[0]).trim().length() > 0) {
					try {
						IPath p = ResourceManager.find(project, String.valueOf(o[0]).trim());
						return p;
					} catch (Exception e) {
						ResourceManager.logException(e);
						return null;
					}
				}
			}
		}
	}
	return null;
}
 
开发者ID:gw4e,项目名称:gw4e.project,代码行数:31,代码来源:JDTManager.java

示例3: findPathInStaticField

import org.eclipse.jdt.core.IType; //导入方法依赖的package包/类
/**
 * @param project
 * @param itype
 * @return
 * @throws JavaModelException
 */
private static IPath findPathInStaticField(IProject project, IType itype) throws JavaModelException {
	List<IPath> wrapper = new ArrayList<IPath>();
	ICompilationUnit cu = itype.getCompilationUnit();
	CompilationUnit ast = parse(cu);
	ast.accept(new ASTVisitor() {
		public boolean visit(VariableDeclarationFragment node) {
			SimpleName simpleName = node.getName();
			IBinding bding = simpleName.resolveBinding();
			if (bding instanceof IVariableBinding) {
				IVariableBinding binding = (IVariableBinding) bding;
				String type = binding.getType().getBinaryName(); //
				String name = simpleName.getFullyQualifiedName();
				if ("MODEL_PATH".equals(name) && "java.nio.file.Path".equals(type)) {
					Expression expression = node.getInitializer();
					if (expression instanceof MethodInvocation) {
						MethodInvocation mi = (MethodInvocation) expression;
						if ("get".equals(mi.resolveMethodBinding().getName())
								&& "java.nio.file.Path".equals(mi.resolveTypeBinding().getBinaryName())) {
							StringLiteral sl = (StringLiteral) mi.arguments().get(0);
							String argument = sl.getLiteralValue();
							try {
								IPath p = ResourceManager.find(project, argument);
								wrapper.add(p);
							} catch (CoreException e) {
								ResourceManager.logException(e);
							}
						}
					}
				}
			}
			return true;
		}
	});
	if (wrapper.size() > 0)
		return wrapper.get(0);
	return null;
}
 
开发者ID:gw4e,项目名称:gw4e.project,代码行数:44,代码来源:JDTManager.java

示例4: findGeneratorFactoryParseInvocation

import org.eclipse.jdt.core.IType; //导入方法依赖的package包/类
public static Set<String> findGeneratorFactoryParseInvocation(IProject project, IType itype)
		throws JavaModelException {
	Set<String> ret = new HashSet<String>();
	ICompilationUnit cu = itype.getCompilationUnit();
	CompilationUnit ast = parse(cu);

	ast.accept(new ASTVisitor() {
		public boolean visit(MethodInvocation node) {
			SimpleName simpleName = node.getName();
			IBinding bding = simpleName.resolveBinding();
			if (bding instanceof IMethodBinding) {
				IMethodBinding imb = (IMethodBinding) bding;
				if ("parse".equalsIgnoreCase(imb.getName())) {
					ITypeBinding[] arguments = imb.getParameterTypes();
					if (arguments.length == 1) {
						if (String.class.getName().equals(arguments[0].getQualifiedName())
								&& PathGenerator.class.getName().equals(imb.getReturnType().getQualifiedName())) {
							int start = node.getStartPosition();
							int end = node.getLength();
							try {
								String code = cu.getSource().substring(start, start + end);
								// System.out.println(code);
							} catch (JavaModelException e) {
								ResourceManager.logException(e);
							}
							List args = node.arguments();
							Expression argumentExpression = (Expression) args.get(0);
							ITypeBinding typeBinding = argumentExpression.resolveTypeBinding();
							if (typeBinding != null) {
								if (argumentExpression instanceof StringLiteral) {
									StringLiteral sl = (StringLiteral) argumentExpression;
									String lv = sl.getLiteralValue();
									ret.add(lv);
								}
							}
						}
					}
				}
			}

			return true;
		}
	});
	return ret;
}
 
开发者ID:gw4e,项目名称:gw4e.project,代码行数:46,代码来源:JDTManager.java


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