diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/completion/APIToolsJavadocCompletionProposalComputer.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/completion/APIToolsJavadocCompletionProposalComputer.java index 1d6caa1..70b101a 100644 --- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/completion/APIToolsJavadocCompletionProposalComputer.java +++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/completion/APIToolsJavadocCompletionProposalComputer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2011 IBM Corporation and others. + * Copyright (c) 2007, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -44,6 +44,7 @@ import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; +import org.eclipse.pde.api.tools.internal.JavadocTagManager; import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin; import org.eclipse.pde.api.tools.internal.provisional.IApiJavadocTag; import org.eclipse.pde.api.tools.internal.util.Util; @@ -134,7 +135,7 @@ switch(elementtype) { case IJavaElement.METHOD: { IMethod method = (IMethod) element; - if(Flags.isPrivate(method.getFlags())) { + if(Flags.isPrivate(method.getFlags()) || Flags.isPackageDefault(method.getFlags())) { return Collections.EMPTY_LIST; } member = IApiJavadocTag.MEMBER_METHOD; @@ -146,7 +147,7 @@ case IJavaElement.FIELD: { IField field = (IField) element; int flags = field.getFlags(); - if(Flags.isFinal(flags) || field.isEnumConstant() || Flags.isPrivate(flags)) { + if(Flags.isFinal(flags) || field.isEnumConstant() || Flags.isPrivate(flags) || Flags.isPackageDefault(flags)) { return Collections.EMPTY_LIST; } member = IApiJavadocTag.MEMBER_FIELD; diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/CoreMessages.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/CoreMessages.java index 393031b..cec443b 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/CoreMessages.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/CoreMessages.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2012 IBM Corporation and others. + * Copyright (c) 2008, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TagValidator.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TagValidator.java index 4cf1adb..2c410ec 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TagValidator.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TagValidator.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2009 IBM Corporation and others. + * Copyright (c) 2008, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -144,6 +144,7 @@ String context = null; int mods = method.getModifiers(); boolean isprivate = Flags.isPrivate(mods); + boolean isdefault = Flags.isPackageDefault(mods); boolean isconstructor = method.isConstructor(); boolean isfinal = Flags.isFinal(mods); boolean isstatic = Flags.isStatic(mods); @@ -159,7 +160,10 @@ } default: { pfinal = Flags.isFinal(getParentModifiers(method)); - if(isprivate) { + if(isdefault) { + context = isconstructor ? "a package default constructor" : "a package default method"; + } + else if(isprivate) { context = isconstructor ? BuilderMessages.TagValidator_private_constructor : BuilderMessages.TagValidator_private_method; } else if(isstatic && isfinal) { @@ -181,7 +185,7 @@ } } IApiJavadocTag[] validtags = NO_TAGS; - if(!isprivate) { + if(!isprivate && !isdefault) { validtags = jtm.getTagsForType(pkind, isconstructor ? IApiJavadocTag.MEMBER_CONSTRUCTOR : IApiJavadocTag.MEMBER_METHOD); } if(isfinal || isstatic || pfinal) { @@ -207,21 +211,31 @@ int pkind = getParentKind(node); String context = null; boolean isfinal = Flags.isFinal(field.getModifiers()); + boolean isdefault = Flags.isPackageDefault(field.getModifiers()); boolean isprivate = Flags.isPrivate(field.getModifiers()); switch(pkind) { case IApiJavadocTag.TYPE_ANNOTATION: { + //no tags are supported on any member regardless of visibility context = BuilderMessages.TagValidator_annotation_field; - if(isfinal) { - context = BuilderMessages.TagValidator_a_final_annotation_field; - } break; } case IApiJavadocTag.TYPE_ENUM: { - context = isprivate ? BuilderMessages.TagValidator_private_enum_field : BuilderMessages.TagValidator_enum_field; + if(isprivate) { + context = BuilderMessages.TagValidator_private_enum_field; + } + else if(isdefault) { + context = "a package default enum field"; + } + else { + context = BuilderMessages.TagValidator_enum_field; + } break; } default: { - if(isprivate) { + if(isdefault) { + context = "a package default field"; + } + else if(isprivate) { context = BuilderMessages.TagValidator_private_field; } else { @@ -231,7 +245,7 @@ } } IApiJavadocTag[] validtags = NO_TAGS; - if(!isprivate && !isfinal) { + if(!isprivate && !isfinal && !isdefault) { validtags = jtm.getTagsForType(pkind, IApiJavadocTag.MEMBER_FIELD); } processTags(getTypeName(field), tags, validtags, IElementDescriptor.FIELD, context); diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/coremessages.properties b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/coremessages.properties index a3f54bf..cb5b9ea 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/coremessages.properties +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/coremessages.properties @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2008, 2012 IBM Corporation and others. +# Copyright (c) 2008, 2013 IBM Corporation and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/scanner/TagScanner.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/scanner/TagScanner.java index 5e48b15..1fb5625 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/scanner/TagScanner.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/scanner/TagScanner.java @@ -154,6 +154,8 @@ } break; } + default: + break; } } return false; @@ -216,7 +218,7 @@ ldesc = resolveMethod((IMethodDescriptor)ldesc); } catch (CoreException e) { if (fProblems == null){ - fProblems = new MultiStatus(ApiPlugin.PLUGIN_ID, 0, "Problems encountered while scanning tags", null); + fProblems = new MultiStatus(ApiPlugin.PLUGIN_ID, 0, ScannerMessages.TagScanner_0, null); } fProblems.add(e.getStatus()); } @@ -258,6 +260,10 @@ pruned.add(tag); continue; } + } + if("@noreference".equals(tagname)) { //$NON-NLS-1$ + pruned.add(tag); + continue; } } } @@ -303,6 +309,8 @@ } break; } + default: + break; } return pruned; } @@ -398,7 +406,7 @@ return true; } private boolean isPrivate(int flags) { - return Flags.isPrivate(flags); + return Flags.isPrivate(flags) || Flags.isPackageDefault(flags); } /** * Returns a method descriptor with a resolved signature for the given method