001package com.identityworksllc.iiq.common.annotation; 002 003import java.lang.annotation.*; 004 005/** 006 * Indicates that a class or method is considered a core part of the library, 007 * and will remain API-compatible. This is a promise that future versions 008 * of the library will not break compatibility with this class or method. 009 * 010 * If an annotated class or method must be removed or changed in a way that breaks 011 * compatibility, it will be deprecated for at least six months before being removed 012 * or changed. 013 * 014 * Smaller parts of a class (such as individual methods or nested classes) may 015 * be annotated with {@link Experimental} or {@link InProgress} to indicate that they 016 * are not yet stable, even if the class as a whole is stable. 017 */ 018@Retention(RetentionPolicy.CLASS) 019@Target({ElementType.TYPE, ElementType.METHOD}) 020@Inherited 021public @interface CoreStable { 022}