diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java index 146c1814e7..2694b56dad 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java @@ -173,8 +173,6 @@ private CorrectionMessages() { public static String UnimplementedCodeFix_TextEditGroup_label; public static String UnresolvedElementsSubProcessor_swaparguments_description; - public static String UnresolvedElementsSubProcessor_add_annotation_bundle_description; - public static String UnresolvedElementsSubProcessor_add_annotation_bundle_info; public static String UnresolvedElementsSubProcessor_add_static_import_description; public static String UnresolvedElementsSubProcessor_addargumentcast_description; public static String UnresolvedElementsSubProcessor_changemethod_description; diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties index 567ab7c2a5..7ee367e3e5 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties @@ -184,8 +184,6 @@ MissingAnnotationAttributesProposal_add_missing_attributes_label=Add missing att MissingReturnTypeCorrectionProposal_changereturnstatement_description=Change return statement UnresolvedElementsSubProcessor_swaparguments_description=Swap arguments {0} and {1} -UnresolvedElementsSubProcessor_add_annotation_bundle_description=Add library with default null annotations to build path -UnresolvedElementsSubProcessor_add_annotation_bundle_info=Adds the library with default null annotations to the build path so that it is visible at compile time, but avoids a dependency on ''org.eclipse.jdt.annotation'' at run time.

Adds this entry to ''build.properties'':
{0} UnresolvedElementsSubProcessor_add_static_import_description=Add static import for ''{0}'' UnresolvedElementsSubProcessor_addargumentcast_description=Cast argument {0} to ''{1}'' UnresolvedElementsSubProcessor_changemethod_description=Change to ''{0}(..)'' diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java index db38590611..d1357caafc 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java @@ -269,7 +269,6 @@ public interface IProposalRelevance { public static final int CONVERT_TO_MESSAGE_FORMAT= 0; public static final int COPY_ANNOTATION_JAR= 0; - public static final int ADD_ANNOTATION_BUNDLE= 0; public static final int NO_SUGGESSTIONS_AVAILABLE= 0; public static final int ADD_QUOTE= 0; public static final int NEW_TYPE= 0; diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java index 35c877a2b0..e082014b6d 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java @@ -34,29 +34,12 @@ import org.eclipse.core.runtime.Status; import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.filebuffers.ITextFileBuffer; -import org.eclipse.core.filebuffers.ITextFileBufferManager; -import org.eclipse.core.filebuffers.LocationKind; - -import org.eclipse.text.edits.InsertEdit; -import org.eclipse.text.edits.MultiTextEdit; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.FindReplaceDocumentAdapter; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.TextUtilities; - import org.eclipse.ui.ISharedImages; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.CompositeChange; -import org.eclipse.ltk.core.refactoring.NullChange; -import org.eclipse.ltk.core.refactoring.TextFileChange; import org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange; import org.eclipse.ltk.core.refactoring.resource.ResourceChange; @@ -126,7 +109,6 @@ import org.eclipse.jdt.internal.corext.dom.Bindings; import org.eclipse.jdt.internal.corext.dom.ScopeAnalyzer; import org.eclipse.jdt.internal.corext.refactoring.changes.ClasspathChange; -import org.eclipse.jdt.internal.corext.refactoring.nls.changes.CreateFileChange; import org.eclipse.jdt.internal.corext.util.JavaModelUtil; import org.eclipse.jdt.internal.corext.util.Messages; import org.eclipse.jdt.internal.corext.util.QualifiedTypeNameHistory; @@ -703,72 +685,10 @@ private static void addNullityAnnotationTypesProposals(ICompilationUnit cu, Name if (annotationsBundles == null) return; - if (! addAddToBuildPropertiesProposal(cu, node, nullityAnnotation, proposals)) + if (! cu.getJavaProject().getProject().hasNature("org.eclipse.pde.PluginNature")) //$NON-NLS-1$ addCopyAnnotationsJarProposal(cu, node, nullityAnnotation, annotationsBundles[0], proposals); } - private static boolean addAddToBuildPropertiesProposal(final ICompilationUnit cu, final Name name, final String fullyQualifiedName, Collection proposals) throws CoreException { - IProject project= cu.getJavaProject().getProject(); - final IFile buildProperties= project.getFile("build.properties"); //$NON-NLS-1$ - boolean isBundle= project.hasNature("org.eclipse.pde.PluginNature"); //$NON-NLS-1$ - if (!isBundle) - return false; - - final String changeName= CorrectionMessages.UnresolvedElementsSubProcessor_add_annotation_bundle_description; - final String buildPropertiesEntry= "additional.bundles = org.eclipse.jdt.annotation"; //$NON-NLS-1$ - - ChangeCorrectionProposal proposal= new ChangeCorrectionProposal(changeName, null, IProposalRelevance.ADD_ANNOTATION_BUNDLE) { - @Override - protected Change createChange() throws CoreException { - if (!buildProperties.exists()) { - return new CreateFileChange(buildProperties.getFullPath(), buildPropertiesEntry, null); - - } else { - TextFileChange change= new TextFileChange(changeName, buildProperties); - change.setEdit(new MultiTextEdit()); - - ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); - manager.connect(buildProperties.getFullPath(), LocationKind.IFILE, null); - try { - ITextFileBuffer textFileBuffer= manager.getTextFileBuffer(buildProperties.getFullPath(), LocationKind.IFILE); - IDocument document= textFileBuffer.getDocument(); - String lineDelim= TextUtilities.getDefaultLineDelimiter(document); - - IRegion match= new FindReplaceDocumentAdapter(document).find(0, "additional\\.bundles\\s*=\\s*", true, false, false, true); //$NON-NLS-1$ - if (match != null) { - StringBuilder buf= new StringBuilder("org.eclipse.jdt.annotation,\\").append(lineDelim); //$NON-NLS-1$ - int spaces= match.getOffset() + match.getLength() - document.getLineOffset(document.getLineOfOffset(match.getOffset())); - while (spaces-- > 0) - buf.append(' '); - change.addEdit(new InsertEdit(match.getOffset() + match.getLength(), buf.toString())); - } else { - String entry= buildPropertiesEntry + lineDelim; - int len= document.getLength(); - if (len > 0 && document.getLineInformation(document.getNumberOfLines() - 1).getLength() != 0) { - entry= lineDelim + entry; - } - change.addEdit(new InsertEdit(len, entry)); - } - CompilationUnitChange addImportChange= createAddImportChange(cu, name, fullyQualifiedName); - return new CompositeChange(changeName, new Change[] { change, addImportChange}); - } catch (BadLocationException e) { - JavaPlugin.log(e); - return new NullChange(); - } finally { - manager.disconnect(buildProperties.getFullPath(), LocationKind.IFILE, null); - } - } - } - @Override - public Object getAdditionalProposalInfo(IProgressMonitor monitor) { - return Messages.format(CorrectionMessages.UnresolvedElementsSubProcessor_add_annotation_bundle_info, buildPropertiesEntry); - } - }; - proposals.add(proposal); - return true; - } - - private static void addCopyAnnotationsJarProposal(final ICompilationUnit cu, final Name name, final String fullyQualifiedName, Bundle annotationsBundle, Collection proposals) { final IJavaProject javaProject= cu.getJavaProject(); final File bundleFile;