com.phloc.commons.annotations.PublicAPI Maven / Gradle / Ivy
package com.phloc.commons.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Documentation measure to denote all classes or methods which are public JAVA
* APIs. Public APIs must not be changed in terms of removed or renamed methods
* or changed method signature. Only new methods may be added. Methods that
* should be removed are to be marked as deprecated (using the
* {@literal @}deprecated
annotation) and can be removed in a later
* release.
*
* @author Boris Gregorcic
*/
@Retention (RetentionPolicy.RUNTIME)
@Target ({ ElementType.TYPE,
ElementType.FIELD,
ElementType.METHOD,
ElementType.PARAMETER,
ElementType.CONSTRUCTOR,
ElementType.LOCAL_VARIABLE,
ElementType.ANNOTATION_TYPE,
ElementType.PACKAGE })
@Documented
public @interface PublicAPI
{
String value() default "";
}