mirror of
https://github.com/ReVanced/revanced-patcher.git
synced 2026-01-27 13:11:03 +00:00
53 lines
1.3 KiB
Kotlin
53 lines
1.3 KiB
Kotlin
package app.revanced.patcher.patch.annotations
|
|
|
|
import app.revanced.patcher.data.Data
|
|
import app.revanced.patcher.patch.Patch
|
|
import kotlin.reflect.KClass
|
|
|
|
/**
|
|
* Annotation to mark a Class as a patch.
|
|
* @param include If false, the patch should be treated as optional by default.
|
|
*/
|
|
@Target(AnnotationTarget.CLASS)
|
|
@Retention(AnnotationRetention.RUNTIME)
|
|
@MustBeDocumented
|
|
annotation class Patch(val include: Boolean = true)
|
|
|
|
/**
|
|
* Annotation for dependencies of [Patch]es .
|
|
*/
|
|
@Target(AnnotationTarget.CLASS)
|
|
@Retention(AnnotationRetention.RUNTIME)
|
|
@MustBeDocumented
|
|
@Deprecated(
|
|
"Does not support new parameter 'type'",
|
|
ReplaceWith("DependsOn")
|
|
)
|
|
annotation class Dependencies(
|
|
val dependencies: Array<KClass<out Patch<Data>>> = []
|
|
)
|
|
|
|
/**
|
|
* Annotation for dependencies of [Patch]es .
|
|
*/
|
|
@Target(AnnotationTarget.CLASS)
|
|
@Retention(AnnotationRetention.RUNTIME)
|
|
@MustBeDocumented
|
|
@Repeatable
|
|
annotation class DependsOn(
|
|
val value: KClass<out Patch<Data>>,
|
|
val type: DependencyType = DependencyType.HARD
|
|
)
|
|
|
|
enum class DependencyType {
|
|
/**
|
|
* Enforces that the dependency is applied, even if it was not selected.
|
|
*/
|
|
HARD,
|
|
|
|
/**
|
|
* Applies the dependency only if it was selected.
|
|
*/
|
|
@Deprecated("Will be removed when Patch Options is implemented.")
|
|
SOFT
|
|
} |