<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
<apichanges>
    <apidefs>
        <apidef name="JavaHintsSPI">Java Hints SPI</apidef>
    </apidefs>
    <changes>
        <change id="UsedDetector">
            <api name="JavaHintsSPI"/>
            <summary>Added UsedDetector SPI to mark an arbitrary elements as used</summary>
            <version major="1" minor="56"/>
            <date day="2" month="8" year="2023"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    The SPI to mark an arbitrary element as used was added.
                    Allows to suppress the standard NetBeans unused element detection
                    and to prevent the "unused" hint being displayed on given elements.
                    Can be used by various framework libraries that sometimes honor
                    annotations (i.e. injections or bindings) even on private methods.
                </p>
            </description>
            <class package="org.netbeans.spi.java.hints.unused" name="UsedDetector" link="no" />
        </change>
        <change id="openRefactoringUI">
            <api name="JavaHintsSPI"/>
            <summary>Added utility methods and SPI to open UI for hints</summary>
            <version major="1" minor="53"/>
            <date day="17" month="3" year="2021"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Internal helper method added to open refactoring UI with selected hints. 
                    Added SPI that 
                    can be implemented by UI module(s) to actually provide the UI implementation.
                </p>
            </description>
            <class package="org.netbeans.modules.java.hints.spiimpl" name="HintsRefactoringFactory" link="no" />
            <class package="org.netbeans.modules.java.hints.spiimpl" name="Utilities" link="no"/>
        </change>
        <change id="JavaFixUtilities.isPrimary">
            <api name="JavaHintsSPI"/>
            <summary>Added JavaFixUtilities.isPrimary() utility</summary>
            <version major="1" minor="31"/>
            <date day="15" month="1" year="2018"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    The utility method JavaFixUtilities.isPrimary() was added.
                    This API checks whether a specified tree can be used in
                    places where a Primary expression is required.
                </p>
            </description>
        </change>
        <change id="Hint.minSourceVersion">
            <api name="JavaHintsSPI"/>
            <summary>Hint can specify minimum source version for operation</summary>
            <version major="1" minor="28"/>
            <date day="24" month="5" year="2015"/>
            <author login="sdedic"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Certain hints generate source code following newer language specifications.
                    A hint may declare <code>minSourceVersion</code> in its <code>@Hint</code>
                    annotation to specify a minimum source version. Such hint will be never
                    invoked for files configured for earlier source level.
                </p>
            </description>
        </change>
        <change id="TriggerOptions">
            <api name="JavaHintsSPI"/>
            <summary>Hint can choose to trigger for guarded code</summary>
            <version major="1" minor="27"/>
            <date day="27" month="7" year="2015"/>
            <author login="sdedic"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Hints triggered by Tree.Kind are not invoked for Trees which are
                    protected from editing (i.e. Form Builder guarded blocks). Hint implementor
                    can opt to be triggered even for such code, in order to e.g. collect
                    data.
                </p>
            </description>
        </change>
        <change id="EnhancedJavaFix">
            <api name="JavaHintsSPI"/>
            <summary>Added ability to specify sort text for JavaFix</summary>
            <version major="1" minor="18"/>
            <date day="14" month="7" year="2013"/>
            <author login="jlahoda"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Adding to new constructors to <code>JavaFix</code> to define
                    the sort text for the fix.
                </p>    
            </description>
        </change>
        <change id="ProjectHintsJava">
            <api name="JavaHintsSPI"/>
            <summary>Defining system filesystem folder for per-project Java hints customizers</summary>
            <version major="1" minor="16"/>
            <date day="24" month="4" year="2013"/>
            <author login="jlahoda"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Defining <code>Project/hints/java-based</code> folder, where provider for
                    hints customizers for Java-based projects should be stored.
                </p>    
            </description>
<!--            <issue number="227959"/>-->
        </change>
        <change id="IntegerOption">
            <api name="JavaHintsSPI"/>
            <summary>Added support for integer options. Hints can be declared to appear only in inspect &amp; transform</summary>
            <version major="1" minor="14"/>
            <date day="3" month="4" year="2013"/>
            <author login="sdedic"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added declarative support for integer options. <code>@IntegerOption</code> can
                    be used with option name field, similar to <code>@BooleanOption</code>.
                </p>    
                <p>
                    An option was added to <code>Hint.Options</code>, so that hint can declare
                    to be only shown in Inspect &amp; transform dialog. Useful for computation-intensive
                    hints, which should only run on demand.
                </p>    
            </description>
            <class package="org.netbeans.spi.java.hints" name="IntegerOption"/>
            <class package="org.netbeans.spi.java.hints" name="Hint"/>
            <issue number="227822"/>
            <issue number="227959"/>
        </change>
        <change id="ErrorDescriptionFactory.forSpan">
            <api name="JavaHintsSPI"/>
            <summary>Introducing ErrorDescriptionFactory.forSpan.</summary>
            <version major="1" minor="9"/>
            <date day="19" month="12" year="2012"/>
            <author login="jlahoda"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added ErrorDescriptionFactory.forSpan to create the correct
                    Java-enhanced ErrorDescription from a span.
                </p>    
            </description>
            <class package="org.netbeans.spi.java.hints" name="ErrorDescriptionFactory"/>
            <issue number="223723"/>
        </change>
        <change id="TransformationSupport">
            <api name="JavaHintsSPI"/>
            <summary>Added support for using jackpot patterns from other modules (e.g. refactoring).</summary>
            <version major="1" minor="1"/>
            <date day="29" month="3" year="2012"/>
            <author login="jbecicka"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added support for using jackpot patterns from other modules (e.g. refactoring).
                </p>    
            </description>
            <class package="org.netbeans.spi.java.hints.support" name="TransformationSupport"/>
            <issue number="210262"/>
        </change>
    </changes>
    <htmlcontents>
        <head>
            <title>Change History for the Java Hints SPI</title>
        </head>
        <body>
            <p class="overviewlink">
                <a href="overview-summary.html">Overview</a>
            </p>
            <h1>Introduction</h1>
            <p>This document lists changes made to the Java Hints SPI.</p>
            
            <!-- The actual lists of changes, as summaries and details: -->
            <hr/>
            <standard-changelists module-code-name="$codebase"/>
            
            <hr/>
            <p>@FOOTER@</p>
        </body>
    </htmlcontents>
</apichanges>
