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

Java NullChange类代码示例

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

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



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

示例1: perform

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
public Change perform(IProgressMonitor pm) throws CoreException {
  try {
    pm.beginTask(RefactoringCoreMessages.CreatePackageChange_Creating_package, 1);

    if (fPackageFragment.exists()) {
      return new NullChange();
    } else {
      IPackageFragmentRoot root = (IPackageFragmentRoot) fPackageFragment.getParent();
      root.createPackageFragment(fPackageFragment.getElementName(), false, pm);

      return new DeleteResourceChange(fPackageFragment.getPath(), true);
    }
  } finally {
    pm.done();
  }
}
 
开发者ID:eclipse,项目名称:che,代码行数:18,代码来源:CreatePackageChange.java


示例2: perform

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
public Change perform(IProgressMonitor pm) throws CoreException {
  pm.beginTask(RefactoringCoreMessages.ClasspathChange_progress_message, 1);
  try {
    if (!JavaConventions.validateClasspath(fProject, fNewClasspath, fOutputLocation)
        .matches(IStatus.ERROR)) {
      IClasspathEntry[] oldClasspath = fProject.getRawClasspath();
      IPath oldOutputLocation = fProject.getOutputLocation();

      fProject.setRawClasspath(fNewClasspath, fOutputLocation, new SubProgressMonitor(pm, 1));

      return new ClasspathChange(fProject, oldClasspath, oldOutputLocation);
    } else {
      return new NullChange();
    }
  } finally {
    pm.done();
  }
}
 
开发者ID:eclipse,项目名称:che,代码行数:20,代码来源:ClasspathChange.java


示例3: createUndoChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
protected Change createUndoChange(long stampToRestore) throws CoreException {
  IPackageFragment pack = getPackage();
  if (pack == null) return new NullChange();
  Map<IResource, Long> stamps = new HashMap<IResource, Long>();
  if (!fRenameSubpackages) {
    addStamps(stamps, pack.getCompilationUnits());
  } else {
    IPackageFragment[] allPackages = JavaElementUtil.getPackageAndSubpackages(pack);
    for (int i = 0; i < allPackages.length; i++) {
      IPackageFragment currentPackage = allPackages[i];
      addStamps(stamps, currentPackage.getCompilationUnits());
    }
  }
  return new RenamePackageChange(
      createNewPath(), getNewName(), getOldName(), stampToRestore, stamps, fRenameSubpackages);
  // Note: This reverse change only works if the renamePackage change did
  // not merge the source package into an existing target.
}
 
开发者ID:eclipse,项目名称:che,代码行数:20,代码来源:RenamePackageChange.java


示例4: perform

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
public Change perform(IProgressMonitor pm) throws CoreException {
	try {
		pm.beginTask(RefactoringCoreMessages.CreatePackageChange_Creating_package, 1);

		if (fPackageFragment.exists()) {
			return new NullChange();
		} else {
			IPackageFragmentRoot root= (IPackageFragmentRoot) fPackageFragment.getParent();
			root.createPackageFragment(fPackageFragment.getElementName(), false, pm);

			return new DeleteResourceChange(fPackageFragment.getPath(), true);
		}
	} finally {
		pm.done();
	}
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:18,代码来源:CreatePackageChange.java


示例5: perform

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
public Change perform(IProgressMonitor pm) throws CoreException {
	pm.beginTask(RefactoringCoreMessages.ClasspathChange_progress_message, 1);
	try {
		if (!JavaConventions.validateClasspath(fProject, fNewClasspath, fOutputLocation).matches(IStatus.ERROR)) {
			IClasspathEntry[] oldClasspath= fProject.getRawClasspath();
			IPath oldOutputLocation= fProject.getOutputLocation();

			fProject.setRawClasspath(fNewClasspath, fOutputLocation, new SubProgressMonitor(pm, 1));

			return new ClasspathChange(fProject, oldClasspath, oldOutputLocation);
		} else {
			return new NullChange();
		}
	} finally {
		pm.done();
	}
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:19,代码来源:ClasspathChange.java


示例6: createUndoChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
protected Change createUndoChange(long stampToRestore) throws CoreException {
	IPackageFragment pack= getPackage();
	if (pack == null)
		return new NullChange();
	Map<IResource, Long> stamps= new HashMap<IResource, Long>();
	if (!fRenameSubpackages) {
		addStamps(stamps, pack.getCompilationUnits());
	} else {
		IPackageFragment[] allPackages= JavaElementUtil.getPackageAndSubpackages(pack);
		for (int i= 0; i < allPackages.length; i++) {
			IPackageFragment currentPackage= allPackages[i];
			addStamps(stamps, currentPackage.getCompilationUnits());
		}
	}
	return new RenamePackageChange(createNewPath(), getNewName(), getOldName(), stampToRestore, stamps, fRenameSubpackages);
	// Note: This reverse change only works if the renamePackage change did
	// not merge the source package into an existing target.
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:20,代码来源:RenamePackageChange.java


示例7: createCopyResourceChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
private static Change createCopyResourceChange(
    IResource resource,
    NewNameProposer nameProposer,
    INewNameQueries copyQueries,
    IContainer destination) {
  if (resource == null || destination == null) return new NullChange();
  INewNameQuery nameQuery;
  String name = nameProposer.createNewName(resource, destination);
  if (name == null) nameQuery = copyQueries.createNullQuery();
  else nameQuery = copyQueries.createNewResourceNameQuery(resource, name);
  return new CopyResourceChange(resource, destination, nameQuery);
}
 
开发者ID:eclipse,项目名称:che,代码行数:13,代码来源:ReorgPolicyFactory.java


示例8: createChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
private Change createChange(ICompilationUnit cu) {
  IPackageFragment pack = getDestinationAsPackageFragment();
  if (pack != null) return moveCuToPackage(cu, pack);
  IContainer container = getDestinationAsContainer();
  if (container == null) return new NullChange();
  return moveFileToContainer(cu, container);
}
 
开发者ID:eclipse,项目名称:che,代码行数:8,代码来源:ReorgPolicyFactory.java


示例9: createDeleteChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
private static Change createDeleteChange(IJavaElement javaElement) throws JavaModelException {
  Assert.isTrue(!ReorgUtils.isInsideCompilationUnit(javaElement));

  switch (javaElement.getElementType()) {
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
      return createPackageFragmentRootDeleteChange((IPackageFragmentRoot) javaElement);

    case IJavaElement.PACKAGE_FRAGMENT:
      return createSourceManipulationDeleteChange((IPackageFragment) javaElement);

    case IJavaElement.COMPILATION_UNIT:
      return createSourceManipulationDeleteChange((ICompilationUnit) javaElement);

    case IJavaElement.CLASS_FILE:
      // if this assert fails, it means that a precondition is missing
      Assert.isTrue(((IClassFile) javaElement).getResource() instanceof IFile);
      return createDeleteChange(((IClassFile) javaElement).getResource());

    case IJavaElement.JAVA_MODEL: // cannot be done
      Assert.isTrue(false);
      return null;

    case IJavaElement.JAVA_PROJECT: // handled differently
      Assert.isTrue(false);
      return null;

    case IJavaElement.TYPE:
    case IJavaElement.FIELD:
    case IJavaElement.METHOD:
    case IJavaElement.INITIALIZER:
    case IJavaElement.PACKAGE_DECLARATION:
    case IJavaElement.IMPORT_CONTAINER:
    case IJavaElement.IMPORT_DECLARATION:
      Assert.isTrue(false); // not done here
      return new NullChange();
    default:
      Assert.isTrue(false); // there's no more kinds
      return new NullChange();
  }
}
 
开发者ID:eclipse,项目名称:che,代码行数:41,代码来源:DeleteChangeCreator.java


示例10: doDelete

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
protected Change doDelete(IProgressMonitor pm) throws CoreException {
  ISourceManipulation element = getSourceManipulation();
  // we have to save dirty compilation units before deleting them. Otherwise
  // we will end up showing ghost compilation units in the package explorer
  // since the primary working copy still exists.
  if (element instanceof ICompilationUnit) {
    pm.beginTask("", 2); // $NON-NLS-1$
    ICompilationUnit unit = (ICompilationUnit) element;
    saveCUnitIfNeeded(unit, new SubProgressMonitor(pm, 1));

    IResource resource = unit.getResource();
    ResourceDescription resourceDescription = ResourceDescription.fromResource(resource);
    element.delete(false, new SubProgressMonitor(pm, 1));
    resourceDescription.recordStateFromHistory(resource, new SubProgressMonitor(pm, 1));
    return new UndoDeleteResourceChange(resourceDescription);

  } else if (element instanceof IPackageFragment) {
    ICompilationUnit[] units = ((IPackageFragment) element).getCompilationUnits();
    pm.beginTask("", units.length + 1); // $NON-NLS-1$
    for (int i = 0; i < units.length; i++) {
      // fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=66835
      saveCUnitIfNeeded(units[i], new SubProgressMonitor(pm, 1));
    }
    element.delete(false, new SubProgressMonitor(pm, 1));
    return new NullChange(); // caveat: real undo implemented by UndoablePackageDeleteChange

  } else {
    element.delete(false, pm);
    return null; // should not happen
  }
}
 
开发者ID:eclipse,项目名称:che,代码行数:33,代码来源:DeleteSourceManipulationChange.java


示例11: perform

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
/** {@inheritDoc} */
public Change perform(IProgressMonitor pm) throws CoreException {
  if (fValidationState == null || fValidationState.isValid(needsSaving(), false).hasFatalError())
    return new NullChange();
  if (pm == null) pm = new NullProgressMonitor();
  ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
  pm.beginTask("", 2); // $NON-NLS-1$
  ITextFileBuffer buffer = null;
  try {
    manager.connect(fFile.getFullPath(), LocationKind.IFILE, new SubProgressMonitor(pm, 1));
    buffer = manager.getTextFileBuffer(fFile.getFullPath(), LocationKind.IFILE);
    IDocument document = buffer.getDocument();
    ContentStamp currentStamp = ContentStamps.get(fFile, document);
    // perform the changes
    LinkedList list = new LinkedList();
    for (int index = 0; index < fUndos.length; index++) {
      UndoEdit edit = fUndos[index];
      UndoEdit redo = edit.apply(document, TextEdit.CREATE_UNDO);
      list.addFirst(redo);
    }

    // try to restore the document content stamp
    boolean success = ContentStamps.set(document, fContentStampToRestore);
    if (needsSaving()) {
      buffer.commit(pm, false);
      if (!success) {
        // We weren't able to restore document stamp.
        // Since we save restore the file stamp instead
        ContentStamps.set(fFile, fContentStampToRestore);
      }
    }
    return createUndoChange((UndoEdit[]) list.toArray(new UndoEdit[list.size()]), currentStamp);
  } catch (BadLocationException e) {
    throw Changes.asCoreException(e);
  } finally {
    if (buffer != null)
      manager.disconnect(fFile.getFullPath(), LocationKind.IFILE, new SubProgressMonitor(pm, 1));
  }
}
 
开发者ID:eclipse,项目名称:che,代码行数:40,代码来源:MultiStateUndoChange.java


示例12: createChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {

	try {
		pm.beginTask(Messages.ForEachLoopToLambdaRefactoring_CreatingChange, 1);

		return new NullChange(getName());
	} finally {
		pm.done();
	}
}
 
开发者ID:mdarefin,项目名称:Convert-For-Each-Loop-to-Lambda-Expression-Eclipse-Plugin,代码行数:12,代码来源:ForeachLoopToLambdaRefactoring.java


示例13: createCopyResourceChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
private static Change createCopyResourceChange(IResource resource, NewNameProposer nameProposer, INewNameQueries copyQueries, IContainer destination) {
	if (resource == null || destination == null)
		return new NullChange();
	INewNameQuery nameQuery;
	String name= nameProposer.createNewName(resource, destination);
	if (name == null)
		nameQuery= copyQueries.createNullQuery();
	else
		nameQuery= copyQueries.createNewResourceNameQuery(resource, name);
	return new CopyResourceChange(resource, destination, nameQuery);
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:12,代码来源:ReorgPolicyFactory.java


示例14: createChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
private Change createChange(ICompilationUnit cu) {
	IPackageFragment pack= getDestinationAsPackageFragment();
	if (pack != null)
		return moveCuToPackage(cu, pack);
	IContainer container= getDestinationAsContainer();
	if (container == null)
		return new NullChange();
	return moveFileToContainer(cu, container);
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:10,代码来源:ReorgPolicyFactory.java


示例15: createDeleteChange

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
private static Change createDeleteChange(IJavaElement javaElement) throws JavaModelException {
	Assert.isTrue(! ReorgUtils.isInsideCompilationUnit(javaElement));

	switch(javaElement.getElementType()){
		case IJavaElement.PACKAGE_FRAGMENT_ROOT:
			return createPackageFragmentRootDeleteChange((IPackageFragmentRoot)javaElement);

		case IJavaElement.PACKAGE_FRAGMENT:
			return createSourceManipulationDeleteChange((IPackageFragment)javaElement);

		case IJavaElement.COMPILATION_UNIT:
			return createSourceManipulationDeleteChange((ICompilationUnit)javaElement);

		case IJavaElement.CLASS_FILE:
			//if this assert fails, it means that a precondition is missing
			Assert.isTrue(((IClassFile)javaElement).getResource() instanceof IFile);
			return createDeleteChange(((IClassFile)javaElement).getResource());

		case IJavaElement.JAVA_MODEL: //cannot be done
			Assert.isTrue(false);
			return null;

		case IJavaElement.JAVA_PROJECT: //handled differently
			Assert.isTrue(false);
			return null;

		case IJavaElement.TYPE:
		case IJavaElement.FIELD:
		case IJavaElement.METHOD:
		case IJavaElement.INITIALIZER:
		case IJavaElement.PACKAGE_DECLARATION:
		case IJavaElement.IMPORT_CONTAINER:
		case IJavaElement.IMPORT_DECLARATION:
			Assert.isTrue(false);//not done here
			return new NullChange();
		default:
			Assert.isTrue(false);//there's no more kinds
			return new NullChange();
	}
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:41,代码来源:DeleteChangeCreator.java


示例16: doDelete

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
protected Change doDelete(IProgressMonitor pm) throws CoreException {
	if (! confirmDeleteIfReferenced())
		return new NullChange();
	int resourceUpdateFlags= IResource.KEEP_HISTORY;
	int jCoreUpdateFlags= IPackageFragmentRoot.ORIGINATING_PROJECT_CLASSPATH | IPackageFragmentRoot.OTHER_REFERRING_PROJECTS_CLASSPATH;

	pm.beginTask("", 2); //$NON-NLS-1$
	IPackageFragmentRoot root= getRoot();
	IResource rootResource= root.getResource();
	CompositeChange result= new CompositeChange(getName());

	ResourceDescription rootDescription = ResourceDescription.fromResource(rootResource);
	IJavaProject[] referencingProjects= JavaElementUtil.getReferencingProjects(root);
	HashMap<IFile, String> classpathFilesContents= new HashMap<IFile, String>();
	for (int i= 0; i < referencingProjects.length; i++) {
		IJavaProject javaProject= referencingProjects[i];
		IFile classpathFile= javaProject.getProject().getFile(".classpath"); //$NON-NLS-1$
		if (classpathFile.exists()) {
			classpathFilesContents.put(classpathFile, getFileContents(classpathFile));
		}
	}

	root.delete(resourceUpdateFlags, jCoreUpdateFlags, new SubProgressMonitor(pm, 1));

	rootDescription.recordStateFromHistory(rootResource, new SubProgressMonitor(pm, 1));
	for (Iterator<Entry<IFile, String>> iterator= classpathFilesContents.entrySet().iterator(); iterator.hasNext();) {
		Entry<IFile, String> entry= iterator.next();
		IFile file= entry.getKey();
		String contents= entry.getValue();
		//Restore time stamps? This should probably be some sort of UndoTextFileChange.
		TextFileChange classpathUndo= new TextFileChange(Messages.format(RefactoringCoreMessages.DeletePackageFragmentRootChange_restore_file, BasicElementLabels.getPathLabel(file.getFullPath(), true)), file);
		classpathUndo.setEdit(new ReplaceEdit(0, getFileLength(file), contents));
		result.add(classpathUndo);
	}
	result.add(new UndoDeleteResourceChange(rootDescription));

	pm.done();
	return result;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:41,代码来源:DeletePackageFragmentRootChange.java


示例17: doDelete

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
protected Change doDelete(IProgressMonitor pm) throws CoreException {
	ISourceManipulation element= getSourceManipulation();
	// we have to save dirty compilation units before deleting them. Otherwise
	// we will end up showing ghost compilation units in the package explorer
	// since the primary working copy still exists.
	if (element instanceof ICompilationUnit) {
		pm.beginTask("", 2); //$NON-NLS-1$
		ICompilationUnit unit= (ICompilationUnit)element;
		saveCUnitIfNeeded(unit, new SubProgressMonitor(pm, 1));

		IResource resource= unit.getResource();
		ResourceDescription resourceDescription = ResourceDescription.fromResource(resource);
		element.delete(false, new SubProgressMonitor(pm, 1));
		resourceDescription.recordStateFromHistory(resource, new SubProgressMonitor(pm, 1));
		return new UndoDeleteResourceChange(resourceDescription);

	} else if (element instanceof IPackageFragment) {
		ICompilationUnit[] units= ((IPackageFragment)element).getCompilationUnits();
		pm.beginTask("", units.length + 1); //$NON-NLS-1$
		for (int i = 0; i < units.length; i++) {
			// fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=66835
			saveCUnitIfNeeded(units[i], new SubProgressMonitor(pm, 1));
		}
		element.delete(false, new SubProgressMonitor(pm, 1));
		return new NullChange(); // caveat: real undo implemented by UndoablePackageDeleteChange

	} else {
		element.delete(false, pm);
		return null; //should not happen
	}
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:33,代码来源:DeleteSourceManipulationChange.java


示例18: computeQuickAssistProposals

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
public ICompletionProposal[] computeQuickAssistProposals(IQuickAssistInvocationContext quickAssistContext) {
	ISourceViewer viewer= quickAssistContext.getSourceViewer();
	int documentOffset= quickAssistContext.getOffset();

	IEditorPart part= fAssistant.getEditor();

	ICompilationUnit cu= JavaUI.getWorkingCopyManager().getWorkingCopy(part.getEditorInput());
	IAnnotationModel model= JavaUI.getDocumentProvider().getAnnotationModel(part.getEditorInput());

	AssistContext context= null;
	if (cu != null) {
		int length= viewer != null ? viewer.getSelectedRange().y : 0;
		context= new AssistContext(cu, viewer, part, documentOffset, length);
	}
	
	Annotation[] annotations= fAssistant.getAnnotationsAtOffset();

	fErrorMessage= null;

	ICompletionProposal[] res= null;
	if (model != null && context != null && annotations != null) {
		ArrayList<IJavaCompletionProposal> proposals= new ArrayList<IJavaCompletionProposal>(10);
		IStatus status= collectProposals(context, model, annotations, true, !fAssistant.isUpdatedOffset(), proposals);
		res= proposals.toArray(new ICompletionProposal[proposals.size()]);
		if (!status.isOK()) {
			fErrorMessage= status.getMessage();
			JavaPlugin.log(status);
		}
	}

	if (res == null || res.length == 0) {
		return new ICompletionProposal[] { new ChangeCorrectionProposal(CorrectionMessages.NoCorrectionProposal_description, new NullChange(""), IProposalRelevance.NO_SUGGESSTIONS_AVAILABLE, null) }; //$NON-NLS-1$
	}
	if (res.length > 1) {
		Arrays.sort(res, new CompletionProposalComparator());
	}
	return res;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:39,代码来源:JavaCorrectionProcessor.java


示例19: perform

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
@Override
public Change perform(IProgressMonitor monitor) {
    if (!refactorController.getRefactorModel().isChangeResourcesEmpty()) {
        boolean overallSuccess = true;
        for (IResource resource : refactorController.getRefactorModel().getChangeResources()) {
            if (!resource.exists()) {
                continue;
            }

            if (resource.getType() == IResource.PROJECT) {
                refactorController.deleteSavedProjectContent(resource);
            }

            try {
                resource.delete(true, monitor);
            } catch (CoreException e) {
                String logMessage = Utils.generateCoreExceptionLog(e);
                // catch and display - throwing all the way up will disable
                // the plugin's delete refactoring mechanism
                logger.error("Unable to delete composite file '"
                        + resource.getProjectRelativePath().toPortableString() + "': " + logMessage);
                Utils.openError("Delete Error", "Unable to delete composite file '"
                        + resource.getProjectRelativePath().toPortableString() + "': " + e.getMessage());
                overallSuccess = false;
                continue;
            }

            if (logger.isInfoEnabled()) {
                logger.info("Deleted composite resource '" + resource.getFullPath().toPortableString() + "'");
            }
        }

        setSuccess(overallSuccess);
    }

    return new NullChange();
}
 
开发者ID:forcedotcom,项目名称:idecore,代码行数:38,代码来源:DeleteChange.java


示例20: computeQuickAssistProposals

import org.eclipse.ltk.core.refactoring.NullChange; //导入依赖的package包/类
public ICompletionProposal[] computeQuickAssistProposals(IQuickAssistInvocationContext quickAssistContext) {
	ISourceViewer viewer= quickAssistContext.getSourceViewer();
	int documentOffset= quickAssistContext.getOffset();

	IEditorPart part= fAssistant.getEditor();

	ICompilationUnit cu= JavaUI.getWorkingCopyManager().getWorkingCopy(part.getEditorInput());
	IAnnotationModel model= JavaUI.getDocumentProvider().getAnnotationModel(part.getEditorInput());

	AssistContext context= null;
	if (cu != null) {
		int length= viewer != null ? viewer.getSelectedRange().y : 0;
		context= new AssistContext(cu, viewer, part, documentOffset, length);
	}
	
	Annotation[] annotations= fAssistant.getAnnotationsAtOffset();

	fErrorMessage= null;

	ICompletionProposal[] res= null;
	if (model != null && context != null && annotations != null) {
		ArrayList<IJavaCompletionProposal> proposals= new ArrayList<IJavaCompletionProposal>(10);
		IStatus status= collectProposals(context, model, annotations, true, !fAssistant.isUpdatedOffset(), proposals);
		res= proposals.toArray(new ICompletionProposal[proposals.size()]);
		if (!status.isOK()) {
			fErrorMessage= status.getMessage();
			JavaPlugin.log(status);
		}
	}

	if (res == null || res.length == 0) {
		return new ICompletionProposal[] { new ChangeCorrectionProposal(CorrectionMessages.NoCorrectionProposal_description, new NullChange(""), 0, null) }; //$NON-NLS-1$
	}
	if (res.length > 1) {
		Arrays.sort(res, new CompletionProposalComparator());
	}
	return res;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion-Juno38,代码行数:39,代码来源:JavaCorrectionProcessor.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java OperationContext类代码示例发布时间:2022-05-22
下一篇:
Java UICommand类代码示例发布时间: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