當前位置: 首頁>>代碼示例>>Java>>正文


Java IProblem.getID方法代碼示例

本文整理匯總了Java中org.eclipse.jdt.core.compiler.IProblem.getID方法的典型用法代碼示例。如果您正苦於以下問題:Java IProblem.getID方法的具體用法?Java IProblem.getID怎麽用?Java IProblem.getID使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.eclipse.jdt.core.compiler.IProblem的用法示例。


在下文中一共展示了IProblem.getID方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getProblemKind

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private static int getProblemKind(IProblem problem) {
	switch (problem.getID()) {
	case IProblem.UndefinedField:
		return FIELD;
	case IProblem.UndefinedMethod:
		return METHOD;
	case IProblem.UndefinedLabel:
		return LABEL;
	case IProblem.UndefinedName:
	case IProblem.UnresolvedVariable:
		return NAME;
	case IProblem.UndefinedType:
		return TYPE;
	}
	return 0;
}
 
開發者ID:eclipse,項目名稱:eclipse.jdt.ls,代碼行數:17,代碼來源:LinkedNodeFinder.java

示例2: getProblemKind

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private static int getProblemKind(IProblem problem) {
  switch (problem.getID()) {
    case IProblem.UndefinedField:
      return FIELD;
    case IProblem.UndefinedMethod:
      return METHOD;
    case IProblem.UndefinedLabel:
      return LABEL;
    case IProblem.UndefinedName:
    case IProblem.UnresolvedVariable:
      return NAME;
    case IProblem.UndefinedType:
      return TYPE;
  }
  return 0;
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:17,代碼來源:LinkedNodeFinder.java

示例3: determineUnresolvableImports

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private static Collection<ImportDeclaration> determineUnresolvableImports(CompilationUnit cu) {
	Collection<ImportDeclaration> unresolvableImports= new ArrayList<>(cu.imports().size());
	for (IProblem problem : cu.getProblems()) {
		if (problem.getID() == IProblem.ImportNotFound) {
			ImportDeclaration problematicImport= getProblematicImport(problem, cu);
			if (problematicImport != null) {
				unresolvableImports.add(problematicImport);
			}
		}
	}

	return unresolvableImports;
}
 
開發者ID:eclipse,項目名稱:eclipse.jdt.ls,代碼行數:14,代碼來源:OrganizeImportsOperation.java

示例4: isSyntaxLikeError

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
public boolean isSyntaxLikeError(IProblem problem) {
	//Syntax issues are always reported
	if ((problem.getID() & IProblem.Syntax) != 0) {
		return true;
	}
	if (!isDefaultProject && problem.getID() == IProblem.PackageIsNotExpectedPackage) {
		return false;
	}
	//Type and Import issues are never reported
	if ((problem.getID() & IProblem.TypeRelated) != 0 || //
			(problem.getID() & IProblem.ImportRelated) != 0) {
		return false;
	}
	//For the rest, we need to cherry pick what is ignored or not
	switch (problem.getID()) {
		case IProblem.AbstractMethodMustBeImplemented:
		case IProblem.AmbiguousMethod:
		case IProblem.DanglingReference:
		case IProblem.MethodMustOverrideOrImplement:
		case IProblem.MissingReturnType:
		case IProblem.MissingTypeInConstructor:
		case IProblem.MissingTypeInLambda:
		case IProblem.MissingTypeInMethod:
		case IProblem.UndefinedConstructor:
		case IProblem.UndefinedField:
		case IProblem.UndefinedMethod:
		case IProblem.UndefinedName:
		case IProblem.UnresolvedVariable:
			return false;
		default:
			//We log problems for troubleshooting purposes
			String error = getError(problem);
			JavaLanguageServerPlugin.logInfo(problem.getMessage() + " is of type " + error);
	}
	return true;
}
 
開發者ID:eclipse,項目名稱:eclipse.jdt.ls,代碼行數:37,代碼來源:DiagnosticsHandler.java

示例5: ProblemLocation

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
public ProblemLocation(IProblem problem) {
  fId = problem.getID();
  fArguments = problem.getArguments();
  fOffset = problem.getSourceStart();
  fLength = problem.getSourceEnd() - fOffset + 1;
  fIsError = problem.isError();
  fMarkerType =
      problem instanceof CategorizedProblem
          ? ((CategorizedProblem) problem).getMarkerType()
          : IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER;
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:12,代碼來源:ProblemLocation.java

示例6: acceptResult

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
public void acceptResult(CompilationResult result) {
	String className = ((CompilationUnit) result.getCompilationUnit()).className;

	int classIdx;
	for (classIdx = 0; classIdx < units.length; ++classIdx) {
		if (className.equals(units[classIdx].getName())) {
			break;
		}
	}

	if (result.hasErrors()) {
		// IProblem[] problems = result.getErrors();
		IProblem[] problems = getJavaCompilationErrors(result);

		unitResults[classIdx].problems = problems;

		String sourceCode = units[classIdx].getSourceCode();

		for (int i = 0; i < problems.length; i++) {
			IProblem problem = problems[i];

			if (IProblem.UndefinedMethod == problem.getID()) {
				if (problem.getSourceStart() >= 0 && problem.getSourceEnd() >= 0) {
					String methodName = sourceCode.substring(problem.getSourceStart(), problem.getSourceEnd() + 1);

					Method method = FunctionsUtil.getInstance(jasperReportsContext).getMethod4Function(methodName);
					if (method != null) {
						unitResults[classIdx].addMissingMethod(method);
						// continue;
					}
				}
			}
		}
	} else {
		ClassFile[] resultClassFiles = result.getClassFiles();
		for (int i = 0; i < resultClassFiles.length; i++) {
			units[classIdx].setCompileData(resultClassFiles[i].getBytes());
		}
	}
}
 
開發者ID:OpenSoftwareSolutions,項目名稱:PDFReporter-Studio,代碼行數:41,代碼來源:JRJdtCompiler.java

示例7: acceptResult

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
@Override
public void acceptResult(CompilationResult result) 
{
	String className = ((CompilationUnit) result.getCompilationUnit()).className;
	
	int classIdx;
	for (classIdx = 0; classIdx < units.length; ++classIdx)
	{
		if (className.equals(units[classIdx].getName()))
		{
			break;
		}
	}
	
	if (result.hasErrors()) 
	{
		//IProblem[] problems = result.getErrors();
		IProblem[] problems = getJavaCompilationErrors(result);
		
		unitResults[classIdx].problems = problems;

		String sourceCode = units[classIdx].getSourceCode();
		
		for (int i = 0; i < problems.length; i++) 
		{
			IProblem problem = problems[i];

			if (IProblem.UndefinedMethod == problem.getID())
			{
				if (
					problem.getSourceStart() >= 0
					&& problem.getSourceEnd() >= 0
					)
				{									
					String methodName = 
						sourceCode.substring(
							problem.getSourceStart(),
							problem.getSourceEnd() + 1
							);
					
					Method method = FunctionsUtil.getInstance(jasperReportsContext).getMethod4Function(methodName);
					if (method != null)
					{
						unitResults[classIdx].addMissingMethod(method);
						//continue;
					}
				}
			}
		}
	}
	else
	{
		ClassFile[] resultClassFiles = result.getClassFiles();
		for (int i = 0; i < resultClassFiles.length; i++) 
		{
			units[classIdx].setCompileData(resultClassFiles[i].getBytes());
		}
	}
}
 
開發者ID:TIBCOSoftware,項目名稱:jasperreports,代碼行數:60,代碼來源:JRJdtCompiler.java

示例8: checkPackageDeclaration

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private ICompilationUnit checkPackageDeclaration(String uri, ICompilationUnit unit) {
	if (unit.getResource() != null && unit.getJavaProject() != null && unit.getJavaProject().getProject().getName().equals(ProjectsManager.DEFAULT_PROJECT_NAME)) {
		try {
			CompilationUnit astRoot = SharedASTProvider.getInstance().getAST(unit, new NullProgressMonitor());
			IProblem[] problems = astRoot.getProblems();
			for (IProblem problem : problems) {
				if (problem.getID() == IProblem.PackageIsNotExpectedPackage) {
					IResource file = unit.getResource();
					boolean toRemove = file.isLinked();
					if (toRemove) {
						IPath path = file.getParent().getProjectRelativePath();
						if (path.segmentCount() > 0 && JDTUtils.SRC.equals(path.segments()[0])) {
							String packageNameResource = path.removeFirstSegments(1).toString().replace(JDTUtils.PATH_SEPARATOR, JDTUtils.PERIOD);
							path = file.getLocation();
							if (path != null && path.segmentCount() > 0) {
								path = path.removeLastSegments(1);
								String pathStr = path.toString().replace(JDTUtils.PATH_SEPARATOR, JDTUtils.PERIOD);
								if (pathStr.endsWith(packageNameResource)) {
									toRemove = false;
								}
							}
						}
					}
					if (toRemove) {
						file.delete(true, new NullProgressMonitor());
						sharedASTProvider.invalidate(unit);
						unit.discardWorkingCopy();
						unit = JDTUtils.resolveCompilationUnit(uri);
						unit.becomeWorkingCopy(new NullProgressMonitor());
						triggerValidation(unit);
					}
					break;
				}
			}

		} catch (CoreException e) {
			JavaLanguageServerPlugin.logException(e.getMessage(), e);
		}
	}
	return unit;
}
 
開發者ID:eclipse,項目名稱:eclipse.jdt.ls,代碼行數:42,代碼來源:DocumentLifeCycleHandler.java

示例9: isCorresponding

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private static boolean isCorresponding(IProblem oldProblem, IProblem iProblem) {
  if (oldProblem.getID() != iProblem.getID()) return false;
  if (!oldProblem.getMessage().equals(iProblem.getMessage())) return false;
  return true;
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:6,代碼來源:RefactoringAnalyzeUtil.java

示例10: isIgnorableProblem

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private boolean isIgnorableProblem(IProblem problem) {
  if (problem.getID() == IProblem.NotVisibleField) return true;
  return false;
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:5,代碼來源:SelfEncapsulateFieldRefactoring.java

示例11: shouldReport

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
/**
 * Evaluates if a problem needs to be reported.
 *
 * @param problem the problem
 * @param cu the AST containing the new source
 * @return return <code>true</code> if the problem needs to be reported
 */
protected boolean shouldReport(IProblem problem, CompilationUnit cu) {
  if (!problem.isError()) return false;
  if (problem.getID() == IProblem.UndefinedType) // reported when trying to import
  return false;
  return true;
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:14,代碼來源:ChangeSignatureProcessor.java


注:本文中的org.eclipse.jdt.core.compiler.IProblem.getID方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。