com.zwendo.restrikt2.annotation.Annotations.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of restrikt2-annotations Show documentation
Show all versions of restrikt2-annotations Show documentation
A compiler plugin to restrict API visibility from Kotlin sources.
The newest version!
package com.zwendo.restrikt2.annotation
/**
* This annotation is used to hide elements from kotlin sources.
*
* Used with the [Restrikt compiler plugin](https://github.com/ZwenDo/Restrikt), this annotation causes the retention
* of the [Deprecated] annotation with the level [DeprecationLevel.HIDDEN], which hides the element for Kotlin sources.
* However, elements will still be accessible at runtime from compiled Kotlin files.
*
* Like [JvmSynthetic] acts to hide elements to Java, this annotation is intended for API designers who want to hide a
* Java-specific target from Kotlin language, in order to keep an idiomatic API for both languages.
*/
@Target(
AnnotationTarget.CLASS,
AnnotationTarget.PROPERTY,
AnnotationTarget.CONSTRUCTOR,
AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.FIELD,
AnnotationTarget.FILE
)
@MustBeDocumented
@Retention(AnnotationRetention.BINARY)
annotation class HideFromKotlin
/**
* This annotation is used to hide elements from Java sources.
*
* Used with the [Restrikt compiler plugin](https://github.com/ZwenDo/Restrikt), this annotation acts like
* [JvmSynthetic] annotation, but can be used on all symbol declarations.
*/
@Target(
AnnotationTarget.CLASS,
AnnotationTarget.PROPERTY,
AnnotationTarget.CONSTRUCTOR,
AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.FIELD,
AnnotationTarget.FILE
)
@MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
annotation class HideFromJava
/**
* This annotation is used to force `package-private` visibility on Kotlin symbols.
*
* Used with the [Restrikt compiler plugin](https://github.com/ZwenDo/Restrikt), this annotation is used to force
* `package-private` visibility on Kotlin symbols.
*
* **NOTE**: the original visibility will be overridden by the compiler plugin.
*/
@Target(
AnnotationTarget.CLASS,
AnnotationTarget.PROPERTY,
AnnotationTarget.CONSTRUCTOR,
AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.FIELD,
AnnotationTarget.FILE
)
@MustBeDocumented
@Retention(AnnotationRetention.BINARY)
annotation class PackagePrivate
© 2015 - 2025 Weber Informatics LLC | Privacy Policy