1 /******************************************************************************* 2 * Copyright (c) 2008, 2017 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.pde.api.tools.internal.provisional.problems; 15 16 import org.eclipse.pde.api.tools.internal.provisional.comparator.IDelta; 17 import org.eclipse.pde.api.tools.internal.util.Util; 18 19 /** 20 * API problem types. 21 * 22 * @since 1.0 23 * @noimplement This interface is not intended to be implemented by clients. 24 */ 25 public interface IApiProblemTypes { 26 27 // Compatibility problems 28 public static final String API_COMPONENT_REMOVED_TYPE = Util.getDeltaPrefererenceKey(IDelta.API_COMPONENT_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE); 29 public static final String API_COMPONENT_REMOVED_API_TYPE = Util.getDeltaPrefererenceKey(IDelta.API_COMPONENT_ELEMENT_TYPE, IDelta.REMOVED, IDelta.API_TYPE); 30 // Compatibility problems 31 public static final String API_COMPONENT_REMOVED_REEXPORTED_TYPE = Util.getDeltaPrefererenceKey(IDelta.API_COMPONENT_ELEMENT_TYPE, IDelta.REMOVED, IDelta.REEXPORTED_TYPE); 32 public static final String API_COMPONENT_REMOVED_REEXPORTED_API_TYPE = Util.getDeltaPrefererenceKey(IDelta.API_COMPONENT_ELEMENT_TYPE, IDelta.REMOVED, IDelta.REEXPORTED_API_TYPE); 33 public static final String ANNOTATION_ADDED_FIELD = Util.getDeltaPrefererenceKey(IDelta.ANNOTATION_ELEMENT_TYPE, IDelta.ADDED, IDelta.FIELD); 34 public static final String ANNOTATION_REMOVED_FIELD = Util.getDeltaPrefererenceKey(IDelta.ANNOTATION_ELEMENT_TYPE, IDelta.REMOVED, IDelta.FIELD); 35 public static final String ANNOTATION_REMOVED_METHOD = Util.getDeltaPrefererenceKey(IDelta.ANNOTATION_ELEMENT_TYPE, IDelta.REMOVED, IDelta.METHOD); 36 public static final String ANNOTATION_REMOVED_TYPE_MEMBER = Util.getDeltaPrefererenceKey(IDelta.ANNOTATION_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_MEMBER); 37 public static final String ANNOTATION_CHANGED_TYPE_CONVERSION = Util.getDeltaPrefererenceKey(IDelta.ANNOTATION_ELEMENT_TYPE, IDelta.CHANGED, IDelta.TYPE_CONVERSION); 38 public static final String ANNOTATION_ADDED_METHOD_NO_DEFAULT_VALUE = Util.getDeltaPrefererenceKey(IDelta.ANNOTATION_ELEMENT_TYPE, IDelta.ADDED, IDelta.METHOD_WITHOUT_DEFAULT_VALUE); 39 // interface key constant 40 public static final String INTERFACE_ADDED_FIELD = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.ADDED, IDelta.FIELD); 41 public static final String INTERFACE_ADDED_METHOD = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.ADDED, IDelta.METHOD); 42 public static final String INTERFACE_ADDED_DEFAULT_METHOD = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.ADDED, IDelta.DEFAULT_METHOD); 43 public static final String INTERFACE_ADDED_RESTRICTIONS = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.ADDED, IDelta.RESTRICTIONS); 44 public static final String INTERFACE_ADDED_SUPER_INTERFACE_WITH_METHODS = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.ADDED, IDelta.SUPER_INTERFACE_WITH_METHODS); 45 public static final String INTERFACE_ADDED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.ADDED, IDelta.TYPE_PARAMETER); 46 public static final String INTERFACE_REMOVED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_PARAMETER); 47 public static final String INTERFACE_REMOVED_FIELD = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.REMOVED, IDelta.FIELD); 48 public static final String INTERFACE_REMOVED_METHOD = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.REMOVED, IDelta.METHOD); 49 public static final String INTERFACE_REMOVED_TYPE_MEMBER = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_MEMBER); 50 public static final String INTERFACE_CHANGED_TYPE_CONVERSION = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.CHANGED, IDelta.TYPE_CONVERSION); 51 public static final String INTERFACE_CHANGED_CONTRACTED_SUPERINTERFACES_SET = Util.getDeltaPrefererenceKey(IDelta.INTERFACE_ELEMENT_TYPE, IDelta.CHANGED, IDelta.CONTRACTED_SUPERINTERFACES_SET); 52 // enum key constant 53 public static final String ENUM_CHANGED_CONTRACTED_SUPERINTERFACES_SET = Util.getDeltaPrefererenceKey(IDelta.ENUM_ELEMENT_TYPE, IDelta.CHANGED, IDelta.CONTRACTED_SUPERINTERFACES_SET); 54 public static final String ENUM_CHANGED_TYPE_CONVERSION = Util.getDeltaPrefererenceKey(IDelta.ENUM_ELEMENT_TYPE, IDelta.CHANGED, IDelta.TYPE_CONVERSION); 55 public static final String ENUM_REMOVED_FIELD = Util.getDeltaPrefererenceKey(IDelta.ENUM_ELEMENT_TYPE, IDelta.REMOVED, IDelta.FIELD); 56 public static final String ENUM_REMOVED_ENUM_CONSTANT = Util.getDeltaPrefererenceKey(IDelta.ENUM_ELEMENT_TYPE, IDelta.REMOVED, IDelta.ENUM_CONSTANT); 57 public static final String ENUM_REMOVED_METHOD = Util.getDeltaPrefererenceKey(IDelta.ENUM_ELEMENT_TYPE, IDelta.REMOVED, IDelta.METHOD); 58 public static final String ENUM_REMOVED_TYPE_MEMBER = Util.getDeltaPrefererenceKey(IDelta.ENUM_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_MEMBER); 59 // class key constant 60 public static final String CLASS_ADDED_FIELD = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.ADDED, IDelta.FIELD); 61 public static final String CLASS_ADDED_METHOD = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.ADDED, IDelta.METHOD); 62 public static final String CLASS_ADDED_RESTRICTIONS = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.ADDED, IDelta.RESTRICTIONS); 63 public static final String CLASS_ADDED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.ADDED, IDelta.TYPE_PARAMETER); 64 public static final String CLASS_CHANGED_CONTRACTED_SUPERINTERFACES_SET = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.CHANGED, IDelta.CONTRACTED_SUPERINTERFACES_SET); 65 public static final String CLASS_CHANGED_NON_ABSTRACT_TO_ABSTRACT = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_ABSTRACT_TO_ABSTRACT); 66 public static final String CLASS_CHANGED_NON_FINAL_TO_FINAL = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_FINAL_TO_FINAL); 67 public static final String CLASS_CHANGED_TYPE_CONVERSION = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.CHANGED, IDelta.TYPE_CONVERSION); 68 public static final String CLASS_CHANGED_DECREASE_ACCESS = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.CHANGED, IDelta.DECREASE_ACCESS); 69 public static final String CLASS_REMOVED_FIELD = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.REMOVED, IDelta.FIELD); 70 public static final String CLASS_REMOVED_METHOD = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.REMOVED, IDelta.METHOD); 71 public static final String CLASS_REMOVED_CONSTRUCTOR = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.REMOVED, IDelta.CONSTRUCTOR); 72 public static final String CLASS_REMOVED_TYPE_MEMBER = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_MEMBER); 73 public static final String CLASS_REMOVED_SUPERCLASS = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.REMOVED, IDelta.SUPERCLASS); 74 public static final String CLASS_REMOVED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.CLASS_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_PARAMETER); 75 76 // field key constant 77 public static final String FIELD_ADDED_VALUE = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.ADDED, IDelta.VALUE); 78 public static final String FIELD_CHANGED_TYPE = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.TYPE); 79 public static final String FIELD_CHANGED_VALUE = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.VALUE); 80 public static final String FIELD_CHANGED_DECREASE_ACCESS = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.DECREASE_ACCESS); 81 public static final String FIELD_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.FINAL_TO_NON_FINAL_STATIC_CONSTANT); 82 public static final String FIELD_CHANGED_NON_FINAL_TO_FINAL = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_FINAL_TO_FINAL); 83 public static final String FIELD_CHANGED_STATIC_TO_NON_STATIC = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.STATIC_TO_NON_STATIC); 84 public static final String FIELD_CHANGED_NON_STATIC_TO_STATIC = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_STATIC_TO_STATIC); 85 public static final String FIELD_REMOVED_VALUE = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.REMOVED, IDelta.VALUE); 86 public static final String FIELD_REMOVED_TYPE_ARGUMENT = Util.getDeltaPrefererenceKey(IDelta.FIELD_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_ARGUMENT); 87 // method key constant 88 public static final String METHOD_ADDED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.ADDED, IDelta.TYPE_PARAMETER); 89 public static final String METHOD_ADDED_RESTRICTIONS = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.ADDED, IDelta.RESTRICTIONS); 90 public static final String METHOD_CHANGED_VARARGS_TO_ARRAY = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.VARARGS_TO_ARRAY); 91 public static final String METHOD_CHANGED_DECREASE_ACCESS = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.DECREASE_ACCESS); 92 public static final String METHOD_CHANGED_NON_ABSTRACT_TO_ABSTRACT = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_ABSTRACT_TO_ABSTRACT); 93 public static final String METHOD_CHANGED_NON_STATIC_TO_STATIC = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_STATIC_TO_STATIC); 94 public static final String METHOD_CHANGED_STATIC_TO_NON_STATIC = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.STATIC_TO_NON_STATIC); 95 public static final String METHOD_CHANGED_NON_FINAL_TO_FINAL = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.CHANGED, IDelta.NON_FINAL_TO_FINAL); 96 public static final String METHOD_REMOVED_ANNOTATION_DEFAULT_VALUE = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.REMOVED, IDelta.ANNOTATION_DEFAULT_VALUE); 97 public static final String METHOD_REMOVED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.METHOD_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_PARAMETER); 98 99 // constructor key constant 100 public static final String CONSTRUCTOR_ADDED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.CONSTRUCTOR_ELEMENT_TYPE, IDelta.ADDED, IDelta.TYPE_PARAMETER); 101 public static final String CONSTRUCTOR_CHANGED_VARARGS_TO_ARRAY = Util.getDeltaPrefererenceKey(IDelta.CONSTRUCTOR_ELEMENT_TYPE, IDelta.CHANGED, IDelta.VARARGS_TO_ARRAY); 102 public static final String CONSTRUCTOR_CHANGED_DECREASE_ACCESS = Util.getDeltaPrefererenceKey(IDelta.CONSTRUCTOR_ELEMENT_TYPE, IDelta.CHANGED, IDelta.DECREASE_ACCESS); 103 public static final String CONSTRUCTOR_REMOVED_TYPE_PARAMETER = Util.getDeltaPrefererenceKey(IDelta.CONSTRUCTOR_ELEMENT_TYPE, IDelta.REMOVED, IDelta.TYPE_PARAMETER); 104 105 public static final String TYPE_PARAMETER_ADDED_CLASS_BOUND = Util.getDeltaPrefererenceKey(IDelta.TYPE_PARAMETER_ELEMENT_TYPE, IDelta.ADDED, IDelta.CLASS_BOUND); 106 public static final String TYPE_PARAMETER_CHANGED_CLASS_BOUND = Util.getDeltaPrefererenceKey(IDelta.TYPE_PARAMETER_ELEMENT_TYPE, IDelta.CHANGED, IDelta.CLASS_BOUND); 107 public static final String TYPE_PARAMETER_REMOVED_CLASS_BOUND = Util.getDeltaPrefererenceKey(IDelta.TYPE_PARAMETER_ELEMENT_TYPE, IDelta.REMOVED, IDelta.CLASS_BOUND); 108 public static final String TYPE_PARAMETER_ADDED_INTERFACE_BOUND = Util.getDeltaPrefererenceKey(IDelta.TYPE_PARAMETER_ELEMENT_TYPE, IDelta.ADDED, IDelta.INTERFACE_BOUND); 109 public static final String TYPE_PARAMETER_CHANGED_INTERFACE_BOUND = Util.getDeltaPrefererenceKey(IDelta.TYPE_PARAMETER_ELEMENT_TYPE, IDelta.CHANGED, IDelta.INTERFACE_BOUND); 110 public static final String TYPE_PARAMETER_REMOVED_INTERFACE_BOUND = Util.getDeltaPrefererenceKey(IDelta.TYPE_PARAMETER_ELEMENT_TYPE, IDelta.REMOVED, IDelta.INTERFACE_BOUND); 111 112 public static final String REPORT_API_BREAKAGE_WHEN_MAJOR_VERSION_INCREMENTED = "report_api_breakage_when_major_version_incremented"; //$NON-NLS-1$ 113 114 /** 115 * @since 1.1 116 */ 117 public static final String AUTOMATICALLY_REMOVE_UNUSED_PROBLEM_FILTERS = "automatically_removed_unused_problem_filters"; //$NON-NLS-1$ 118 /** 119 * @since 1.1 120 */ 121 public static final String FATAL_PROBLEMS = "fatal_problems"; //$NON-NLS-1$ 122 123 // Version numbering problems 124 public static final String MISSING_SINCE_TAG = "missing_since_tag"; //$NON-NLS-1$ 125 public static final String MALFORMED_SINCE_TAG = "malformed_since_tag"; //$NON-NLS-1$ 126 public static final String INVALID_SINCE_TAG_VERSION = "invalid_since_tag_version"; //$NON-NLS-1$ 127 public static final String CHANGED_EXECUTION_ENV = "changed_execution_env"; //$NON-NLS-1$ 128 public static final String INCOMPATIBLE_API_COMPONENT_VERSION = "incompatible_api_component_version"; //$NON-NLS-1$ 129 public static final String INCOMPATIBLE_API_COMPONENT_VERSION_REPORT_MINOR_WITHOUT_API_CHANGE = "incompatible_api_component_version_report_minor_without_api_change"; //$NON-NLS-1$ 130 public static final String INCOMPATIBLE_API_COMPONENT_VERSION_REPORT_MAJOR_WITHOUT_BREAKING_CHANGE = "incompatible_api_component_version_report_major_without_breaking_change"; //$NON-NLS-1$ 131 132 public static final String MISSING_DEFAULT_API_BASELINE = "missing_default_api_profile"; //$NON-NLS-1$ 133 public static final String REPORT_RESOLUTION_ERRORS_API_COMPONENT = "report_resolution_errors_api_component"; //$NON-NLS-1$ 134 135 // API usage problems 136 /** 137 * Key for the severity of illegally implementing an interface marked as 138 * '@noimplement'. 139 */ 140 public static final String ILLEGAL_IMPLEMENT = "ILLEGAL_IMPLEMENT"; //$NON-NLS-1$ 141 /** 142 * Key for the severity of illegally extending a member marked as 143 * '@noextend'. 144 */ 145 public static final String ILLEGAL_EXTEND = "ILLEGAL_EXTEND"; //$NON-NLS-1$ 146 /** 147 * Key for the severity of illegally referencing a member marked as 148 * '@noreference'. 149 */ 150 public static final String ILLEGAL_REFERENCE = "ILLEGAL_REFERENCE"; //$NON-NLS-1$ 151 /** 152 * Key for the severity of illegally instantiating a type marked as 153 * '@noinstantiate'. 154 */ 155 public static final String ILLEGAL_INSTANTIATE = "ILLEGAL_INSTANTIATE"; //$NON-NLS-1$ 156 157 /** 158 * Key for the severity of illegally overriding a member marked as 159 * '@extend'. 160 */ 161 public static final String ILLEGAL_OVERRIDE = "ILLEGAL_OVERRIDE"; //$NON-NLS-1$ 162 163 /** 164 * Key for leaking an internal type through extension 165 */ 166 public static final String LEAK_EXTEND = "LEAK_EXTEND"; //$NON-NLS-1$ 167 /** 168 * Key for leaking an internal type through implements 169 */ 170 public static final String LEAK_IMPLEMENT = "LEAK_IMPLEMENT"; //$NON-NLS-1$ 171 /** 172 * Key for leaking an internal type through a field declaration 173 */ 174 public static final String LEAK_FIELD_DECL = "LEAK_FIELD_DECL"; //$NON-NLS-1$ 175 /** 176 * Key for leaking an internal type through a method return type 177 */ 178 public static final String LEAK_METHOD_RETURN_TYPE = "LEAK_METHOD_RETURN_TYPE"; //$NON-NLS-1$ 179 /** 180 * Key for leaking an internal type through a method parameter 181 */ 182 public static final String LEAK_METHOD_PARAM = "LEAK_METHOD_PARAM"; //$NON-NLS-1$ 183 /** 184 * Key for an invalid javadoc tag appearing where it does not belong 185 */ 186 public static final String INVALID_JAVADOC_TAG = "INVALID_JAVADOC_TAG"; //$NON-NLS-1$ 187 /** 188 * Key for an annotation appearing where it is not supported 189 * 190 * @since 1.0.600 191 */ 192 public static final String INVALID_ANNOTATION = "INVALID_ANNOTATION"; //$NON-NLS-1$ 193 /** 194 * Key for the severity of referencing a type/method/field that does not 195 * belong to the corresponding EE of the bundle 196 */ 197 public static final String INVALID_REFERENCE_IN_SYSTEM_LIBRARIES = "INVALID_REFERENCE_IN_SYSTEM_LIBRARIES"; //$NON-NLS-1$ 198 /** 199 * Key for the severity of an unused API problem filter. 200 */ 201 public static final String UNUSED_PROBLEM_FILTERS = "UNUSED_PROBLEM_FILTERS"; //$NON-NLS-1$ 202 /** 203 * Key for the severity of no EE descriptions being installed 204 * 205 * @since 1.0.400 206 */ 207 public static final String MISSING_EE_DESCRIPTIONS = "MISSING_EE_DESCRIPTIONS"; //$NON-NLS-1$ 208 /** 209 * Key for the severity of API Use Scan Type breakage problems. 210 */ 211 public static final String API_USE_SCAN_TYPE_SEVERITY = "API_USE_SCAN_TYPE_SEVERITY"; //$NON-NLS-1$ 212 /** 213 * Key for the severity of API Use Scan Method breakage problems. 214 */ 215 public static final String API_USE_SCAN_METHOD_SEVERITY = "API_USE_SCAN_METHOD_SEVERITY"; //$NON-NLS-1$ 216 /** 217 * Key for the severity of API Use Scan Field breakage problems. 218 */ 219 public static final String API_USE_SCAN_FIELD_SEVERITY = "API_USE_SCAN_FIELD_SEVERITY"; //$NON-NLS-1$ 220 } 221