blob: 9581b5576c280cc70702dd57ccddfdbfbb78eea6 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2008, 2012. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="../../../book.css" type="text/css">
<title>API Errors and Warnings Preferences</title>
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"> </script>
</head>
<body>
<h1> API Errors and Warnings Preferences </h1>
<p> The following preferences can be set using the <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.pde.api.tools.ui.apitools.errorwarnings.prefpage)")'> <img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="Opens the Console preference page"> <b>Plug-in Development &gt; API Errors/Warnings</b></a> preference page.
</p>
<p>
API problems are created during project builds (auto and full builds), the tooling breaks down the types of problems reported into one of three categories:</p>
<ol>
<li><strong><a href="#usage">Usage Problems</a></strong> - restricted code is being called by unauthorized plug-ins</li>
<li><strong><a href="#compat">API Incompatibilities</a></strong> - changes between versions are not compatible</li>
<li><strong><a href="#version">Version Problems</a></strong> - plug-in versions or code versions (@since tags) not correct</li>
<li><strong><a href="#analysis">Analysis Options</a></strong> - general options</li>
</ol>
<p>You can also configure the problem severities on a per project basis as well,
by using the <a href="../propertypages/ref-errorswarnings-prop.htm"><strong>API Errors/Warnings</strong></a> property page for a project<br>
</p>
<h2><a name="usage"></a>API Use</h2>
<p>
<img src="../images/api_options_usage.png" alt="API Usage option preference page">
</p>
<h3>General</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" width="5%" align="center"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unsupported use of API Javadoc Tags</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check for API Javadoc tags used incorrectly.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Reference not defined in specified execution environment</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check for references to system libraries that might
be illegal according to the <a href="http://wiki.eclipse.org/Execution_Environments">execution environment</a> specified for the bundle.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
</tbody>
</table>
<h3>Restrictions</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"><p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Implementing an interface marked as '@noimplement'</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check for illegal implementation of marked interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Extending a type marked '@noextend'</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check for classes that extend marked types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Referencing a field or method marked '@noreference'</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check for field and method references to tagged members.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Instantiating a class tagged '@noinstantiate'</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check that tagged classes are not instantiated.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Overriding a method marked as '@nooverride'</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check that tagged methods in parent classes are not overridden in any child class either by extending (re-implement with a call to the overridden parent) or re-implementing (with no call to the overridden parent).</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h3>Leaks</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Extends a non-API class</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API classes extend non-API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Implements a non-API interface</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API classes implement a non-API interface</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Field with non-API type</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API types have public or protected fields with non-API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Method with a non-API return type</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API types have public or protected methods with non-API return types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Method with non-API parameter type</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API types have public or protected methods with non-API parameter types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h2><a name="compat"></a>API Compatibility</h2>
<p>
<img src="../images/api_options_compatibility.png" alt="API Compatibility option preference page">
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Report API breakage even if authorized by major version increment</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will report problems for API breakages even if the major version of the bundle has already been incremented.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Disabled</p></td>
</tr>
</tbody>
</table>
<h3>Bundle</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An API type has become non-API</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API types in the current bundle have been changed to non-API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API types have been removed from the API scope in the given bundle.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An API re-exported type has become non-API</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API re-exported types in the current bundle have been changed to non-API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A re-exported type has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API re-exported types have been removed from the API scope in the given bundle.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Class</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method (that needs to be implemented) has been added:</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods that need to be implemented have been added to any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Restrictions have been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if API restrictions have been added for any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any type parameters have been added to any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The superinterfaces hierarchy has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any parent interfaces have been removed from any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'abstract' has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the 'abstract' keyword has been added to any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'final' has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the 'final' keyword has been added to any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Converted to annotation, enum, or interface</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API classes have been changed to annotations, enums, or interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The visibility has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public API classes have been made private or default scope.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A field has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected fields have been removed from any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods have been removed from any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A constructor has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected constructors have been removed from any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The superclass hierarchy has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any superclasses have been removed from the hierarchy.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A member type has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any member types have been removed from any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any type parameters have been removed from any API classes.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Interface</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A field (interface not tagged as '@noimplement') has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public fields have been added to any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method (interface not tagged as '@noimplement') has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public methods have been added to any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Restrictions have been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if API restrictions have added for any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any type parameters have been added to any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Converted to class, enum, or annotation</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API interfaces have been changed to classes, enums, or interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The superinterfaces hierarchy has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any parent interfaces have been removed for any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any type parameters have been removed from any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A field has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public fields have been removed from any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public methods have been removed from any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A member type has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if nay member types have been removed from any API interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Enum</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The superinterfaces hierarchy has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any parent interfaces have been removed from any API enums.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Converted to annotation, class, or interface</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API enums have been changed to annotations, classes, or interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A field has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public fields have been removed from any API enums.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An enum constant has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any enum constants have been removed from any API enums.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public methods have been removed from any API enums.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A member type has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any member types have been removed from any API enums.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Annotation</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method without a default value has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a method without a default value has been added to API annotations.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Converted to class, enum, or interface</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any API annotations have been converted to classes, enums or interfaces.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A field has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public fields have been removed from any API annotations.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A method has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public methods have been removed from any API annotations.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A member type has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public member types have been removed from any API annotations.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Field</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A constant value has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a constant value has been added to any previously un-initialized public or protected field constants for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The type has been modified</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the type of any public or protected fields has been changed for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The constant value has been modified</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the value of any public or protected field constants has been changed in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The visibility has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected fields have been made private in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'final' has been removed for static constant</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected fields have had the final keyword removed in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'final' has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the final keyword has been added to any public or protected fields in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'static' has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the static keyword has been removed from any public or protected fields in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'static' has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the static keyword has been added to any public or protected fields in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The constant value has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the value of a constant field has been removed for any public or protected field constants in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type argument has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a type argument has been removed from any public or protected fields in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Method</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The @nooverride restriction has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the restrictions of any public or protected methods have been changed in any API types by adding the @nooverride tag.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a type parameter has been added to any public or protected methods for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Converted variable argument to array type</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a varargs argument has been expanded to an object array for any public or protected methods for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The visibility has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods have been made private for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'abstract' has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods have been made abstract in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'static' has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods have been made static in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'static' has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods have been made non-static in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The keyword 'final' has been added (type tagged '@noextend')</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public or protected methods have been made final in any API types that have been tagged @noextend.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The annotation default value has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the default value associated with any API annotation method has been removed.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a type parameter has been removed from any public or protected methods for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Constructor</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a type parameter has been added to any public constructors for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Converted variable argument to array type</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any varargs parameters have been expanded to object arrays for any public constructors for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The visibility has been reduced</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any public constructors have been made non-public in any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A type parameter has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a type parameter has been removed from any public constructors for any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3>Type Parameter</h3>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A class bound has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if a class bound has been added to any type parameter of any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An interface bound has been added</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any interface bounds have been added to any type parameter of any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A class bound has been modified</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any class bounds have been changed on any type parameter of any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An interface bound has been modified</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any interface bounds have been changed on any type parameter of any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A class bound has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any class bounds have been removed from any type parameter of any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An interface bound has been removed</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any interface bounds have been removed from any type parameter of any API types.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h2><a name="version" id="version"></a>Version Management</h2>
<p>
<img src="../images/api_options_version.png" alt="API Version Management option preference page">
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Report missing '@since' tags</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if @since tags are missing for types or members added since the version of the API baseline in use.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Report malformed '@since' tags</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any @since tags currently in use are malformed (incorrect syntax).</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Report invalid '@since' tag version</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if any @since tags currently in use have the wrong version.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Report incompatible bundle version</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will check if the bundle version for the plug-in is incorrect, based on any API changes and the current API baseline in use.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Ignore minor version increment without API changes</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>If reporting for incompatible version numbers is enabled, this option can be used to tell the API analysis builder to ignore minor version changes if there has not been an API change compared to the current API baseline.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>On</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Ignore major version increment without API changes</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>If reporting for incompatible version numbers is enabled, this option can be used to tell the API analysis builder to ignore major version changes if there has not been an API change compared to the current API baseline.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>On</p></td>
</tr>
</tbody>
</table>
<h2><a name="analysis" id="analysis"></a>Analysis Options</h2>
<p>
<img src="../images/api_options_analysis.png" alt="Analysis options preference page">
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Bundle missing required constraint/prerequisite</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will report any missing required constraint or prerequisite that prevents the builder from performing a complete analysis. Regardless of the value of this option
the analysis is skipped for the corresponding bundle.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unused API problem filters</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will report any API problem filters that are no longer being used.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h2><a name="usescans" id="usescans"></a>API Use Scans Options</h2>
<p>
<img src="../images/api_options_usescans.png" alt="API use scans options preference page">
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" align="center" width="5%"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unresolved type problem </p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will report any API types that have been removed that are included in any use scan listed on the <strong>API Use Scans</strong> prefrence page.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unresolved method problem</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will report any methods that have been removed that are included in any use scan listed on the <strong>API Use Scans</strong> prefrence page.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unresolved field problem</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>When enabled the API analysis builder will report any fields that have been removed that are included in any use scan listed on the <strong>API Use Scans</strong> prefrence page.</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
</tbody>
</table>
<h3 class="related">Related references</h3>
<a href="../../../guide/tools/preference_pages/preferences.htm">PDE Preferences</a><br>
<a href="../propertypages/ref-errorswarnings-prop.htm">API Errors and Warnings Property Page</a><br>
<a href="ref-baselines.htm">API Baselines Preferences</a><br>
<a href="ref-usescans.htm">API Use Scans Preferences</a>
</body>
</html>