Format Kotlin code in keep annotations with --kotlinlang-style
Keep using --google-style for the rest of the Kotlin code.
Also update the tool for copying keep annotations to androidx with new
source locations.
Bug: b/392865072
Change-Id: I8324255b7aa7a80b60c53d52d740ca9a7ff63dcb
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 8e1d1bd..c5c1e88 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -95,26 +95,37 @@
def CheckKotlinFormatting(paths, output_api, results):
- cmd = [GetJavaExecutable(), '-jar', KOTLIN_FMT_JAR, '--google-style', '-n']
- cmd.extend(paths)
- result = check_output(cmd)
- if len(result) > 0:
- with_format_error = result.splitlines()
- for path in with_format_error:
- results.append(
- output_api.PresubmitError(
- "File {path} needs formatting".format(path=path.decode('utf-8'))))
- return len(result) > 0
+ paths_to_format = {
+ '--kotlinlang-style': [path for path in paths if path.startswith('src/keepanno/')],
+ '--google-style': [path for path in paths if not path.startswith('src/keepanno/')]
+ }
+ needs_formatting_count = 0
+ for format in ['--kotlinlang-style', '--google-style']:
+ cmd = [GetJavaExecutable(), '-jar', KOTLIN_FMT_JAR, format, '-n']
+ to_format = paths_to_format[format]
+ if len(to_format) > 0:
+ cmd.extend(to_format)
+ result = check_output(cmd)
+ if len(result) > 0:
+ with_format_error = result.splitlines()
+ for path in with_format_error:
+ results.append(
+ output_api.PresubmitError(
+ "File {path} needs formatting".format(path=path.decode('utf-8'))))
+ needs_formatting_count += len(result)
+ return needs_formatting_count > 0
def KotlinFormatPresubmitMessage():
return """Please fix the Kotlin formatting by running:
- git diff $(git cl upstream) --name-only "*.kt" | xargs {java} -jar {fmt_jar} --google-style
+ git diff $(git cl upstream) --name-only "*.kt" | grep -v "^src/keepanno/" | xargs {java} -jar {fmt_jar} --google-style
+ git diff $(git cl upstream) --name-only "*.kt" | grep "^src/keepanno/" | xargs {java} -jar {fmt_jar} --kotlinlang-style
or fix formatting, commit and upload:
- git diff $(git cl upstream) --name-only "*.kt" | xargs {java} -jar {fmt_jar} --google-style && git commit -a --amend --no-edit && git cl upload
+ git diff $(git cl upstream) --name-only "*.kt" | grep -v "^src/keepanno/" | xargs {java} -jar {fmt_jar} --google-style && git commit -a --amend --no-edit && git cl upload
+ git diff $(git cl upstream) --name-only "*.kt" | grep "^src/keepanno/" | xargs {java} -jar {fmt_jar} --kotlinlang-style && git commit -a --amend --no-edit && git cl upload
or bypass the checks with:
diff --git a/src/keepanno/java/androidx/annotation/keep/AnnotationPattern.kt b/src/keepanno/java/androidx/annotation/keep/AnnotationPattern.kt
index a6c1ced..9ff9f61 100644
--- a/src/keepanno/java/androidx/annotation/keep/AnnotationPattern.kt
+++ b/src/keepanno/java/androidx/annotation/keep/AnnotationPattern.kt
@@ -40,64 +40,64 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class AnnotationPattern(
- /**
- * Define the annotation-name pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining annotation-name:
- * <ul>
- * <li>constant
- * <li>namePattern
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any annotation name.
- *
- * @return The qualified class name that defines the annotation.
- */
- val name: String = "",
+ /**
+ * Define the annotation-name pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining annotation-name:
+ * <ul>
+ * <li>constant
+ * <li>namePattern
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any annotation name.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val name: String = "",
- /**
- * Define the annotation-name pattern by reference to a {@code Class} constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining annotation-name:
- * <ul>
- * <li>name
- * <li>namePattern
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any annotation name.
- *
- * @return The Class constant that defines the annotation.
- */
- val constant: KClass<*> = Object::class,
+ /**
+ * Define the annotation-name pattern by reference to a {@code Class} constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining annotation-name:
+ * <ul>
+ * <li>name
+ * <li>namePattern
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any annotation name.
+ *
+ * @return The Class constant that defines the annotation.
+ */
+ val constant: KClass<*> = Object::class,
- /**
- * Define the annotation-name pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining annotation-name:
- * <ul>
- * <li>name
- * <li>constant
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any annotation name.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val namePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the annotation-name pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining annotation-name:
+ * <ul>
+ * <li>name
+ * <li>constant
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any annotation name.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val namePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Specify which retention policies must be set for the annotations.
- *
- * <p>
- * Matches annotations with matching retention policies
- *
- * @return Retention policies. By default {@code RetentionPolicy.RUNTIME}.
- */
- val retention: Array<RetentionPolicy> = [RetentionPolicy.RUNTIME],
+ /**
+ * Specify which retention policies must be set for the annotations.
+ *
+ * <p>
+ * Matches annotations with matching retention policies
+ *
+ * @return Retention policies. By default {@code RetentionPolicy.RUNTIME}.
+ */
+ val retention: Array<RetentionPolicy> = [RetentionPolicy.RUNTIME],
)
diff --git a/src/keepanno/java/androidx/annotation/keep/CheckOptimizedOut.kt b/src/keepanno/java/androidx/annotation/keep/CheckOptimizedOut.kt
index 75f69d6..e6e5b98 100644
--- a/src/keepanno/java/androidx/annotation/keep/CheckOptimizedOut.kt
+++ b/src/keepanno/java/androidx/annotation/keep/CheckOptimizedOut.kt
@@ -38,9 +38,9 @@
*/
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.TYPE,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.TYPE,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class CheckOptimizedOut(val description: String = "")
diff --git a/src/keepanno/java/androidx/annotation/keep/CheckRemoved.kt b/src/keepanno/java/androidx/annotation/keep/CheckRemoved.kt
index 66117a2..00923ed 100644
--- a/src/keepanno/java/androidx/annotation/keep/CheckRemoved.kt
+++ b/src/keepanno/java/androidx/annotation/keep/CheckRemoved.kt
@@ -34,9 +34,9 @@
*/
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.TYPE,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.TYPE,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class CheckRemoved(val description: String = "")
diff --git a/src/keepanno/java/androidx/annotation/keep/ClassAccessFlags.kt b/src/keepanno/java/androidx/annotation/keep/ClassAccessFlags.kt
index fb5a082..32971aa 100644
--- a/src/keepanno/java/androidx/annotation/keep/ClassAccessFlags.kt
+++ b/src/keepanno/java/androidx/annotation/keep/ClassAccessFlags.kt
@@ -27,20 +27,20 @@
* operation syntactically.
*/
public enum class ClassAccessFlags {
- PUBLIC,
- NON_PUBLIC,
- PACKAGE_PRIVATE,
- NON_PACKAGE_PRIVATE,
- FINAL,
- NON_FINAL,
- INTERFACE,
- NON_INTERFACE,
- ABSTRACT,
- NON_ABSTRACT,
- SYNTHETIC,
- NON_SYNTHETIC,
- ANNOTATION,
- NON_ANNOTATION,
- ENUM,
- NON_ENUM,
+ PUBLIC,
+ NON_PUBLIC,
+ PACKAGE_PRIVATE,
+ NON_PACKAGE_PRIVATE,
+ FINAL,
+ NON_FINAL,
+ INTERFACE,
+ NON_INTERFACE,
+ ABSTRACT,
+ NON_ABSTRACT,
+ SYNTHETIC,
+ NON_SYNTHETIC,
+ ANNOTATION,
+ NON_ANNOTATION,
+ ENUM,
+ NON_ENUM,
}
diff --git a/src/keepanno/java/androidx/annotation/keep/ClassNamePattern.kt b/src/keepanno/java/androidx/annotation/keep/ClassNamePattern.kt
index 44738b1..b5c312c 100644
--- a/src/keepanno/java/androidx/annotation/keep/ClassNamePattern.kt
+++ b/src/keepanno/java/androidx/annotation/keep/ClassNamePattern.kt
@@ -38,92 +38,92 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class ClassNamePattern(
- /**
- * Define the class-name pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>constant
- * <li>unqualifiedName
- * <li>unqualifiedNamePattern
- * <li>packageName
- * </ul>
- *
- * @return The qualified class name that defines the class.
- */
- val name: String = "",
+ /**
+ * Define the class-name pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>constant
+ * <li>unqualifiedName
+ * <li>unqualifiedNamePattern
+ * <li>packageName
+ * </ul>
+ *
+ * @return The qualified class name that defines the class.
+ */
+ val name: String = "",
- /**
- * Define the class-name pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>name
- * <li>unqualifiedName
- * <li>unqualifiedNamePattern
- * <li>packageName
- * </ul>
- *
- * @return The class-constant that defines the class.
- */
- val constant: KClass<*> = Object::class,
+ /**
+ * Define the class-name pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>name
+ * <li>unqualifiedName
+ * <li>unqualifiedNamePattern
+ * <li>packageName
+ * </ul>
+ *
+ * @return The class-constant that defines the class.
+ */
+ val constant: KClass<*> = Object::class,
- /**
- * Exact and unqualified name of the class or interface.
- *
- * <p>
- * For example, the unqualified name of {@code com.example.MyClass} is {@code MyClass}. Note that
- * for inner classes a `$` will appear in the unqualified name,such as, {@code
- * MyClass$MyInnerClass}.
- *
- * <p>
- * The default matches any unqualified name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-unqualified-name:
- * <ul>
- * <li>unqualifiedNamePattern
- * <li>name
- * <li>constant
- * </ul>
- */
- val unqualifiedName: String = "",
+ /**
+ * Exact and unqualified name of the class or interface.
+ *
+ * <p>
+ * For example, the unqualified name of {@code com.example.MyClass} is {@code MyClass}. Note
+ * that for inner classes a `$` will appear in the unqualified name,such as, {@code
+ * MyClass$MyInnerClass}.
+ *
+ * <p>
+ * The default matches any unqualified name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-unqualified-name:
+ * <ul>
+ * <li>unqualifiedNamePattern
+ * <li>name
+ * <li>constant
+ * </ul>
+ */
+ val unqualifiedName: String = "",
- /**
- * Define the unqualified class-name pattern by a string pattern.
- *
- * <p>
- * The default matches any unqualified name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-unqualified-name:
- * <ul>
- * <li>unqualifiedName
- * <li>name
- * <li>constant
- * </ul>
- *
- * @return The string pattern of the unqualified class name.
- */
- val unqualifiedNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the unqualified class-name pattern by a string pattern.
+ *
+ * <p>
+ * The default matches any unqualified name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-unqualified-name:
+ * <ul>
+ * <li>unqualifiedName
+ * <li>name
+ * <li>constant
+ * </ul>
+ *
+ * @return The string pattern of the unqualified class name.
+ */
+ val unqualifiedNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Exact package name of the class or interface.
- *
- * <p>
- * For example, the package of {@code com.example.MyClass} is {@code com.example}.
- *
- * <p>
- * The default matches any package.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-package-name:
- * <ul>
- * <li>name
- * <li>constant
- * </ul>
- */
- val packageName: String = "",
+ /**
+ * Exact package name of the class or interface.
+ *
+ * <p>
+ * For example, the package of {@code com.example.MyClass} is {@code com.example}.
+ *
+ * <p>
+ * The default matches any package.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-package-name:
+ * <ul>
+ * <li>name
+ * <li>constant
+ * </ul>
+ */
+ val packageName: String = "",
)
diff --git a/src/keepanno/java/androidx/annotation/keep/FieldAccessFlags.kt b/src/keepanno/java/androidx/annotation/keep/FieldAccessFlags.kt
index 37c763c..7dac709 100644
--- a/src/keepanno/java/androidx/annotation/keep/FieldAccessFlags.kt
+++ b/src/keepanno/java/androidx/annotation/keep/FieldAccessFlags.kt
@@ -27,25 +27,25 @@
* operation syntactically.
*/
public enum class FieldAccessFlags {
- // General member flags.
- PUBLIC,
- NON_PUBLIC,
- PRIVATE,
- NON_PRIVATE,
- PROTECTED,
- NON_PROTECTED,
- PACKAGE_PRIVATE,
- NON_PACKAGE_PRIVATE,
- STATIC,
- NON_STATIC,
- FINAL,
- NON_FINAL,
- SYNTHETIC,
- NON_SYNTHETIC,
- // Field specific flags.
- VOLATILE,
- NON_VOLATILE,
- TRANSIENT,
- NON_TRANSIENT,
- // ENUM - No PG parser support.
+ // General member flags.
+ PUBLIC,
+ NON_PUBLIC,
+ PRIVATE,
+ NON_PRIVATE,
+ PROTECTED,
+ NON_PROTECTED,
+ PACKAGE_PRIVATE,
+ NON_PACKAGE_PRIVATE,
+ STATIC,
+ NON_STATIC,
+ FINAL,
+ NON_FINAL,
+ SYNTHETIC,
+ NON_SYNTHETIC,
+ // Field specific flags.
+ VOLATILE,
+ NON_VOLATILE,
+ TRANSIENT,
+ NON_TRANSIENT,
+ // ENUM - No PG parser support.
}
diff --git a/src/keepanno/java/androidx/annotation/keep/InstanceOfPattern.kt b/src/keepanno/java/androidx/annotation/keep/InstanceOfPattern.kt
index b1c84b1..01a1e51 100644
--- a/src/keepanno/java/androidx/annotation/keep/InstanceOfPattern.kt
+++ b/src/keepanno/java/androidx/annotation/keep/InstanceOfPattern.kt
@@ -37,15 +37,15 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class InstanceOfPattern(
- /**
- * True if the pattern should include the directly matched classes.
- *
- * <p>
- * If false, the pattern is exclusive and only matches classes that are strict subclasses of the
- * pattern.
- */
- val isInclusive: Boolean = true,
+ /**
+ * True if the pattern should include the directly matched classes.
+ *
+ * <p>
+ * If false, the pattern is exclusive and only matches classes that are strict subclasses of the
+ * pattern.
+ */
+ val isInclusive: Boolean = true,
- /** Instances of classes matching the class-name pattern. */
- val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /** Instances of classes matching the class-name pattern. */
+ val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepBinding.kt b/src/keepanno/java/androidx/annotation/keep/KeepBinding.kt
index 7d9730b..aa8de9a 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepBinding.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepBinding.kt
@@ -47,735 +47,743 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class KeepBinding(
- /**
- * Name with which other bindings, conditions or targets can reference the bound item pattern.
- *
- * @return Name of the binding.
- */
- val bindingName: String,
+ /**
+ * Name with which other bindings, conditions or targets can reference the bound item pattern.
+ *
+ * @return Name of the binding.
+ */
+ val bindingName: String,
- /**
- * Specify the kind of this item pattern.
- *
- * <p>
- * Possible values are:
- * <ul>
- * <li>{@link KeepItemKind#ONLY_CLASS}
- * <li>{@link KeepItemKind#ONLY_MEMBERS}
- * <li>{@link KeepItemKind#ONLY_METHODS}
- * <li>{@link KeepItemKind#ONLY_FIELDS}
- * <li>{@link KeepItemKind#CLASS_AND_MEMBERS}
- * <li>{@link KeepItemKind#CLASS_AND_METHODS}
- * <li>{@link KeepItemKind#CLASS_AND_FIELDS}
- * </ul>
- *
- * <p>
- * If unspecified the default kind for an item depends on its member patterns:
- * <ul>
- * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined
- * <li>{@link KeepItemKind#ONLY_METHODS} if method patterns are defined
- * <li>{@link KeepItemKind#ONLY_FIELDS} if field patterns are defined
- * <li>{@link KeepItemKind#ONLY_MEMBERS} otherwise.
- * </ul>
- *
- * @return The kind for this pattern.
- */
- val kind: KeepItemKind = KeepItemKind.DEFAULT,
+ /**
+ * Specify the kind of this item pattern.
+ *
+ * <p>
+ * Possible values are:
+ * <ul>
+ * <li>{@link KeepItemKind#ONLY_CLASS}
+ * <li>{@link KeepItemKind#ONLY_MEMBERS}
+ * <li>{@link KeepItemKind#ONLY_METHODS}
+ * <li>{@link KeepItemKind#ONLY_FIELDS}
+ * <li>{@link KeepItemKind#CLASS_AND_MEMBERS}
+ * <li>{@link KeepItemKind#CLASS_AND_METHODS}
+ * <li>{@link KeepItemKind#CLASS_AND_FIELDS}
+ * </ul>
+ *
+ * <p>
+ * If unspecified the default kind for an item depends on its member patterns:
+ * <ul>
+ * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined
+ * <li>{@link KeepItemKind#ONLY_METHODS} if method patterns are defined
+ * <li>{@link KeepItemKind#ONLY_FIELDS} if field patterns are defined
+ * <li>{@link KeepItemKind#ONLY_MEMBERS} otherwise.
+ * </ul>
+ *
+ * @return The kind for this pattern.
+ */
+ val kind: KeepItemKind = KeepItemKind.DEFAULT,
- /**
- * Define the class pattern by reference to a binding.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class:
- * <ul>
- * <li>className
- * <li>classConstant
- * <li>classNamePattern
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassConstant
- * <li>classAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class.
- *
- * @return The name of the binding that defines the class.
- */
- val classFromBinding: String = "",
+ /**
+ * Define the class pattern by reference to a binding.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class:
+ * <ul>
+ * <li>className
+ * <li>classConstant
+ * <li>classNamePattern
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassConstant
+ * <li>classAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class.
+ *
+ * @return The name of the binding that defines the class.
+ */
+ val classFromBinding: String = "",
- /**
- * Define the class-name pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>classConstant
- * <li>classNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The qualified class name that defines the class.
- */
- val className: String = "",
+ /**
+ * Define the class-name pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>classConstant
+ * <li>classNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The qualified class name that defines the class.
+ */
+ val className: String = "",
- /**
- * Define the class-name pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>className
- * <li>classNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The class-constant that defines the class.
- */
- val classConstant: KClass<*> = Object::class,
+ /**
+ * Define the class-name pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>className
+ * <li>classNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The class-constant that defines the class.
+ */
+ val classConstant: KClass<*> = Object::class,
- /**
- * Define the class-name pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>className
- * <li>classConstant
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The class-name pattern that defines the class.
- */
- val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the class-name pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>className
+ * <li>classConstant
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The class-name pattern that defines the class.
+ */
+ val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the instance-of pattern as classes that are instances of the fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The qualified class name that defines what instance-of the class must be.
- */
- val instanceOfClassName: String = "",
+ /**
+ * Define the instance-of pattern as classes that are instances of the fully qualified class
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The qualified class name that defines what instance-of the class must be.
+ */
+ val instanceOfClassName: String = "",
- /**
- * Define the instance-of pattern as classes that are instances of the fully qualified class name.
- *
- * <p>
- * The pattern is exclusive in that it does not match classes that are instances of the pattern,
- * but only those that are instances of classes that are subclasses of the pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The qualified class name that defines what instance-of the class must be.
- */
- val instanceOfClassNameExclusive: String = "",
+ /**
+ * Define the instance-of pattern as classes that are instances of the fully qualified class
+ * name.
+ *
+ * <p>
+ * The pattern is exclusive in that it does not match classes that are instances of the pattern,
+ * but only those that are instances of classes that are subclasses of the pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The qualified class name that defines what instance-of the class must be.
+ */
+ val instanceOfClassNameExclusive: String = "",
- /**
- * Define the instance-of pattern as classes that are instances the referenced Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The class constant that defines what instance-of the class must be.
- */
- val instanceOfClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the instance-of pattern as classes that are instances the referenced Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The class constant that defines what instance-of the class must be.
+ */
+ val instanceOfClassConstant: KClass<*> = Object::class,
- /**
- * Define the instance-of pattern as classes that are instances the referenced Class constant.
- *
- * <p>
- * The pattern is exclusive in that it does not match classes that are instances of the pattern,
- * but only those that are instances of classes that are subclasses of the pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The class constant that defines what instance-of the class must be.
- */
- val instanceOfClassConstantExclusive: KClass<*> = Object::class,
+ /**
+ * Define the instance-of pattern as classes that are instances the referenced Class constant.
+ *
+ * <p>
+ * The pattern is exclusive in that it does not match classes that are instances of the pattern,
+ * but only those that are instances of classes that are subclasses of the pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The class constant that defines what instance-of the class must be.
+ */
+ val instanceOfClassConstantExclusive: KClass<*> = Object::class,
- /**
- * Define the instance-of with a pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The pattern that defines what instance-of the class must be.
- */
- val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
+ /**
+ * Define the instance-of with a pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The pattern that defines what instance-of the class must be.
+ */
+ val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
- /**
- * Define the class-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassConstant
- * <li>classAnnotatedByClassNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val classAnnotatedByClassName: String = "",
+ /**
+ * Define the class-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassConstant
+ * <li>classAnnotatedByClassNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val classAnnotatedByClassName: String = "",
- /**
- * Define the class-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val classAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the class-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val classAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the class-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassConstant
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val classAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the class-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassConstant
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val classAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassConstant
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val memberAnnotatedByClassName: String = "",
+ /**
+ * Define the member-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val memberAnnotatedByClassName: String = "",
- /**
- * Define the member-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val memberAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the member-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val memberAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the member-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val memberAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the member-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val memberAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * @return The member access-flag constraints that must be met.
- */
- val memberAccess: Array<MemberAccessFlags> = [],
+ /**
+ * Define the member-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * @return The member access-flag constraints that must be met.
+ */
+ val memberAccess: Array<MemberAccessFlags> = [],
- /**
- * Define the method-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassConstant
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val methodAnnotatedByClassName: String = "",
+ /**
+ * Define the method-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassConstant
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val methodAnnotatedByClassName: String = "",
- /**
- * Define the method-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val methodAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the method-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val methodAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the method-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val methodAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the method-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val methodAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the method-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any
- * method-access flags.
- *
- * @return The method access-flag constraints that must be met.
- */
- val methodAccess: Array<MethodAccessFlags> = [],
+ /**
+ * Define the method-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * method-access flags.
+ *
+ * @return The method access-flag constraints that must be met.
+ */
+ val methodAccess: Array<MethodAccessFlags> = [],
- /**
- * Define the method-name pattern by an exact method name.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodNamePattern` also defining method-name.
- *
- * @return The exact method name of the method.
- */
- val methodName: String = "",
+ /**
+ * Define the method-name pattern by an exact method name.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodNamePattern` also defining method-name.
+ *
+ * @return The exact method name of the method.
+ */
+ val methodName: String = "",
- /**
- * Define the method-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodName` also defining method-name.
- *
- * @return The string pattern of the method name.
- */
- val methodNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the method-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodName` also defining method-name.
+ *
+ * @return The string pattern of the method name.
+ */
+ val methodNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the method return-type pattern by a fully qualified type or 'void'.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnTypeConstant
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return The qualified type name of the method return type.
- */
- val methodReturnType: String = "",
+ /**
+ * Define the method return-type pattern by a fully qualified type or 'void'.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnTypeConstant
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return The qualified type name of the method return type.
+ */
+ val methodReturnType: String = "",
- /**
- * Define the method return-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return A class constant denoting the type of the method return type.
- */
- val methodReturnTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the method return-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return A class constant denoting the type of the method return type.
+ */
+ val methodReturnTypeConstant: KClass<*> = Object::class,
- /**
- * Define the method return-type pattern by a type pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypeConstant
- * </ul>
- *
- * @return The pattern of the method return type.
- */
- val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the method return-type pattern by a type pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypeConstant
+ * </ul>
+ *
+ * @return The pattern of the method return type.
+ */
+ val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
- /**
- * Define the method parameters pattern by a list of fully qualified types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
- *
- * @return The list of qualified type names of the method parameters.
- */
- val methodParameters: Array<String> = [""],
+ /**
+ * Define the method parameters pattern by a list of fully qualified types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
+ *
+ * @return The list of qualified type names of the method parameters.
+ */
+ val methodParameters: Array<String> = [""],
- /**
- * Define the method parameters pattern by a list of patterns on types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameters` also defining parameters.
- *
- * @return The list of type patterns for the method parameters.
- */
- val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
+ /**
+ * Define the method parameters pattern by a list of patterns on types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameters` also defining parameters.
+ *
+ * @return The list of type patterns for the method parameters.
+ */
+ val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
- /**
- * Define the field-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassConstant
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val fieldAnnotatedByClassName: String = "",
+ /**
+ * Define the field-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassConstant
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val fieldAnnotatedByClassName: String = "",
- /**
- * Define the field-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the field-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the field-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the field-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field-access
- * flags.
- *
- * @return The field access-flag constraints that must be met.
- */
- val fieldAccess: Array<FieldAccessFlags> = [],
+ /**
+ * Define the field-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any
+ * field-access flags.
+ *
+ * @return The field access-flag constraints that must be met.
+ */
+ val fieldAccess: Array<FieldAccessFlags> = [],
- /**
- * Define the field-name pattern by an exact field name.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
- *
- * @return The exact field name of the field.
- */
- val fieldName: String = "",
+ /**
+ * Define the field-name pattern by an exact field name.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
+ *
+ * @return The exact field name of the field.
+ */
+ val fieldName: String = "",
- /**
- * Define the field-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldName` also defining field-name.
- *
- * @return The string pattern of the field name.
- */
- val fieldNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the field-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldName` also defining field-name.
+ *
+ * @return The string pattern of the field name.
+ */
+ val fieldNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the field-type pattern by a fully qualified type.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldTypeConstant
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The qualified type name for the field type.
- */
- val fieldType: String = "",
+ /**
+ * Define the field-type pattern by a fully qualified type.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldTypeConstant
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The qualified type name for the field type.
+ */
+ val fieldType: String = "",
- /**
- * Define the field-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The class constant for the field type.
- */
- val fieldTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The class constant for the field type.
+ */
+ val fieldTypeConstant: KClass<*> = Object::class,
- /**
- * Define the field-type pattern by a pattern on types.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypeConstant
- * </ul>
- *
- * @return The type pattern for the field type.
- */
- val fieldTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the field-type pattern by a pattern on types.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypeConstant
+ * </ul>
+ *
+ * @return The type pattern for the field type.
+ */
+ val fieldTypePattern: TypePattern = TypePattern(name = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepCondition.kt b/src/keepanno/java/androidx/annotation/keep/KeepCondition.kt
index e149232..58a127e 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepCondition.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepCondition.kt
@@ -43,759 +43,767 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class KeepCondition(
- /**
- * Define the class pattern by reference to a binding.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class:
- * <ul>
- * <li>className
- * <li>classConstant
- * <li>classNamePattern
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassConstant
- * <li>classAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class.
- *
- * @return The name of the binding that defines the class.
- */
- val classFromBinding: String = "",
+ /**
+ * Define the class pattern by reference to a binding.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class:
+ * <ul>
+ * <li>className
+ * <li>classConstant
+ * <li>classNamePattern
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassConstant
+ * <li>classAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class.
+ *
+ * @return The name of the binding that defines the class.
+ */
+ val classFromBinding: String = "",
- /**
- * Define the class-name pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>classConstant
- * <li>classNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The qualified class name that defines the class.
- */
- val className: String = "",
+ /**
+ * Define the class-name pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>classConstant
+ * <li>classNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The qualified class name that defines the class.
+ */
+ val className: String = "",
- /**
- * Define the class-name pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>className
- * <li>classNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The class-constant that defines the class.
- */
- val classConstant: KClass<*> = Object::class,
+ /**
+ * Define the class-name pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>className
+ * <li>classNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The class-constant that defines the class.
+ */
+ val classConstant: KClass<*> = Object::class,
- /**
- * Define the class-name pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>className
- * <li>classConstant
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The class-name pattern that defines the class.
- */
- val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the class-name pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>className
+ * <li>classConstant
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The class-name pattern that defines the class.
+ */
+ val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the instance-of pattern as classes that are instances of the fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The qualified class name that defines what instance-of the class must be.
- */
- val instanceOfClassName: String = "",
+ /**
+ * Define the instance-of pattern as classes that are instances of the fully qualified class
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The qualified class name that defines what instance-of the class must be.
+ */
+ val instanceOfClassName: String = "",
- /**
- * Define the instance-of pattern as classes that are instances of the fully qualified class name.
- *
- * <p>
- * The pattern is exclusive in that it does not match classes that are instances of the pattern,
- * but only those that are instances of classes that are subclasses of the pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The qualified class name that defines what instance-of the class must be.
- */
- val instanceOfClassNameExclusive: String = "",
+ /**
+ * Define the instance-of pattern as classes that are instances of the fully qualified class
+ * name.
+ *
+ * <p>
+ * The pattern is exclusive in that it does not match classes that are instances of the pattern,
+ * but only those that are instances of classes that are subclasses of the pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The qualified class name that defines what instance-of the class must be.
+ */
+ val instanceOfClassNameExclusive: String = "",
- /**
- * Define the instance-of pattern as classes that are instances the referenced Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The class constant that defines what instance-of the class must be.
- */
- val instanceOfClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the instance-of pattern as classes that are instances the referenced Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The class constant that defines what instance-of the class must be.
+ */
+ val instanceOfClassConstant: KClass<*> = Object::class,
- /**
- * Define the instance-of pattern as classes that are instances the referenced Class constant.
- *
- * <p>
- * The pattern is exclusive in that it does not match classes that are instances of the pattern,
- * but only those that are instances of classes that are subclasses of the pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The class constant that defines what instance-of the class must be.
- */
- val instanceOfClassConstantExclusive: KClass<*> = Object::class,
+ /**
+ * Define the instance-of pattern as classes that are instances the referenced Class constant.
+ *
+ * <p>
+ * The pattern is exclusive in that it does not match classes that are instances of the pattern,
+ * but only those that are instances of classes that are subclasses of the pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The class constant that defines what instance-of the class must be.
+ */
+ val instanceOfClassConstantExclusive: KClass<*> = Object::class,
- /**
- * Define the instance-of with a pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The pattern that defines what instance-of the class must be.
- */
- val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
+ /**
+ * Define the instance-of with a pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The pattern that defines what instance-of the class must be.
+ */
+ val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
- /**
- * Define the class-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassConstant
- * <li>classAnnotatedByClassNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val classAnnotatedByClassName: String = "",
+ /**
+ * Define the class-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassConstant
+ * <li>classAnnotatedByClassNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val classAnnotatedByClassName: String = "",
- /**
- * Define the class-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val classAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the class-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val classAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the class-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassConstant
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val classAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the class-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassConstant
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val classAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member pattern in full by a reference to a binding.
- *
- * <p>
- * Mutually exclusive with all other class and member pattern properties. When a member binding is
- * referenced this item is defined to be that item, including its class and member patterns.
- *
- * @return The binding name that defines the member.
- */
- val memberFromBinding: String = "",
+ /**
+ * Define the member pattern in full by a reference to a binding.
+ *
+ * <p>
+ * Mutually exclusive with all other class and member pattern properties. When a member binding
+ * is referenced this item is defined to be that item, including its class and member patterns.
+ *
+ * @return The binding name that defines the member.
+ */
+ val memberFromBinding: String = "",
- /**
- * Define the member-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassConstant
- * <li>memberAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val memberAnnotatedByClassName: String = "",
+ /**
+ * Define the member-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val memberAnnotatedByClassName: String = "",
- /**
- * Define the member-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val memberAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the member-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val memberAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the member-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassConstant
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val memberAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the member-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val memberAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * Mutually exclusive with the property `memberFromBinding` also defining member-access.
- *
- * @return The member access-flag constraints that must be met.
- */
- val memberAccess: Array<MemberAccessFlags> = [],
+ /**
+ * Define the member-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * Mutually exclusive with the property `memberFromBinding` also defining member-access.
+ *
+ * @return The member access-flag constraints that must be met.
+ */
+ val memberAccess: Array<MemberAccessFlags> = [],
- /**
- * Define the method-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassConstant
- * <li>methodAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val methodAnnotatedByClassName: String = "",
+ /**
+ * Define the method-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassConstant
+ * <li>methodAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val methodAnnotatedByClassName: String = "",
- /**
- * Define the method-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val methodAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the method-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val methodAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the method-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassConstant
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val methodAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the method-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val methodAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the method-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any
- * method-access flags.
- *
- * <p>
- * Mutually exclusive with the property `memberFromBinding` also defining method-access.
- *
- * @return The method access-flag constraints that must be met.
- */
- val methodAccess: Array<MethodAccessFlags> = [],
+ /**
+ * Define the method-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * method-access flags.
+ *
+ * <p>
+ * Mutually exclusive with the property `memberFromBinding` also defining method-access.
+ *
+ * @return The method access-flag constraints that must be met.
+ */
+ val methodAccess: Array<MethodAccessFlags> = [],
- /**
- * Define the method-name pattern by an exact method name.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-name:
- * <ul>
- * <li>methodNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The exact method name of the method.
- */
- val methodName: String = "",
+ /**
+ * Define the method-name pattern by an exact method name.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-name:
+ * <ul>
+ * <li>methodNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The exact method name of the method.
+ */
+ val methodName: String = "",
- /**
- * Define the method-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-name:
- * <ul>
- * <li>methodName
- * <li>memberFromBinding
- * </ul>
- *
- * @return The string pattern of the method name.
- */
- val methodNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the method-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-name:
+ * <ul>
+ * <li>methodName
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The string pattern of the method name.
+ */
+ val methodNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the method return-type pattern by a fully qualified type or 'void'.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnTypeConstant
- * <li>methodReturnTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The qualified type name of the method return type.
- */
- val methodReturnType: String = "",
+ /**
+ * Define the method return-type pattern by a fully qualified type or 'void'.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnTypeConstant
+ * <li>methodReturnTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The qualified type name of the method return type.
+ */
+ val methodReturnType: String = "",
- /**
- * Define the method return-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return A class constant denoting the type of the method return type.
- */
- val methodReturnTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the method return-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return A class constant denoting the type of the method return type.
+ */
+ val methodReturnTypeConstant: KClass<*> = Object::class,
- /**
- * Define the method return-type pattern by a type pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypeConstant
- * <li>memberFromBinding
- * </ul>
- *
- * @return The pattern of the method return type.
- */
- val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the method return-type pattern by a type pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypeConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The pattern of the method return type.
+ */
+ val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
- /**
- * Define the method parameters pattern by a list of fully qualified types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the following other properties defining parameters:
- * <ul>
- * <li>methodParameterTypePatterns
- * <li>memberFromBinding
- * </ul>
- *
- * @return The list of qualified type names of the method parameters.
- */
- val methodParameters: Array<String> = [""],
+ /**
+ * Define the method parameters pattern by a list of fully qualified types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining parameters:
+ * <ul>
+ * <li>methodParameterTypePatterns
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The list of qualified type names of the method parameters.
+ */
+ val methodParameters: Array<String> = [""],
- /**
- * Define the method parameters pattern by a list of patterns on types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the following other properties defining parameters:
- * <ul>
- * <li>methodParameters
- * <li>memberFromBinding
- * </ul>
- *
- * @return The list of type patterns for the method parameters.
- */
- val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
+ /**
+ * Define the method parameters pattern by a list of patterns on types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining parameters:
+ * <ul>
+ * <li>methodParameters
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The list of type patterns for the method parameters.
+ */
+ val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
- /**
- * Define the field-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassConstant
- * <li>fieldAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val fieldAnnotatedByClassName: String = "",
+ /**
+ * Define the field-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassConstant
+ * <li>fieldAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val fieldAnnotatedByClassName: String = "",
- /**
- * Define the field-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the field-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassConstant
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the field-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the field-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field-access
- * flags.
- *
- * <p>
- * Mutually exclusive with the property `memberFromBinding` also defining field-access.
- *
- * @return The field access-flag constraints that must be met.
- */
- val fieldAccess: Array<FieldAccessFlags> = [],
+ /**
+ * Define the field-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any
+ * field-access flags.
+ *
+ * <p>
+ * Mutually exclusive with the property `memberFromBinding` also defining field-access.
+ *
+ * @return The field access-flag constraints that must be met.
+ */
+ val fieldAccess: Array<FieldAccessFlags> = [],
- /**
- * Define the field-name pattern by an exact field name.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-name:
- * <ul>
- * <li>fieldNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The exact field name of the field.
- */
- val fieldName: String = "",
+ /**
+ * Define the field-name pattern by an exact field name.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-name:
+ * <ul>
+ * <li>fieldNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The exact field name of the field.
+ */
+ val fieldName: String = "",
- /**
- * Define the field-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-name:
- * <ul>
- * <li>fieldName
- * <li>memberFromBinding
- * </ul>
- *
- * @return The string pattern of the field name.
- */
- val fieldNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the field-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-name:
+ * <ul>
+ * <li>fieldName
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The string pattern of the field name.
+ */
+ val fieldNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the field-type pattern by a fully qualified type.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldTypeConstant
- * <li>fieldTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The qualified type name for the field type.
- */
- val fieldType: String = "",
+ /**
+ * Define the field-type pattern by a fully qualified type.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldTypeConstant
+ * <li>fieldTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The qualified type name for the field type.
+ */
+ val fieldType: String = "",
- /**
- * Define the field-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The class constant for the field type.
- */
- val fieldTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The class constant for the field type.
+ */
+ val fieldTypeConstant: KClass<*> = Object::class,
- /**
- * Define the field-type pattern by a pattern on types.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypeConstant
- * <li>memberFromBinding
- * </ul>
- *
- * @return The type pattern for the field type.
- */
- val fieldTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the field-type pattern by a pattern on types.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypeConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The type pattern for the field type.
+ */
+ val fieldTypePattern: TypePattern = TypePattern(name = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepConstraint.kt b/src/keepanno/java/androidx/annotation/keep/KeepConstraint.kt
index f98d91b..a1aef00 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepConstraint.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepConstraint.kt
@@ -31,210 +31,211 @@
* method.
*/
public enum class KeepConstraint {
- /**
- * Indicates that the target item is being looked up reflectively.
- *
- * <p>Looking up an item reflectively requires that it remains on its expected context, which for
- * a method or field means it must remain on its defining class. In other words, the item cannot
- * be removed or moved.
- *
- * <p>Note that looking up a member does not imply that the holder class of the member can be
- * looked up. If both the class and the member need to be looked, make sure to have a target for
- * both.
- *
- * <p>Note also that the item can be looked up within its context but no constraint is placed on
- * its name, accessibility or any other properties of the item.
- *
- * <p>If assumptions are being made about other aspects, additional constraints and targets should
- * be added to the keep annotation.
- */
- LOOKUP,
+ /**
+ * Indicates that the target item is being looked up reflectively.
+ *
+ * <p>Looking up an item reflectively requires that it remains on its expected context, which
+ * for a method or field means it must remain on its defining class. In other words, the item
+ * cannot be removed or moved.
+ *
+ * <p>Note that looking up a member does not imply that the holder class of the member can be
+ * looked up. If both the class and the member need to be looked, make sure to have a target for
+ * both.
+ *
+ * <p>Note also that the item can be looked up within its context but no constraint is placed on
+ * its name, accessibility or any other properties of the item.
+ *
+ * <p>If assumptions are being made about other aspects, additional constraints and targets
+ * should be added to the keep annotation.
+ */
+ LOOKUP,
- /**
- * Indicates that the name of the target item is being used.
- *
- * <p>This usage constraint is needed if the target is being looked up reflectively by using its
- * name. Setting it will prohibit renaming of the target item.
- *
- * <p>Note that preserving the name of a member does not imply that the holder class of the member
- * will preserve its qualified or simple name. If both the class and the member need to preserve
- * their names, make sure to have a target for both.
- *
- * <p>Note that preserving the name of a member does not preserve the types of its parameters or
- * its return type for methods or the type for fields.
- */
- NAME,
+ /**
+ * Indicates that the name of the target item is being used.
+ *
+ * <p>This usage constraint is needed if the target is being looked up reflectively by using its
+ * name. Setting it will prohibit renaming of the target item.
+ *
+ * <p>Note that preserving the name of a member does not imply that the holder class of the
+ * member will preserve its qualified or simple name. If both the class and the member need to
+ * preserve their names, make sure to have a target for both.
+ *
+ * <p>Note that preserving the name of a member does not preserve the types of its parameters or
+ * its return type for methods or the type for fields.
+ */
+ NAME,
- /**
- * Indicates that the visibility of the target must be at least as visible as declared.
- *
- * <p>Setting this constraint ensures that any (reflective) access to the target that is allowed
- * remains valid. In other words, a public class, field or method must remain public. For a
- * non-public target its visibility may be relaxed in the direction: {@code private ->
- * package-private -> protected -> public}.
- *
- * <p>Note that this constraint does not place any restrictions on any other accesses flags than
- * visibility. In particular, flags such a static, final and abstract may change.
- *
- * <p>Used together with {@link #VISIBILITY_RESTRICT} the visibility will remain invariant.
- */
- VISIBILITY_RELAX,
+ /**
+ * Indicates that the visibility of the target must be at least as visible as declared.
+ *
+ * <p>Setting this constraint ensures that any (reflective) access to the target that is allowed
+ * remains valid. In other words, a public class, field or method must remain public. For a
+ * non-public target its visibility may be relaxed in the direction: {@code private ->
+ * package-private -> protected -> public}.
+ *
+ * <p>Note that this constraint does not place any restrictions on any other accesses flags than
+ * visibility. In particular, flags such a static, final and abstract may change.
+ *
+ * <p>Used together with {@link #VISIBILITY_RESTRICT} the visibility will remain invariant.
+ */
+ VISIBILITY_RELAX,
- /**
- * Indicates that the visibility of the target must be at most as visible as declared.
- *
- * <p>Setting this constraint ensures that any (reflective) access to the target that would fail
- * will continue to fail. In other words, a private class, field or method must remain private.
- * Concretely the visibility of the target item may be restricted in the direction: {@code public
- * -> protected -> package-private -> private}.
- *
- * <p>Note that this constraint does not place any restrictions on any other accesses flags than
- * visibility. In particular, flags such a static, final and abstract may change.
- *
- * <p>Used together with {@link #VISIBILITY_RELAX} the visibility will remain invariant.
- */
- VISIBILITY_RESTRICT,
+ /**
+ * Indicates that the visibility of the target must be at most as visible as declared.
+ *
+ * <p>Setting this constraint ensures that any (reflective) access to the target that would fail
+ * will continue to fail. In other words, a private class, field or method must remain private.
+ * Concretely the visibility of the target item may be restricted in the direction: {@code
+ * public -> protected -> package-private -> private}.
+ *
+ * <p>Note that this constraint does not place any restrictions on any other accesses flags than
+ * visibility. In particular, flags such a static, final and abstract may change.
+ *
+ * <p>Used together with {@link #VISIBILITY_RELAX} the visibility will remain invariant.
+ */
+ VISIBILITY_RESTRICT,
- /**
- * Indicates that the visibility of the target must remain as declared.
- *
- * <p>Note that this constraint does not place any restrictions on any other accesses flags than
- * visibility. In particular, flags such a static, final and abstract may change.
- *
- * <p>This is equivalent to using both {@link #VISIBILITY_RELAX} and {@link #VISIBILITY_RESTRICT}.
- */
- VISIBILITY_INVARIANT,
+ /**
+ * Indicates that the visibility of the target must remain as declared.
+ *
+ * <p>Note that this constraint does not place any restrictions on any other accesses flags than
+ * visibility. In particular, flags such a static, final and abstract may change.
+ *
+ * <p>This is equivalent to using both {@link #VISIBILITY_RELAX} and
+ * {@link #VISIBILITY_RESTRICT}.
+ */
+ VISIBILITY_INVARIANT,
- /**
- * Indicates that the class target is being instantiated reflectively.
- *
- * <p>This usage constraint is only valid on class targets.
- *
- * <p>Being instantiated prohibits reasoning about the class instances at compile time. In other
- * words, the compiler must assume the class to be possibly instantiated at all times.
- *
- * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain a
- * class. This constraint only implies that if the class is referenced in the program it may be
- * instantiated.
- */
- CLASS_INSTANTIATE,
+ /**
+ * Indicates that the class target is being instantiated reflectively.
+ *
+ * <p>This usage constraint is only valid on class targets.
+ *
+ * <p>Being instantiated prohibits reasoning about the class instances at compile time. In other
+ * words, the compiler must assume the class to be possibly instantiated at all times.
+ *
+ * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain a
+ * class. This constraint only implies that if the class is referenced in the program it may be
+ * instantiated.
+ */
+ CLASS_INSTANTIATE,
- /**
- * Indicates that the method target is being invoked reflectively.
- *
- * <p>This usage constraint is only valid on method targets.
- *
- * <p>To be invoked reflectively the method must retain the structure of the method. Thus, unused
- * arguments cannot be removed. However, it does not imply preserving the types of its parameters
- * or its return type. If the parameter types are being obtained reflectively then those need a
- * keep target independent of the method.
- *
- * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain a
- * method reference. This constraint only implies that if the method is referenced in the program
- * it may be reflectively invoked.
- */
- METHOD_INVOKE,
+ /**
+ * Indicates that the method target is being invoked reflectively.
+ *
+ * <p>This usage constraint is only valid on method targets.
+ *
+ * <p>To be invoked reflectively the method must retain the structure of the method. Thus,
+ * unused arguments cannot be removed. However, it does not imply preserving the types of its
+ * parameters or its return type. If the parameter types are being obtained reflectively then
+ * those need a keep target independent of the method.
+ *
+ * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain a
+ * method reference. This constraint only implies that if the method is referenced in the
+ * program it may be reflectively invoked.
+ */
+ METHOD_INVOKE,
- /**
- * Indicates that the field target is reflectively read from.
- *
- * <p>This usage constraint is only valid on field targets.
- *
- * <p>A field that has its value read from, requires that the field value must remain. Thus, if
- * field remains, its value cannot be replaced. It can still be removed in full, be inlined and
- * its value reasoned about at compile time.
- *
- * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain
- * access to the field. This constraint only implies that if a field is referenced then it may be
- * reflectively read.
- */
- FIELD_GET,
+ /**
+ * Indicates that the field target is reflectively read from.
+ *
+ * <p>This usage constraint is only valid on field targets.
+ *
+ * <p>A field that has its value read from, requires that the field value must remain. Thus, if
+ * field remains, its value cannot be replaced. It can still be removed in full, be inlined and
+ * its value reasoned about at compile time.
+ *
+ * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain
+ * access to the field. This constraint only implies that if a field is referenced then it may
+ * be reflectively read.
+ */
+ FIELD_GET,
- /**
- * Indicates that the field target is reflectively written to.
- *
- * <p>This usage constraint is only valid on field targets.
- *
- * <p>A field that has its value written to, requires that the field value must be treated as
- * unknown.
- *
- * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain
- * access to the field. This constraint only implies that if a field is referenced then it may be
- * reflectively written.
- */
- FIELD_SET,
+ /**
+ * Indicates that the field target is reflectively written to.
+ *
+ * <p>This usage constraint is only valid on field targets.
+ *
+ * <p>A field that has its value written to, requires that the field value must be treated as
+ * unknown.
+ *
+ * <p>Note that the constraint {@link KeepConstraint#LOOKUP} is needed to reflectively obtain
+ * access to the field. This constraint only implies that if a field is referenced then it may
+ * be reflectively written.
+ */
+ FIELD_SET,
- /**
- * Indicates that the target method can be replaced by an alternative definition at runtime.
- *
- * <p>This usage constraint is only valid on method targets.
- *
- * <p>Replacing a method implies that the concrete implementation of the target cannot be known at
- * compile time. Thus, it cannot be moved or otherwise assumed to have particular properties.
- * Being able to replace the method still allows the compiler to fully remove it if it is
- * statically found to be unused.
- *
- * <p>Note also that no restriction is placed on the method name. To ensure the same name add
- * {@link #NAME} to the constraint set.
- */
- METHOD_REPLACE,
+ /**
+ * Indicates that the target method can be replaced by an alternative definition at runtime.
+ *
+ * <p>This usage constraint is only valid on method targets.
+ *
+ * <p>Replacing a method implies that the concrete implementation of the target cannot be known
+ * at compile time. Thus, it cannot be moved or otherwise assumed to have particular properties.
+ * Being able to replace the method still allows the compiler to fully remove it if it is
+ * statically found to be unused.
+ *
+ * <p>Note also that no restriction is placed on the method name. To ensure the same name add
+ * {@link #NAME} to the constraint set.
+ */
+ METHOD_REPLACE,
- /**
- * Indicates that the target field can be replaced by an alternative definition at runtime.
- *
- * <p>This usage constraint is only valid on field targets.
- *
- * <p>Replacing a field implies that the concrete implementation of the target cannot be known at
- * compile time. Thus, it cannot be moved or otherwise assumed to have particular properties.
- * Being able to replace the method still allows the compiler to fully remove it if it is
- * statically found to be unused.
- *
- * <p>Note also that no restriction is placed on the field name. To ensure the same name add
- * {@link #NAME} to the constraint set.
- */
- FIELD_REPLACE,
+ /**
+ * Indicates that the target field can be replaced by an alternative definition at runtime.
+ *
+ * <p>This usage constraint is only valid on field targets.
+ *
+ * <p>Replacing a field implies that the concrete implementation of the target cannot be known
+ * at compile time. Thus, it cannot be moved or otherwise assumed to have particular properties.
+ * Being able to replace the method still allows the compiler to fully remove it if it is
+ * statically found to be unused.
+ *
+ * <p>Note also that no restriction is placed on the field name. To ensure the same name add
+ * {@link #NAME} to the constraint set.
+ */
+ FIELD_REPLACE,
- /**
- * Indicates that the target item must never be inlined or merged.
- *
- * <p>This ensures that if the item is actually used in the program it will remain in some form.
- * For example, a method may still be renamed, but it will be present as a frame in stack traces
- * produced by the runtime (before potentially being retraced). For classes, they too may be
- * renamed, but will not have been merged with other classes or have their allocations fully
- * eliminated (aka class inlining).
- *
- * <p>For members this also ensures that the field value or method body cannot be reasoned about
- * outside the item itself. For example, a field value cannot be assumed to be a particular value,
- * and a method cannot be assumed to have particular properties for callers, such as always
- * throwing or a constant return value.
- */
- NEVER_INLINE,
+ /**
+ * Indicates that the target item must never be inlined or merged.
+ *
+ * <p>This ensures that if the item is actually used in the program it will remain in some form.
+ * For example, a method may still be renamed, but it will be present as a frame in stack traces
+ * produced by the runtime (before potentially being retraced). For classes, they too may be
+ * renamed, but will not have been merged with other classes or have their allocations fully
+ * eliminated (aka class inlining).
+ *
+ * <p>For members this also ensures that the field value or method body cannot be reasoned about
+ * outside the item itself. For example, a field value cannot be assumed to be a particular
+ * value, and a method cannot be assumed to have particular properties for callers, such as
+ * always throwing or a constant return value.
+ */
+ NEVER_INLINE,
- /**
- * Indicates that the class hierarchy below the target class may be extended at runtime.
- *
- * <p>This ensures that new subtypes of the target class can later be linked and/or class loaded
- * at runtime.
- *
- * <p>This does not ensure that the class remains if it is otherwise dead code and can be fully
- * removed.
- *
- * <p>Note that this constraint does not ensure that particular methods remain on the target
- * class. If methods or fields of the target class are being targeted by a subclass that was
- * classloaded or linked later, then keep annotations are needed for those targets too. Such
- * non-visible uses requires the same annotations to preserve as for reflective uses.
- */
- CLASS_OPEN_HIERARCHY,
+ /**
+ * Indicates that the class hierarchy below the target class may be extended at runtime.
+ *
+ * <p>This ensures that new subtypes of the target class can later be linked and/or class loaded
+ * at runtime.
+ *
+ * <p>This does not ensure that the class remains if it is otherwise dead code and can be fully
+ * removed.
+ *
+ * <p>Note that this constraint does not ensure that particular methods remain on the target
+ * class. If methods or fields of the target class are being targeted by a subclass that was
+ * classloaded or linked later, then keep annotations are needed for those targets too. Such
+ * non-visible uses requires the same annotations to preserve as for reflective uses.
+ */
+ CLASS_OPEN_HIERARCHY,
- /**
- * Indicates that the target item must retain its generic signature if present.
- *
- * <p>This ensures that the generic signature remains, but does not prohibit rewriting of the
- * generic signature. For example, if a type present in the generic signature is renamed, the
- * generic signature will also be updated to now refer to the type by its renamed name.
- *
- * <p>Note that this constraint does not otherwise restrict what can be done to the target, such
- * as removing the target completely, inlining it, etc.
- */
- GENERIC_SIGNATURE,
+ /**
+ * Indicates that the target item must retain its generic signature if present.
+ *
+ * <p>This ensures that the generic signature remains, but does not prohibit rewriting of the
+ * generic signature. For example, if a type present in the generic signature is renamed, the
+ * generic signature will also be updated to now refer to the type by its renamed name.
+ *
+ * <p>Note that this constraint does not otherwise restrict what can be done to the target, such
+ * as removing the target completely, inlining it, etc.
+ */
+ GENERIC_SIGNATURE,
}
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepEdge.kt b/src/keepanno/java/androidx/annotation/keep/KeepEdge.kt
index dc30799..1f3af1f 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepEdge.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepEdge.kt
@@ -25,16 +25,16 @@
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.TYPE,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.TYPE,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class KeepEdge(
- val description: String = "",
+ val description: String = "",
- // val retention : Array<RetentionPolicy> = [RetentionPolicy.RUNTIME]
- val bindings: Array<KeepBinding> = [],
- val preconditions: Array<KeepCondition> = [],
- val consequences: Array<KeepTarget> = [],
+ // val retention : Array<RetentionPolicy> = [RetentionPolicy.RUNTIME]
+ val bindings: Array<KeepBinding> = [],
+ val preconditions: Array<KeepCondition> = [],
+ val consequences: Array<KeepTarget> = [],
)
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepForApi.kt b/src/keepanno/java/androidx/annotation/keep/KeepForApi.kt
index aecd426..1c27695 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepForApi.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepForApi.kt
@@ -42,494 +42,501 @@
*/
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.CLASS,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.CLASS,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class KeepForApi(
- /**
- * Optional description to document the reason for this annotation.
- *
- * @return The descriptive message. Defaults to no description.
- */
- val description: String = "",
+ /**
+ * Optional description to document the reason for this annotation.
+ *
+ * @return The descriptive message. Defaults to no description.
+ */
+ val description: String = "",
- /**
- * Additional targets to be kept as part of the API surface.
- *
- * @return List of additional target consequences. Defaults to no additional target consequences.
- */
- val additionalTargets: Array<KeepTarget> = [],
+ /**
+ * Additional targets to be kept as part of the API surface.
+ *
+ * @return List of additional target consequences. Defaults to no additional target
+ * consequences.
+ */
+ val additionalTargets: Array<KeepTarget> = [],
- /**
- * Specify the kind of this item pattern.
- *
- * <p>
- * Default kind is {@link KeepItemKind#CLASS_AND_MEMBERS}, meaning the annotated class and/or
- * member is to be kept. When annotating a class this can be set to {@link
- * KeepItemKind#ONLY_CLASS} to avoid patterns on any members. That can be useful when the API
- * members are themselves explicitly annotated.
- *
- * <p>
- * It is not possible to use {@link KeepItemKind#ONLY_CLASS} if annotating a member. Also, it is
- * never valid to use kind {@link KeepItemKind#ONLY_MEMBERS} as the API surface must keep the
- * class if any member is to be accessible.
- *
- * @return The kind for this pattern.
- */
- val kind: KeepItemKind = KeepItemKind.DEFAULT,
+ /**
+ * Specify the kind of this item pattern.
+ *
+ * <p>
+ * Default kind is {@link KeepItemKind#CLASS_AND_MEMBERS}, meaning the annotated class and/or
+ * member is to be kept. When annotating a class this can be set to {@link
+ * KeepItemKind#ONLY_CLASS} to avoid patterns on any members. That can be useful when the API
+ * members are themselves explicitly annotated.
+ *
+ * <p>
+ * It is not possible to use {@link KeepItemKind#ONLY_CLASS} if annotating a member. Also, it is
+ * never valid to use kind {@link KeepItemKind#ONLY_MEMBERS} as the API surface must keep the
+ * class if any member is to be accessible.
+ *
+ * @return The kind for this pattern.
+ */
+ val kind: KeepItemKind = KeepItemKind.DEFAULT,
- /**
- * Define the member-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassConstant
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val memberAnnotatedByClassName: String = "",
+ /**
+ * Define the member-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val memberAnnotatedByClassName: String = "",
- /**
- * Define the member-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val memberAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the member-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val memberAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the member-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val memberAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the member-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val memberAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * @return The member access-flag constraints that must be met.
- */
- val memberAccess: Array<MemberAccessFlags> = [],
+ /**
+ * Define the member-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * @return The member access-flag constraints that must be met.
+ */
+ val memberAccess: Array<MemberAccessFlags> = [],
- /**
- * Define the method-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassConstant
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val methodAnnotatedByClassName: String = "",
+ /**
+ * Define the method-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassConstant
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val methodAnnotatedByClassName: String = "",
- /**
- * Define the method-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val methodAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the method-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val methodAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the method-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val methodAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the method-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val methodAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the method-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any
- * method-access flags.
- *
- * @return The method access-flag constraints that must be met.
- */
- val methodAccess: Array<MethodAccessFlags> = [],
+ /**
+ * Define the method-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * method-access flags.
+ *
+ * @return The method access-flag constraints that must be met.
+ */
+ val methodAccess: Array<MethodAccessFlags> = [],
- /**
- * Define the method-name pattern by an exact method name.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodNamePattern` also defining method-name.
- *
- * @return The exact method name of the method.
- */
- val methodName: String = "",
+ /**
+ * Define the method-name pattern by an exact method name.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodNamePattern` also defining method-name.
+ *
+ * @return The exact method name of the method.
+ */
+ val methodName: String = "",
- /**
- * Define the method-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodName` also defining method-name.
- *
- * @return The string pattern of the method name.
- */
- val methodNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the method-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodName` also defining method-name.
+ *
+ * @return The string pattern of the method name.
+ */
+ val methodNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the method return-type pattern by a fully qualified type or 'void'.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnTypeConstant
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return The qualified type name of the method return type.
- */
- val methodReturnType: String = "",
+ /**
+ * Define the method return-type pattern by a fully qualified type or 'void'.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnTypeConstant
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return The qualified type name of the method return type.
+ */
+ val methodReturnType: String = "",
- /**
- * Define the method return-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return A class constant denoting the type of the method return type.
- */
- val methodReturnTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the method return-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return A class constant denoting the type of the method return type.
+ */
+ val methodReturnTypeConstant: KClass<*> = Object::class,
- /**
- * Define the method return-type pattern by a type pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypeConstant
- * </ul>
- *
- * @return The pattern of the method return type.
- */
- val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the method return-type pattern by a type pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypeConstant
+ * </ul>
+ *
+ * @return The pattern of the method return type.
+ */
+ val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
- /**
- * Define the method parameters pattern by a list of fully qualified types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
- *
- * @return The list of qualified type names of the method parameters.
- */
- val methodParameters: Array<String> = [""],
+ /**
+ * Define the method parameters pattern by a list of fully qualified types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
+ *
+ * @return The list of qualified type names of the method parameters.
+ */
+ val methodParameters: Array<String> = [""],
- /**
- * Define the method parameters pattern by a list of patterns on types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameters` also defining parameters.
- *
- * @return The list of type patterns for the method parameters.
- */
- val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
+ /**
+ * Define the method parameters pattern by a list of patterns on types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameters` also defining parameters.
+ *
+ * @return The list of type patterns for the method parameters.
+ */
+ val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
- /**
- * Define the field-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassConstant
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val fieldAnnotatedByClassName: String = "",
+ /**
+ * Define the field-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassConstant
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val fieldAnnotatedByClassName: String = "",
- /**
- * Define the field-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the field-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the field-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the field-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field-access
- * flags.
- *
- * @return The field access-flag constraints that must be met.
- */
- val fieldAccess: Array<FieldAccessFlags> = [],
+ /**
+ * Define the field-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any
+ * field-access flags.
+ *
+ * @return The field access-flag constraints that must be met.
+ */
+ val fieldAccess: Array<FieldAccessFlags> = [],
- /**
- * Define the field-name pattern by an exact field name.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
- *
- * @return The exact field name of the field.
- */
- val fieldName: String = "",
+ /**
+ * Define the field-name pattern by an exact field name.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
+ *
+ * @return The exact field name of the field.
+ */
+ val fieldName: String = "",
- /**
- * Define the field-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldName` also defining field-name.
- *
- * @return The string pattern of the field name.
- */
- val fieldNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the field-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldName` also defining field-name.
+ *
+ * @return The string pattern of the field name.
+ */
+ val fieldNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the field-type pattern by a fully qualified type.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldTypeConstant
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The qualified type name for the field type.
- */
- val fieldType: String = "",
+ /**
+ * Define the field-type pattern by a fully qualified type.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldTypeConstant
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The qualified type name for the field type.
+ */
+ val fieldType: String = "",
- /**
- * Define the field-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The class constant for the field type.
- */
- val fieldTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The class constant for the field type.
+ */
+ val fieldTypeConstant: KClass<*> = Object::class,
- /**
- * Define the field-type pattern by a pattern on types.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypeConstant
- * </ul>
- *
- * @return The type pattern for the field type.
- */
- val fieldTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the field-type pattern by a pattern on types.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypeConstant
+ * </ul>
+ *
+ * @return The type pattern for the field type.
+ */
+ val fieldTypePattern: TypePattern = TypePattern(name = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepItemKind.kt b/src/keepanno/java/androidx/annotation/keep/KeepItemKind.kt
index e30bd45..3dd9bad 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepItemKind.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepItemKind.kt
@@ -21,12 +21,12 @@
package androidx.annotation.keep
public enum class KeepItemKind {
- ONLY_CLASS,
- ONLY_MEMBERS,
- ONLY_METHODS,
- ONLY_FIELDS,
- CLASS_AND_MEMBERS,
- CLASS_AND_METHODS,
- CLASS_AND_FIELDS,
- DEFAULT,
+ ONLY_CLASS,
+ ONLY_MEMBERS,
+ ONLY_METHODS,
+ ONLY_FIELDS,
+ CLASS_AND_MEMBERS,
+ CLASS_AND_METHODS,
+ CLASS_AND_FIELDS,
+ DEFAULT,
}
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepOption.kt b/src/keepanno/java/androidx/annotation/keep/KeepOption.kt
index 64035a7..3642e74 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepOption.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepOption.kt
@@ -21,9 +21,9 @@
package androidx.annotation.keep
public enum class KeepOption {
- SHRINKING,
- OPTIMIZATION,
- OBFUSCATION,
- ACCESS_MODIFICATION,
- ANNOTATION_REMOVAL,
+ SHRINKING,
+ OPTIMIZATION,
+ OBFUSCATION,
+ ACCESS_MODIFICATION,
+ ANNOTATION_REMOVAL,
}
diff --git a/src/keepanno/java/androidx/annotation/keep/KeepTarget.kt b/src/keepanno/java/androidx/annotation/keep/KeepTarget.kt
index 6164c7e..c86993f 100644
--- a/src/keepanno/java/androidx/annotation/keep/KeepTarget.kt
+++ b/src/keepanno/java/androidx/annotation/keep/KeepTarget.kt
@@ -43,864 +43,872 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class KeepTarget(
- /**
- * Specify the kind of this item pattern.
- *
- * <p>
- * Possible values are:
- * <ul>
- * <li>{@link KeepItemKind#ONLY_CLASS}
- * <li>{@link KeepItemKind#ONLY_MEMBERS}
- * <li>{@link KeepItemKind#ONLY_METHODS}
- * <li>{@link KeepItemKind#ONLY_FIELDS}
- * <li>{@link KeepItemKind#CLASS_AND_MEMBERS}
- * <li>{@link KeepItemKind#CLASS_AND_METHODS}
- * <li>{@link KeepItemKind#CLASS_AND_FIELDS}
- * </ul>
- *
- * <p>
- * If unspecified the default kind for an item depends on its member patterns:
- * <ul>
- * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined
- * <li>{@link KeepItemKind#ONLY_METHODS} if method patterns are defined
- * <li>{@link KeepItemKind#ONLY_FIELDS} if field patterns are defined
- * <li>{@link KeepItemKind#ONLY_MEMBERS} otherwise.
- * </ul>
- *
- * @return The kind for this pattern.
- */
- val kind: KeepItemKind = KeepItemKind.DEFAULT,
+ /**
+ * Specify the kind of this item pattern.
+ *
+ * <p>
+ * Possible values are:
+ * <ul>
+ * <li>{@link KeepItemKind#ONLY_CLASS}
+ * <li>{@link KeepItemKind#ONLY_MEMBERS}
+ * <li>{@link KeepItemKind#ONLY_METHODS}
+ * <li>{@link KeepItemKind#ONLY_FIELDS}
+ * <li>{@link KeepItemKind#CLASS_AND_MEMBERS}
+ * <li>{@link KeepItemKind#CLASS_AND_METHODS}
+ * <li>{@link KeepItemKind#CLASS_AND_FIELDS}
+ * </ul>
+ *
+ * <p>
+ * If unspecified the default kind for an item depends on its member patterns:
+ * <ul>
+ * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined
+ * <li>{@link KeepItemKind#ONLY_METHODS} if method patterns are defined
+ * <li>{@link KeepItemKind#ONLY_FIELDS} if field patterns are defined
+ * <li>{@link KeepItemKind#ONLY_MEMBERS} otherwise.
+ * </ul>
+ *
+ * @return The kind for this pattern.
+ */
+ val kind: KeepItemKind = KeepItemKind.DEFAULT,
- /**
- * Define the usage constraints of the target.
- *
- * <p>
- * The specified constraints must remain valid for the target.
- *
- * <p>
- * The default constraints depend on the kind of the target. For all targets the default
- * constraints include:
- * <ul>
- * <li>{@link KeepConstraint#LOOKUP}
- * <li>{@link KeepConstraint#NAME}
- * <li>{@link KeepConstraint#VISIBILITY_RELAX}
- * </ul>
- *
- * <p>
- * For classes the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#CLASS_INSTANTIATE}
- * </ul>
- *
- * <p>
- * For methods the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#METHOD_INVOKE}
- * </ul>
- *
- * <p>
- * For fields the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#FIELD_GET}
- * <li>{@link KeepConstraint#FIELD_SET}
- * </ul>
- *
- * <p>
- * Mutually exclusive with the property `constraintAdditions` also defining constraints.
- *
- * @return Usage constraints for the target.
- */
- val constraints: Array<KeepConstraint> = [],
+ /**
+ * Define the usage constraints of the target.
+ *
+ * <p>
+ * The specified constraints must remain valid for the target.
+ *
+ * <p>
+ * The default constraints depend on the kind of the target. For all targets the default
+ * constraints include:
+ * <ul>
+ * <li>{@link KeepConstraint#LOOKUP}
+ * <li>{@link KeepConstraint#NAME}
+ * <li>{@link KeepConstraint#VISIBILITY_RELAX}
+ * </ul>
+ *
+ * <p>
+ * For classes the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#CLASS_INSTANTIATE}
+ * </ul>
+ *
+ * <p>
+ * For methods the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#METHOD_INVOKE}
+ * </ul>
+ *
+ * <p>
+ * For fields the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#FIELD_GET}
+ * <li>{@link KeepConstraint#FIELD_SET}
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with the property `constraintAdditions` also defining constraints.
+ *
+ * @return Usage constraints for the target.
+ */
+ val constraints: Array<KeepConstraint> = [],
- /**
- * Add additional usage constraints of the target.
- *
- * <p>
- * The specified constraints must remain valid for the target in addition to the default
- * constraints.
- *
- * <p>
- * The default constraints are documented in {@link #constraints}
- *
- * <p>
- * Mutually exclusive with the property `constraints` also defining constraints.
- *
- * @return Additional usage constraints for the target.
- */
- val constraintAdditions: Array<KeepConstraint> = [],
+ /**
+ * Add additional usage constraints of the target.
+ *
+ * <p>
+ * The specified constraints must remain valid for the target in addition to the default
+ * constraints.
+ *
+ * <p>
+ * The default constraints are documented in {@link #constraints}
+ *
+ * <p>
+ * Mutually exclusive with the property `constraints` also defining constraints.
+ *
+ * @return Additional usage constraints for the target.
+ */
+ val constraintAdditions: Array<KeepConstraint> = [],
- /**
- * Patterns for annotations that must remain on the item.
- *
- * <p>
- * The annotations matching any of the patterns must remain on the item if the annotation types
- * remain in the program.
- *
- * <p>
- * Note that if the annotation types themselves are unused/removed, then their references on the
- * item will be removed too. If the annotation types themselves are used reflectively then they
- * too need a keep annotation or rule to ensure they remain in the program.
- *
- * <p>
- * By default no annotation patterns are defined and no annotations are required to remain.
- *
- * @return Annotation patterns
- */
- val constrainAnnotations: Array<AnnotationPattern> = [],
+ /**
+ * Patterns for annotations that must remain on the item.
+ *
+ * <p>
+ * The annotations matching any of the patterns must remain on the item if the annotation types
+ * remain in the program.
+ *
+ * <p>
+ * Note that if the annotation types themselves are unused/removed, then their references on the
+ * item will be removed too. If the annotation types themselves are used reflectively then they
+ * too need a keep annotation or rule to ensure they remain in the program.
+ *
+ * <p>
+ * By default no annotation patterns are defined and no annotations are required to remain.
+ *
+ * @return Annotation patterns
+ */
+ val constrainAnnotations: Array<AnnotationPattern> = [],
- /**
- * Define the class pattern by reference to a binding.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class:
- * <ul>
- * <li>className
- * <li>classConstant
- * <li>classNamePattern
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassConstant
- * <li>classAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class.
- *
- * @return The name of the binding that defines the class.
- */
- val classFromBinding: String = "",
+ /**
+ * Define the class pattern by reference to a binding.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class:
+ * <ul>
+ * <li>className
+ * <li>classConstant
+ * <li>classNamePattern
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassConstant
+ * <li>classAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class.
+ *
+ * @return The name of the binding that defines the class.
+ */
+ val classFromBinding: String = "",
- /**
- * Define the class-name pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>classConstant
- * <li>classNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The qualified class name that defines the class.
- */
- val className: String = "",
+ /**
+ * Define the class-name pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>classConstant
+ * <li>classNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The qualified class name that defines the class.
+ */
+ val className: String = "",
- /**
- * Define the class-name pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>className
- * <li>classNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The class-constant that defines the class.
- */
- val classConstant: KClass<*> = Object::class,
+ /**
+ * Define the class-name pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>className
+ * <li>classNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The class-constant that defines the class.
+ */
+ val classConstant: KClass<*> = Object::class,
- /**
- * Define the class-name pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-name:
- * <ul>
- * <li>className
- * <li>classConstant
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class name.
- *
- * @return The class-name pattern that defines the class.
- */
- val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the class-name pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-name:
+ * <ul>
+ * <li>className
+ * <li>classConstant
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class name.
+ *
+ * @return The class-name pattern that defines the class.
+ */
+ val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the instance-of pattern as classes that are instances of the fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The qualified class name that defines what instance-of the class must be.
- */
- val instanceOfClassName: String = "",
+ /**
+ * Define the instance-of pattern as classes that are instances of the fully qualified class
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The qualified class name that defines what instance-of the class must be.
+ */
+ val instanceOfClassName: String = "",
- /**
- * Define the instance-of pattern as classes that are instances of the fully qualified class name.
- *
- * <p>
- * The pattern is exclusive in that it does not match classes that are instances of the pattern,
- * but only those that are instances of classes that are subclasses of the pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The qualified class name that defines what instance-of the class must be.
- */
- val instanceOfClassNameExclusive: String = "",
+ /**
+ * Define the instance-of pattern as classes that are instances of the fully qualified class
+ * name.
+ *
+ * <p>
+ * The pattern is exclusive in that it does not match classes that are instances of the pattern,
+ * but only those that are instances of classes that are subclasses of the pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The qualified class name that defines what instance-of the class must be.
+ */
+ val instanceOfClassNameExclusive: String = "",
- /**
- * Define the instance-of pattern as classes that are instances the referenced Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstantExclusive
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The class constant that defines what instance-of the class must be.
- */
- val instanceOfClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the instance-of pattern as classes that are instances the referenced Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstantExclusive
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The class constant that defines what instance-of the class must be.
+ */
+ val instanceOfClassConstant: KClass<*> = Object::class,
- /**
- * Define the instance-of pattern as classes that are instances the referenced Class constant.
- *
- * <p>
- * The pattern is exclusive in that it does not match classes that are instances of the pattern,
- * but only those that are instances of classes that are subclasses of the pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfPattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The class constant that defines what instance-of the class must be.
- */
- val instanceOfClassConstantExclusive: KClass<*> = Object::class,
+ /**
+ * Define the instance-of pattern as classes that are instances the referenced Class constant.
+ *
+ * <p>
+ * The pattern is exclusive in that it does not match classes that are instances of the pattern,
+ * but only those that are instances of classes that are subclasses of the pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfPattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The class constant that defines what instance-of the class must be.
+ */
+ val instanceOfClassConstantExclusive: KClass<*> = Object::class,
- /**
- * Define the instance-of with a pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining instance-of:
- * <ul>
- * <li>instanceOfClassName
- * <li>instanceOfClassNameExclusive
- * <li>instanceOfClassConstant
- * <li>instanceOfClassConstantExclusive
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class instance.
- *
- * @return The pattern that defines what instance-of the class must be.
- */
- val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
+ /**
+ * Define the instance-of with a pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining instance-of:
+ * <ul>
+ * <li>instanceOfClassName
+ * <li>instanceOfClassNameExclusive
+ * <li>instanceOfClassConstant
+ * <li>instanceOfClassConstantExclusive
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class instance.
+ *
+ * @return The pattern that defines what instance-of the class must be.
+ */
+ val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
- /**
- * Define the class-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassConstant
- * <li>classAnnotatedByClassNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val classAnnotatedByClassName: String = "",
+ /**
+ * Define the class-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassConstant
+ * <li>classAnnotatedByClassNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val classAnnotatedByClassName: String = "",
- /**
- * Define the class-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassNamePattern
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val classAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the class-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassNamePattern
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val classAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the class-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining class-annotated-by:
- * <ul>
- * <li>classAnnotatedByClassName
- * <li>classAnnotatedByClassConstant
- * <li>classFromBinding
- * </ul>
- *
- * <p>
- * If none are specified the default is to match any class regardless of what the class is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val classAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the class-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining class-annotated-by:
+ * <ul>
+ * <li>classAnnotatedByClassName
+ * <li>classAnnotatedByClassConstant
+ * <li>classFromBinding
+ * </ul>
+ *
+ * <p>
+ * If none are specified the default is to match any class regardless of what the class is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val classAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member pattern in full by a reference to a binding.
- *
- * <p>
- * Mutually exclusive with all other class and member pattern properties. When a member binding is
- * referenced this item is defined to be that item, including its class and member patterns.
- *
- * @return The binding name that defines the member.
- */
- val memberFromBinding: String = "",
+ /**
+ * Define the member pattern in full by a reference to a binding.
+ *
+ * <p>
+ * Mutually exclusive with all other class and member pattern properties. When a member binding
+ * is referenced this item is defined to be that item, including its class and member patterns.
+ *
+ * @return The binding name that defines the member.
+ */
+ val memberFromBinding: String = "",
- /**
- * Define the member-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassConstant
- * <li>memberAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val memberAnnotatedByClassName: String = "",
+ /**
+ * Define the member-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val memberAnnotatedByClassName: String = "",
- /**
- * Define the member-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val memberAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the member-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val memberAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the member-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassConstant
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val memberAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the member-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val memberAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * Mutually exclusive with the property `memberFromBinding` also defining member-access.
- *
- * @return The member access-flag constraints that must be met.
- */
- val memberAccess: Array<MemberAccessFlags> = [],
+ /**
+ * Define the member-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * Mutually exclusive with the property `memberFromBinding` also defining member-access.
+ *
+ * @return The member access-flag constraints that must be met.
+ */
+ val memberAccess: Array<MemberAccessFlags> = [],
- /**
- * Define the method-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassConstant
- * <li>methodAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val methodAnnotatedByClassName: String = "",
+ /**
+ * Define the method-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassConstant
+ * <li>methodAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val methodAnnotatedByClassName: String = "",
- /**
- * Define the method-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val methodAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the method-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val methodAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the method-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassConstant
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val methodAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the method-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val methodAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the method-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any
- * method-access flags.
- *
- * <p>
- * Mutually exclusive with the property `memberFromBinding` also defining method-access.
- *
- * @return The method access-flag constraints that must be met.
- */
- val methodAccess: Array<MethodAccessFlags> = [],
+ /**
+ * Define the method-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * method-access flags.
+ *
+ * <p>
+ * Mutually exclusive with the property `memberFromBinding` also defining method-access.
+ *
+ * @return The method access-flag constraints that must be met.
+ */
+ val methodAccess: Array<MethodAccessFlags> = [],
- /**
- * Define the method-name pattern by an exact method name.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-name:
- * <ul>
- * <li>methodNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The exact method name of the method.
- */
- val methodName: String = "",
+ /**
+ * Define the method-name pattern by an exact method name.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-name:
+ * <ul>
+ * <li>methodNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The exact method name of the method.
+ */
+ val methodName: String = "",
- /**
- * Define the method-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-name:
- * <ul>
- * <li>methodName
- * <li>memberFromBinding
- * </ul>
- *
- * @return The string pattern of the method name.
- */
- val methodNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the method-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-name:
+ * <ul>
+ * <li>methodName
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The string pattern of the method name.
+ */
+ val methodNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the method return-type pattern by a fully qualified type or 'void'.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnTypeConstant
- * <li>methodReturnTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The qualified type name of the method return type.
- */
- val methodReturnType: String = "",
+ /**
+ * Define the method return-type pattern by a fully qualified type or 'void'.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnTypeConstant
+ * <li>methodReturnTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The qualified type name of the method return type.
+ */
+ val methodReturnType: String = "",
- /**
- * Define the method return-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return A class constant denoting the type of the method return type.
- */
- val methodReturnTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the method return-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return A class constant denoting the type of the method return type.
+ */
+ val methodReturnTypeConstant: KClass<*> = Object::class,
- /**
- * Define the method return-type pattern by a type pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypeConstant
- * <li>memberFromBinding
- * </ul>
- *
- * @return The pattern of the method return type.
- */
- val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the method return-type pattern by a type pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypeConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The pattern of the method return type.
+ */
+ val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
- /**
- * Define the method parameters pattern by a list of fully qualified types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the following other properties defining parameters:
- * <ul>
- * <li>methodParameterTypePatterns
- * <li>memberFromBinding
- * </ul>
- *
- * @return The list of qualified type names of the method parameters.
- */
- val methodParameters: Array<String> = [""],
+ /**
+ * Define the method parameters pattern by a list of fully qualified types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining parameters:
+ * <ul>
+ * <li>methodParameterTypePatterns
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The list of qualified type names of the method parameters.
+ */
+ val methodParameters: Array<String> = [""],
- /**
- * Define the method parameters pattern by a list of patterns on types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the following other properties defining parameters:
- * <ul>
- * <li>methodParameters
- * <li>memberFromBinding
- * </ul>
- *
- * @return The list of type patterns for the method parameters.
- */
- val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
+ /**
+ * Define the method parameters pattern by a list of patterns on types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining parameters:
+ * <ul>
+ * <li>methodParameters
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The list of type patterns for the method parameters.
+ */
+ val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
- /**
- * Define the field-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassConstant
- * <li>fieldAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val fieldAnnotatedByClassName: String = "",
+ /**
+ * Define the field-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassConstant
+ * <li>fieldAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val fieldAnnotatedByClassName: String = "",
- /**
- * Define the field-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the field-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassConstant
- * <li>memberFromBinding
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the field-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the field-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field-access
- * flags.
- *
- * <p>
- * Mutually exclusive with the property `memberFromBinding` also defining field-access.
- *
- * @return The field access-flag constraints that must be met.
- */
- val fieldAccess: Array<FieldAccessFlags> = [],
+ /**
+ * Define the field-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any
+ * field-access flags.
+ *
+ * <p>
+ * Mutually exclusive with the property `memberFromBinding` also defining field-access.
+ *
+ * @return The field access-flag constraints that must be met.
+ */
+ val fieldAccess: Array<FieldAccessFlags> = [],
- /**
- * Define the field-name pattern by an exact field name.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-name:
- * <ul>
- * <li>fieldNamePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The exact field name of the field.
- */
- val fieldName: String = "",
+ /**
+ * Define the field-name pattern by an exact field name.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-name:
+ * <ul>
+ * <li>fieldNamePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The exact field name of the field.
+ */
+ val fieldName: String = "",
- /**
- * Define the field-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-name:
- * <ul>
- * <li>fieldName
- * <li>memberFromBinding
- * </ul>
- *
- * @return The string pattern of the field name.
- */
- val fieldNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the field-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-name:
+ * <ul>
+ * <li>fieldName
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The string pattern of the field name.
+ */
+ val fieldNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the field-type pattern by a fully qualified type.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldTypeConstant
- * <li>fieldTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The qualified type name for the field type.
- */
- val fieldType: String = "",
+ /**
+ * Define the field-type pattern by a fully qualified type.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldTypeConstant
+ * <li>fieldTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The qualified type name for the field type.
+ */
+ val fieldType: String = "",
- /**
- * Define the field-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypePattern
- * <li>memberFromBinding
- * </ul>
- *
- * @return The class constant for the field type.
- */
- val fieldTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypePattern
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The class constant for the field type.
+ */
+ val fieldTypeConstant: KClass<*> = Object::class,
- /**
- * Define the field-type pattern by a pattern on types.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypeConstant
- * <li>memberFromBinding
- * </ul>
- *
- * @return The type pattern for the field type.
- */
- val fieldTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the field-type pattern by a pattern on types.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypeConstant
+ * <li>memberFromBinding
+ * </ul>
+ *
+ * @return The type pattern for the field type.
+ */
+ val fieldTypePattern: TypePattern = TypePattern(name = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/MemberAccessFlags.kt b/src/keepanno/java/androidx/annotation/keep/MemberAccessFlags.kt
index 949a641..f855eee 100644
--- a/src/keepanno/java/androidx/annotation/keep/MemberAccessFlags.kt
+++ b/src/keepanno/java/androidx/annotation/keep/MemberAccessFlags.kt
@@ -27,18 +27,18 @@
* operation syntactically.
*/
public enum class MemberAccessFlags {
- PUBLIC,
- NON_PUBLIC,
- PROTECTED,
- NON_PROTECTED,
- PACKAGE_PRIVATE,
- NON_PACKAGE_PRIVATE,
- PRIVATE,
- NON_PRIVATE,
- STATIC,
- NON_STATIC,
- FINAL,
- NON_FINAL,
- SYNTHETIC,
- NON_SYNTHETIC,
+ PUBLIC,
+ NON_PUBLIC,
+ PROTECTED,
+ NON_PROTECTED,
+ PACKAGE_PRIVATE,
+ NON_PACKAGE_PRIVATE,
+ PRIVATE,
+ NON_PRIVATE,
+ STATIC,
+ NON_STATIC,
+ FINAL,
+ NON_FINAL,
+ SYNTHETIC,
+ NON_SYNTHETIC,
}
diff --git a/src/keepanno/java/androidx/annotation/keep/MethodAccessFlags.kt b/src/keepanno/java/androidx/annotation/keep/MethodAccessFlags.kt
index 3760256..4bb9a82 100644
--- a/src/keepanno/java/androidx/annotation/keep/MethodAccessFlags.kt
+++ b/src/keepanno/java/androidx/annotation/keep/MethodAccessFlags.kt
@@ -27,31 +27,31 @@
* operation syntactically.
*/
public enum class MethodAccessFlags {
- // General member flags.
- PUBLIC,
- NON_PUBLIC,
- PRIVATE,
- NON_PRIVATE,
- PROTECTED,
- NON_PROTECTED,
- PACKAGE_PRIVATE,
- NON_PACKAGE_PRIVATE,
- STATIC,
- NON_STATIC,
- FINAL,
- NON_FINAL,
- SYNTHETIC,
- NON_SYNTHETIC,
- // Method specific flags.
- SYNCHRONIZED,
- NON_SYNCHRONIZED,
- BRIDGE,
- NON_BRIDGE,
- // VARARGS - No PG parser support
- NATIVE,
- NON_NATIVE,
- ABSTRACT,
- NON_ABSTRACT,
- STRICT_FP,
- NON_STRICT_FP,
+ // General member flags.
+ PUBLIC,
+ NON_PUBLIC,
+ PRIVATE,
+ NON_PRIVATE,
+ PROTECTED,
+ NON_PROTECTED,
+ PACKAGE_PRIVATE,
+ NON_PACKAGE_PRIVATE,
+ STATIC,
+ NON_STATIC,
+ FINAL,
+ NON_FINAL,
+ SYNTHETIC,
+ NON_SYNTHETIC,
+ // Method specific flags.
+ SYNCHRONIZED,
+ NON_SYNCHRONIZED,
+ BRIDGE,
+ NON_BRIDGE,
+ // VARARGS - No PG parser support
+ NATIVE,
+ NON_NATIVE,
+ ABSTRACT,
+ NON_ABSTRACT,
+ STRICT_FP,
+ NON_STRICT_FP,
}
diff --git a/src/keepanno/java/androidx/annotation/keep/StringPattern.kt b/src/keepanno/java/androidx/annotation/keep/StringPattern.kt
index 15979fd..a81c2b0 100644
--- a/src/keepanno/java/androidx/annotation/keep/StringPattern.kt
+++ b/src/keepanno/java/androidx/annotation/keep/StringPattern.kt
@@ -37,40 +37,40 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class StringPattern(
- /**
- * Exact string content.
- *
- * <p>
- * For example, {@code "foo"} or {@code "java.lang.String"}.
- *
- * <p>
- * Mutually exclusive with the following other properties defining string-exact-pattern:
- * <ul>
- * <li>startsWith
- * <li>endsWith
- * </ul>
- */
- val exact: String = "",
+ /**
+ * Exact string content.
+ *
+ * <p>
+ * For example, {@code "foo"} or {@code "java.lang.String"}.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining string-exact-pattern:
+ * <ul>
+ * <li>startsWith
+ * <li>endsWith
+ * </ul>
+ */
+ val exact: String = "",
- /**
- * Matches strings beginning with the given prefix.
- *
- * <p>
- * For example, {@code "get"} to match strings such as {@code "getMyValue"}.
- *
- * <p>
- * Mutually exclusive with the property `exact` also defining string-prefix-pattern.
- */
- val startsWith: String = "",
+ /**
+ * Matches strings beginning with the given prefix.
+ *
+ * <p>
+ * For example, {@code "get"} to match strings such as {@code "getMyValue"}.
+ *
+ * <p>
+ * Mutually exclusive with the property `exact` also defining string-prefix-pattern.
+ */
+ val startsWith: String = "",
- /**
- * Matches strings ending with the given suffix.
- *
- * <p>
- * For example, {@code "Setter"} to match strings such as {@code "myValueSetter"}.
- *
- * <p>
- * Mutually exclusive with the property `exact` also defining string-suffix-pattern.
- */
- val endsWith: String = "",
+ /**
+ * Matches strings ending with the given suffix.
+ *
+ * <p>
+ * For example, {@code "Setter"} to match strings such as {@code "myValueSetter"}.
+ *
+ * <p>
+ * Mutually exclusive with the property `exact` also defining string-suffix-pattern.
+ */
+ val endsWith: String = "",
)
diff --git a/src/keepanno/java/androidx/annotation/keep/TypePattern.kt b/src/keepanno/java/androidx/annotation/keep/TypePattern.kt
index 5e42220..6f9b9ee 100644
--- a/src/keepanno/java/androidx/annotation/keep/TypePattern.kt
+++ b/src/keepanno/java/androidx/annotation/keep/TypePattern.kt
@@ -41,63 +41,63 @@
@Target(AnnotationTarget.ANNOTATION_CLASS)
public annotation class TypePattern(
- /**
- * Exact type name as a string.
- *
- * <p>
- * For example, {@code "long"} or {@code "java.lang.String"}.
- *
- * <p>
- * Mutually exclusive with the following other properties defining type-pattern:
- * <ul>
- * <li>constant
- * <li>classNamePattern
- * <li>instanceOfPattern
- * </ul>
- */
- val name: String = "",
+ /**
+ * Exact type name as a string.
+ *
+ * <p>
+ * For example, {@code "long"} or {@code "java.lang.String"}.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining type-pattern:
+ * <ul>
+ * <li>constant
+ * <li>classNamePattern
+ * <li>instanceOfPattern
+ * </ul>
+ */
+ val name: String = "",
- /**
- * Exact type from a class constant.
- *
- * <p>
- * For example, {@code String.class}.
- *
- * <p>
- * Mutually exclusive with the following other properties defining type-pattern:
- * <ul>
- * <li>name
- * <li>classNamePattern
- * <li>instanceOfPattern
- * </ul>
- */
- val constant: KClass<*> = Object::class,
+ /**
+ * Exact type from a class constant.
+ *
+ * <p>
+ * For example, {@code String.class}.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining type-pattern:
+ * <ul>
+ * <li>name
+ * <li>classNamePattern
+ * <li>instanceOfPattern
+ * </ul>
+ */
+ val constant: KClass<*> = Object::class,
- /**
- * Classes matching the class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining type-pattern:
- * <ul>
- * <li>name
- * <li>constant
- * <li>instanceOfPattern
- * </ul>
- */
- val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Classes matching the class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining type-pattern:
+ * <ul>
+ * <li>name
+ * <li>constant
+ * <li>instanceOfPattern
+ * </ul>
+ */
+ val classNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the instance-of with a pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining type-pattern:
- * <ul>
- * <li>name
- * <li>constant
- * <li>classNamePattern
- * </ul>
- *
- * @return The pattern that defines what instance-of the class must be.
- */
- val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
+ /**
+ * Define the instance-of with a pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining type-pattern:
+ * <ul>
+ * <li>name
+ * <li>constant
+ * <li>classNamePattern
+ * </ul>
+ *
+ * @return The pattern that defines what instance-of the class must be.
+ */
+ val instanceOfPattern: InstanceOfPattern = InstanceOfPattern(),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/UsedByNative.kt b/src/keepanno/java/androidx/annotation/keep/UsedByNative.kt
index 5c5ab2c..9c170e0 100644
--- a/src/keepanno/java/androidx/annotation/keep/UsedByNative.kt
+++ b/src/keepanno/java/androidx/annotation/keep/UsedByNative.kt
@@ -48,589 +48,596 @@
*/
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.CLASS,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.CLASS,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class UsedByNative(
- /**
- * Optional description to document the reason for this annotation.
- *
- * @return The descriptive message. Defaults to no description.
- */
- val description: String = "",
+ /**
+ * Optional description to document the reason for this annotation.
+ *
+ * @return The descriptive message. Defaults to no description.
+ */
+ val description: String = "",
- /**
- * Conditions that should be satisfied for the annotation to be in effect.
- *
- * @return The list of preconditions. Defaults to no conditions, thus trivially/unconditionally
- * satisfied.
- */
- val preconditions: Array<KeepCondition> = [],
+ /**
+ * Conditions that should be satisfied for the annotation to be in effect.
+ *
+ * @return The list of preconditions. Defaults to no conditions, thus trivially/unconditionally
+ * satisfied.
+ */
+ val preconditions: Array<KeepCondition> = [],
- /**
- * Additional targets to be kept in addition to the annotated class/members.
- *
- * @return List of additional target consequences. Defaults to no additional target consequences.
- */
- val additionalTargets: Array<KeepTarget> = [],
+ /**
+ * Additional targets to be kept in addition to the annotated class/members.
+ *
+ * @return List of additional target consequences. Defaults to no additional target
+ * consequences.
+ */
+ val additionalTargets: Array<KeepTarget> = [],
- /**
- * Specify the kind of this item pattern.
- *
- * <p>
- * If unspecified the default kind depends on the annotated item.
- *
- * <p>
- * When annotating a class the default kind is:
- * <ul>
- * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined;
- * <li>{@link KeepItemKind#CLASS_AND_METHODS} if method patterns are defined;
- * <li>{@link KeepItemKind#CLASS_AND_FIELDS} if field patterns are defined;
- * <li>{@link KeepItemKind#CLASS_AND_MEMBERS} otherwise.
- * </ul>
- *
- * <p>
- * When annotating a method the default kind is: {@link KeepItemKind#ONLY_METHODS}
- *
- * <p>
- * When annotating a field the default kind is: {@link KeepItemKind#ONLY_FIELDS}
- *
- * <p>
- * It is not possible to use {@link KeepItemKind#ONLY_CLASS} if annotating a member.
- *
- * @return The kind for this pattern.
- */
- val kind: KeepItemKind = KeepItemKind.DEFAULT,
+ /**
+ * Specify the kind of this item pattern.
+ *
+ * <p>
+ * If unspecified the default kind depends on the annotated item.
+ *
+ * <p>
+ * When annotating a class the default kind is:
+ * <ul>
+ * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined;
+ * <li>{@link KeepItemKind#CLASS_AND_METHODS} if method patterns are defined;
+ * <li>{@link KeepItemKind#CLASS_AND_FIELDS} if field patterns are defined;
+ * <li>{@link KeepItemKind#CLASS_AND_MEMBERS} otherwise.
+ * </ul>
+ *
+ * <p>
+ * When annotating a method the default kind is: {@link KeepItemKind#ONLY_METHODS}
+ *
+ * <p>
+ * When annotating a field the default kind is: {@link KeepItemKind#ONLY_FIELDS}
+ *
+ * <p>
+ * It is not possible to use {@link KeepItemKind#ONLY_CLASS} if annotating a member.
+ *
+ * @return The kind for this pattern.
+ */
+ val kind: KeepItemKind = KeepItemKind.DEFAULT,
- /**
- * Define the usage constraints of the target.
- *
- * <p>
- * The specified constraints must remain valid for the target.
- *
- * <p>
- * The default constraints depend on the kind of the target. For all targets the default
- * constraints include:
- * <ul>
- * <li>{@link KeepConstraint#LOOKUP}
- * <li>{@link KeepConstraint#NAME}
- * <li>{@link KeepConstraint#VISIBILITY_RELAX}
- * </ul>
- *
- * <p>
- * For classes the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#CLASS_INSTANTIATE}
- * </ul>
- *
- * <p>
- * For methods the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#METHOD_INVOKE}
- * </ul>
- *
- * <p>
- * For fields the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#FIELD_GET}
- * <li>{@link KeepConstraint#FIELD_SET}
- * </ul>
- *
- * <p>
- * Mutually exclusive with the property `constraintAdditions` also defining constraints.
- *
- * @return Usage constraints for the target.
- */
- val constraints: Array<KeepConstraint> = [],
+ /**
+ * Define the usage constraints of the target.
+ *
+ * <p>
+ * The specified constraints must remain valid for the target.
+ *
+ * <p>
+ * The default constraints depend on the kind of the target. For all targets the default
+ * constraints include:
+ * <ul>
+ * <li>{@link KeepConstraint#LOOKUP}
+ * <li>{@link KeepConstraint#NAME}
+ * <li>{@link KeepConstraint#VISIBILITY_RELAX}
+ * </ul>
+ *
+ * <p>
+ * For classes the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#CLASS_INSTANTIATE}
+ * </ul>
+ *
+ * <p>
+ * For methods the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#METHOD_INVOKE}
+ * </ul>
+ *
+ * <p>
+ * For fields the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#FIELD_GET}
+ * <li>{@link KeepConstraint#FIELD_SET}
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with the property `constraintAdditions` also defining constraints.
+ *
+ * @return Usage constraints for the target.
+ */
+ val constraints: Array<KeepConstraint> = [],
- /**
- * Add additional usage constraints of the target.
- *
- * <p>
- * The specified constraints must remain valid for the target in addition to the default
- * constraints.
- *
- * <p>
- * The default constraints are documented in {@link #constraints}
- *
- * <p>
- * Mutually exclusive with the property `constraints` also defining constraints.
- *
- * @return Additional usage constraints for the target.
- */
- val constraintAdditions: Array<KeepConstraint> = [],
+ /**
+ * Add additional usage constraints of the target.
+ *
+ * <p>
+ * The specified constraints must remain valid for the target in addition to the default
+ * constraints.
+ *
+ * <p>
+ * The default constraints are documented in {@link #constraints}
+ *
+ * <p>
+ * Mutually exclusive with the property `constraints` also defining constraints.
+ *
+ * @return Additional usage constraints for the target.
+ */
+ val constraintAdditions: Array<KeepConstraint> = [],
- /**
- * Patterns for annotations that must remain on the item.
- *
- * <p>
- * The annotations matching any of the patterns must remain on the item if the annotation types
- * remain in the program.
- *
- * <p>
- * Note that if the annotation types themselves are unused/removed, then their references on the
- * item will be removed too. If the annotation types themselves are used reflectively then they
- * too need a keep annotation or rule to ensure they remain in the program.
- *
- * <p>
- * By default no annotation patterns are defined and no annotations are required to remain.
- *
- * @return Annotation patterns
- */
- val constrainAnnotations: Array<AnnotationPattern> = [],
+ /**
+ * Patterns for annotations that must remain on the item.
+ *
+ * <p>
+ * The annotations matching any of the patterns must remain on the item if the annotation types
+ * remain in the program.
+ *
+ * <p>
+ * Note that if the annotation types themselves are unused/removed, then their references on the
+ * item will be removed too. If the annotation types themselves are used reflectively then they
+ * too need a keep annotation or rule to ensure they remain in the program.
+ *
+ * <p>
+ * By default no annotation patterns are defined and no annotations are required to remain.
+ *
+ * @return Annotation patterns
+ */
+ val constrainAnnotations: Array<AnnotationPattern> = [],
- /**
- * Define the member-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassConstant
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val memberAnnotatedByClassName: String = "",
+ /**
+ * Define the member-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val memberAnnotatedByClassName: String = "",
- /**
- * Define the member-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val memberAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the member-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val memberAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the member-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val memberAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the member-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val memberAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * @return The member access-flag constraints that must be met.
- */
- val memberAccess: Array<MemberAccessFlags> = [],
+ /**
+ * Define the member-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * @return The member access-flag constraints that must be met.
+ */
+ val memberAccess: Array<MemberAccessFlags> = [],
- /**
- * Define the method-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassConstant
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val methodAnnotatedByClassName: String = "",
+ /**
+ * Define the method-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassConstant
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val methodAnnotatedByClassName: String = "",
- /**
- * Define the method-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val methodAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the method-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val methodAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the method-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val methodAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the method-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val methodAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the method-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any
- * method-access flags.
- *
- * @return The method access-flag constraints that must be met.
- */
- val methodAccess: Array<MethodAccessFlags> = [],
+ /**
+ * Define the method-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * method-access flags.
+ *
+ * @return The method access-flag constraints that must be met.
+ */
+ val methodAccess: Array<MethodAccessFlags> = [],
- /**
- * Define the method-name pattern by an exact method name.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodNamePattern` also defining method-name.
- *
- * @return The exact method name of the method.
- */
- val methodName: String = "",
+ /**
+ * Define the method-name pattern by an exact method name.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodNamePattern` also defining method-name.
+ *
+ * @return The exact method name of the method.
+ */
+ val methodName: String = "",
- /**
- * Define the method-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodName` also defining method-name.
- *
- * @return The string pattern of the method name.
- */
- val methodNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the method-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodName` also defining method-name.
+ *
+ * @return The string pattern of the method name.
+ */
+ val methodNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the method return-type pattern by a fully qualified type or 'void'.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnTypeConstant
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return The qualified type name of the method return type.
- */
- val methodReturnType: String = "",
+ /**
+ * Define the method return-type pattern by a fully qualified type or 'void'.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnTypeConstant
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return The qualified type name of the method return type.
+ */
+ val methodReturnType: String = "",
- /**
- * Define the method return-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return A class constant denoting the type of the method return type.
- */
- val methodReturnTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the method return-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return A class constant denoting the type of the method return type.
+ */
+ val methodReturnTypeConstant: KClass<*> = Object::class,
- /**
- * Define the method return-type pattern by a type pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypeConstant
- * </ul>
- *
- * @return The pattern of the method return type.
- */
- val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the method return-type pattern by a type pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypeConstant
+ * </ul>
+ *
+ * @return The pattern of the method return type.
+ */
+ val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
- /**
- * Define the method parameters pattern by a list of fully qualified types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
- *
- * @return The list of qualified type names of the method parameters.
- */
- val methodParameters: Array<String> = [""],
+ /**
+ * Define the method parameters pattern by a list of fully qualified types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
+ *
+ * @return The list of qualified type names of the method parameters.
+ */
+ val methodParameters: Array<String> = [""],
- /**
- * Define the method parameters pattern by a list of patterns on types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameters` also defining parameters.
- *
- * @return The list of type patterns for the method parameters.
- */
- val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
+ /**
+ * Define the method parameters pattern by a list of patterns on types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameters` also defining parameters.
+ *
+ * @return The list of type patterns for the method parameters.
+ */
+ val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
- /**
- * Define the field-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassConstant
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val fieldAnnotatedByClassName: String = "",
+ /**
+ * Define the field-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassConstant
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val fieldAnnotatedByClassName: String = "",
- /**
- * Define the field-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the field-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the field-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the field-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field-access
- * flags.
- *
- * @return The field access-flag constraints that must be met.
- */
- val fieldAccess: Array<FieldAccessFlags> = [],
+ /**
+ * Define the field-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any
+ * field-access flags.
+ *
+ * @return The field access-flag constraints that must be met.
+ */
+ val fieldAccess: Array<FieldAccessFlags> = [],
- /**
- * Define the field-name pattern by an exact field name.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
- *
- * @return The exact field name of the field.
- */
- val fieldName: String = "",
+ /**
+ * Define the field-name pattern by an exact field name.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
+ *
+ * @return The exact field name of the field.
+ */
+ val fieldName: String = "",
- /**
- * Define the field-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldName` also defining field-name.
- *
- * @return The string pattern of the field name.
- */
- val fieldNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the field-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldName` also defining field-name.
+ *
+ * @return The string pattern of the field name.
+ */
+ val fieldNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the field-type pattern by a fully qualified type.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldTypeConstant
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The qualified type name for the field type.
- */
- val fieldType: String = "",
+ /**
+ * Define the field-type pattern by a fully qualified type.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldTypeConstant
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The qualified type name for the field type.
+ */
+ val fieldType: String = "",
- /**
- * Define the field-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The class constant for the field type.
- */
- val fieldTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The class constant for the field type.
+ */
+ val fieldTypeConstant: KClass<*> = Object::class,
- /**
- * Define the field-type pattern by a pattern on types.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypeConstant
- * </ul>
- *
- * @return The type pattern for the field type.
- */
- val fieldTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the field-type pattern by a pattern on types.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypeConstant
+ * </ul>
+ *
+ * @return The type pattern for the field type.
+ */
+ val fieldTypePattern: TypePattern = TypePattern(name = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/UsedByReflection.kt b/src/keepanno/java/androidx/annotation/keep/UsedByReflection.kt
index 8f4c8db..c617f77 100644
--- a/src/keepanno/java/androidx/annotation/keep/UsedByReflection.kt
+++ b/src/keepanno/java/androidx/annotation/keep/UsedByReflection.kt
@@ -48,589 +48,596 @@
*/
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.CLASS,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.CLASS,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class UsedByReflection(
- /**
- * Optional description to document the reason for this annotation.
- *
- * @return The descriptive message. Defaults to no description.
- */
- val description: String = "",
+ /**
+ * Optional description to document the reason for this annotation.
+ *
+ * @return The descriptive message. Defaults to no description.
+ */
+ val description: String = "",
- /**
- * Conditions that should be satisfied for the annotation to be in effect.
- *
- * @return The list of preconditions. Defaults to no conditions, thus trivially/unconditionally
- * satisfied.
- */
- val preconditions: Array<KeepCondition> = [],
+ /**
+ * Conditions that should be satisfied for the annotation to be in effect.
+ *
+ * @return The list of preconditions. Defaults to no conditions, thus trivially/unconditionally
+ * satisfied.
+ */
+ val preconditions: Array<KeepCondition> = [],
- /**
- * Additional targets to be kept in addition to the annotated class/members.
- *
- * @return List of additional target consequences. Defaults to no additional target consequences.
- */
- val additionalTargets: Array<KeepTarget> = [],
+ /**
+ * Additional targets to be kept in addition to the annotated class/members.
+ *
+ * @return List of additional target consequences. Defaults to no additional target
+ * consequences.
+ */
+ val additionalTargets: Array<KeepTarget> = [],
- /**
- * Specify the kind of this item pattern.
- *
- * <p>
- * If unspecified the default kind depends on the annotated item.
- *
- * <p>
- * When annotating a class the default kind is:
- * <ul>
- * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined;
- * <li>{@link KeepItemKind#CLASS_AND_METHODS} if method patterns are defined;
- * <li>{@link KeepItemKind#CLASS_AND_FIELDS} if field patterns are defined;
- * <li>{@link KeepItemKind#CLASS_AND_MEMBERS} otherwise.
- * </ul>
- *
- * <p>
- * When annotating a method the default kind is: {@link KeepItemKind#ONLY_METHODS}
- *
- * <p>
- * When annotating a field the default kind is: {@link KeepItemKind#ONLY_FIELDS}
- *
- * <p>
- * It is not possible to use {@link KeepItemKind#ONLY_CLASS} if annotating a member.
- *
- * @return The kind for this pattern.
- */
- val kind: KeepItemKind = KeepItemKind.DEFAULT,
+ /**
+ * Specify the kind of this item pattern.
+ *
+ * <p>
+ * If unspecified the default kind depends on the annotated item.
+ *
+ * <p>
+ * When annotating a class the default kind is:
+ * <ul>
+ * <li>{@link KeepItemKind#ONLY_CLASS} if no member patterns are defined;
+ * <li>{@link KeepItemKind#CLASS_AND_METHODS} if method patterns are defined;
+ * <li>{@link KeepItemKind#CLASS_AND_FIELDS} if field patterns are defined;
+ * <li>{@link KeepItemKind#CLASS_AND_MEMBERS} otherwise.
+ * </ul>
+ *
+ * <p>
+ * When annotating a method the default kind is: {@link KeepItemKind#ONLY_METHODS}
+ *
+ * <p>
+ * When annotating a field the default kind is: {@link KeepItemKind#ONLY_FIELDS}
+ *
+ * <p>
+ * It is not possible to use {@link KeepItemKind#ONLY_CLASS} if annotating a member.
+ *
+ * @return The kind for this pattern.
+ */
+ val kind: KeepItemKind = KeepItemKind.DEFAULT,
- /**
- * Define the usage constraints of the target.
- *
- * <p>
- * The specified constraints must remain valid for the target.
- *
- * <p>
- * The default constraints depend on the kind of the target. For all targets the default
- * constraints include:
- * <ul>
- * <li>{@link KeepConstraint#LOOKUP}
- * <li>{@link KeepConstraint#NAME}
- * <li>{@link KeepConstraint#VISIBILITY_RELAX}
- * </ul>
- *
- * <p>
- * For classes the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#CLASS_INSTANTIATE}
- * </ul>
- *
- * <p>
- * For methods the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#METHOD_INVOKE}
- * </ul>
- *
- * <p>
- * For fields the default constraints also include:
- * <ul>
- * <li>{@link KeepConstraint#FIELD_GET}
- * <li>{@link KeepConstraint#FIELD_SET}
- * </ul>
- *
- * <p>
- * Mutually exclusive with the property `constraintAdditions` also defining constraints.
- *
- * @return Usage constraints for the target.
- */
- val constraints: Array<KeepConstraint> = [],
+ /**
+ * Define the usage constraints of the target.
+ *
+ * <p>
+ * The specified constraints must remain valid for the target.
+ *
+ * <p>
+ * The default constraints depend on the kind of the target. For all targets the default
+ * constraints include:
+ * <ul>
+ * <li>{@link KeepConstraint#LOOKUP}
+ * <li>{@link KeepConstraint#NAME}
+ * <li>{@link KeepConstraint#VISIBILITY_RELAX}
+ * </ul>
+ *
+ * <p>
+ * For classes the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#CLASS_INSTANTIATE}
+ * </ul>
+ *
+ * <p>
+ * For methods the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#METHOD_INVOKE}
+ * </ul>
+ *
+ * <p>
+ * For fields the default constraints also include:
+ * <ul>
+ * <li>{@link KeepConstraint#FIELD_GET}
+ * <li>{@link KeepConstraint#FIELD_SET}
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with the property `constraintAdditions` also defining constraints.
+ *
+ * @return Usage constraints for the target.
+ */
+ val constraints: Array<KeepConstraint> = [],
- /**
- * Add additional usage constraints of the target.
- *
- * <p>
- * The specified constraints must remain valid for the target in addition to the default
- * constraints.
- *
- * <p>
- * The default constraints are documented in {@link #constraints}
- *
- * <p>
- * Mutually exclusive with the property `constraints` also defining constraints.
- *
- * @return Additional usage constraints for the target.
- */
- val constraintAdditions: Array<KeepConstraint> = [],
+ /**
+ * Add additional usage constraints of the target.
+ *
+ * <p>
+ * The specified constraints must remain valid for the target in addition to the default
+ * constraints.
+ *
+ * <p>
+ * The default constraints are documented in {@link #constraints}
+ *
+ * <p>
+ * Mutually exclusive with the property `constraints` also defining constraints.
+ *
+ * @return Additional usage constraints for the target.
+ */
+ val constraintAdditions: Array<KeepConstraint> = [],
- /**
- * Patterns for annotations that must remain on the item.
- *
- * <p>
- * The annotations matching any of the patterns must remain on the item if the annotation types
- * remain in the program.
- *
- * <p>
- * Note that if the annotation types themselves are unused/removed, then their references on the
- * item will be removed too. If the annotation types themselves are used reflectively then they
- * too need a keep annotation or rule to ensure they remain in the program.
- *
- * <p>
- * By default no annotation patterns are defined and no annotations are required to remain.
- *
- * @return Annotation patterns
- */
- val constrainAnnotations: Array<AnnotationPattern> = [],
+ /**
+ * Patterns for annotations that must remain on the item.
+ *
+ * <p>
+ * The annotations matching any of the patterns must remain on the item if the annotation types
+ * remain in the program.
+ *
+ * <p>
+ * Note that if the annotation types themselves are unused/removed, then their references on the
+ * item will be removed too. If the annotation types themselves are used reflectively then they
+ * too need a keep annotation or rule to ensure they remain in the program.
+ *
+ * <p>
+ * By default no annotation patterns are defined and no annotations are required to remain.
+ *
+ * @return Annotation patterns
+ */
+ val constrainAnnotations: Array<AnnotationPattern> = [],
- /**
- * Define the member-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassConstant
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val memberAnnotatedByClassName: String = "",
+ /**
+ * Define the member-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassConstant
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val memberAnnotatedByClassName: String = "",
- /**
- * Define the member-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val memberAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the member-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val memberAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the member-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining member-annotated-by:
- * <ul>
- * <li>memberAnnotatedByClassName
- * <li>memberAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * <p>
- * If none are specified the default is to match any member regardless of what the member is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val memberAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the member-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining member-annotated-by:
+ * <ul>
+ * <li>memberAnnotatedByClassName
+ * <li>memberAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * <p>
+ * If none are specified the default is to match any member regardless of what the member is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val memberAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the member-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field and method properties as use restricts the match to both
- * types of members.
- *
- * @return The member access-flag constraints that must be met.
- */
- val memberAccess: Array<MemberAccessFlags> = [],
+ /**
+ * Define the member-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field and method properties as use restricts the match to both
+ * types of members.
+ *
+ * @return The member access-flag constraints that must be met.
+ */
+ val memberAccess: Array<MemberAccessFlags> = [],
- /**
- * Define the method-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassConstant
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val methodAnnotatedByClassName: String = "",
+ /**
+ * Define the method-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassConstant
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val methodAnnotatedByClassName: String = "",
- /**
- * Define the method-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val methodAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the method-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val methodAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the method-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining method-annotated-by:
- * <ul>
- * <li>methodAnnotatedByClassName
- * <li>methodAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none are specified the default is to match any method regardless of what the method is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val methodAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the method-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining method-annotated-by:
+ * <ul>
+ * <li>methodAnnotatedByClassName
+ * <li>methodAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none are specified the default is to match any method regardless of what the method is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val methodAnnotatedByClassNamePattern: ClassNamePattern =
+ ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the method-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any
- * method-access flags.
- *
- * @return The method access-flag constraints that must be met.
- */
- val methodAccess: Array<MethodAccessFlags> = [],
+ /**
+ * Define the method-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * method-access flags.
+ *
+ * @return The method access-flag constraints that must be met.
+ */
+ val methodAccess: Array<MethodAccessFlags> = [],
- /**
- * Define the method-name pattern by an exact method name.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodNamePattern` also defining method-name.
- *
- * @return The exact method name of the method.
- */
- val methodName: String = "",
+ /**
+ * Define the method-name pattern by an exact method name.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodNamePattern` also defining method-name.
+ *
+ * @return The exact method name of the method.
+ */
+ val methodName: String = "",
- /**
- * Define the method-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any method
- * name.
- *
- * <p>
- * Mutually exclusive with the property `methodName` also defining method-name.
- *
- * @return The string pattern of the method name.
- */
- val methodNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the method-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any method
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodName` also defining method-name.
+ *
+ * @return The string pattern of the method name.
+ */
+ val methodNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the method return-type pattern by a fully qualified type or 'void'.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnTypeConstant
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return The qualified type name of the method return type.
- */
- val methodReturnType: String = "",
+ /**
+ * Define the method return-type pattern by a fully qualified type or 'void'.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnTypeConstant
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return The qualified type name of the method return type.
+ */
+ val methodReturnType: String = "",
- /**
- * Define the method return-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypePattern
- * </ul>
- *
- * @return A class constant denoting the type of the method return type.
- */
- val methodReturnTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the method return-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypePattern
+ * </ul>
+ *
+ * @return A class constant denoting the type of the method return type.
+ */
+ val methodReturnTypeConstant: KClass<*> = Object::class,
- /**
- * Define the method return-type pattern by a type pattern.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any return
- * type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining return-type:
- * <ul>
- * <li>methodReturnType
- * <li>methodReturnTypeConstant
- * </ul>
- *
- * @return The pattern of the method return type.
- */
- val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the method return-type pattern by a type pattern.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any return
+ * type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining return-type:
+ * <ul>
+ * <li>methodReturnType
+ * <li>methodReturnTypeConstant
+ * </ul>
+ *
+ * @return The pattern of the method return type.
+ */
+ val methodReturnTypePattern: TypePattern = TypePattern(name = ""),
- /**
- * Define the method parameters pattern by a list of fully qualified types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
- *
- * @return The list of qualified type names of the method parameters.
- */
- val methodParameters: Array<String> = [""],
+ /**
+ * Define the method parameters pattern by a list of fully qualified types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameterTypePatterns` also defining parameters.
+ *
+ * @return The list of qualified type names of the method parameters.
+ */
+ val methodParameters: Array<String> = [""],
- /**
- * Define the method parameters pattern by a list of patterns on types.
- *
- * <p>
- * Mutually exclusive with all field properties.
- *
- * <p>
- * If none, and other properties define this item as a method, the default matches any parameters.
- *
- * <p>
- * Mutually exclusive with the property `methodParameters` also defining parameters.
- *
- * @return The list of type patterns for the method parameters.
- */
- val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
+ /**
+ * Define the method parameters pattern by a list of patterns on types.
+ *
+ * <p>
+ * Mutually exclusive with all field properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a method, the default matches any
+ * parameters.
+ *
+ * <p>
+ * Mutually exclusive with the property `methodParameters` also defining parameters.
+ *
+ * @return The list of type patterns for the method parameters.
+ */
+ val methodParameterTypePatterns: Array<TypePattern> = [TypePattern(name = "")],
- /**
- * Define the field-annotated-by pattern by fully qualified class name.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassConstant
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The qualified class name that defines the annotation.
- */
- val fieldAnnotatedByClassName: String = "",
+ /**
+ * Define the field-annotated-by pattern by fully qualified class name.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassConstant
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The qualified class name that defines the annotation.
+ */
+ val fieldAnnotatedByClassName: String = "",
- /**
- * Define the field-annotated-by pattern by reference to a Class constant.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassNamePattern
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-constant that defines the annotation.
- */
- val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-annotated-by pattern by reference to a Class constant.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassNamePattern
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-constant that defines the annotation.
+ */
+ val fieldAnnotatedByClassConstant: KClass<*> = Object::class,
- /**
- * Define the field-annotated-by pattern by reference to a class-name pattern.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-annotated-by:
- * <ul>
- * <li>fieldAnnotatedByClassName
- * <li>fieldAnnotatedByClassConstant
- * </ul>
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none are specified the default is to match any field regardless of what the field is
- * annotated by.
- *
- * @return The class-name pattern that defines the annotation.
- */
- val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
+ /**
+ * Define the field-annotated-by pattern by reference to a class-name pattern.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-annotated-by:
+ * <ul>
+ * <li>fieldAnnotatedByClassName
+ * <li>fieldAnnotatedByClassConstant
+ * </ul>
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none are specified the default is to match any field regardless of what the field is
+ * annotated by.
+ *
+ * @return The class-name pattern that defines the annotation.
+ */
+ val fieldAnnotatedByClassNamePattern: ClassNamePattern = ClassNamePattern(unqualifiedName = ""),
- /**
- * Define the field-access pattern by matching on access flags.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field-access
- * flags.
- *
- * @return The field access-flag constraints that must be met.
- */
- val fieldAccess: Array<FieldAccessFlags> = [],
+ /**
+ * Define the field-access pattern by matching on access flags.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any
+ * field-access flags.
+ *
+ * @return The field access-flag constraints that must be met.
+ */
+ val fieldAccess: Array<FieldAccessFlags> = [],
- /**
- * Define the field-name pattern by an exact field name.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
- *
- * @return The exact field name of the field.
- */
- val fieldName: String = "",
+ /**
+ * Define the field-name pattern by an exact field name.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldNamePattern` also defining field-name.
+ *
+ * @return The exact field name of the field.
+ */
+ val fieldName: String = "",
- /**
- * Define the field-name pattern by a string pattern.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any field name.
- *
- * <p>
- * Mutually exclusive with the property `fieldName` also defining field-name.
- *
- * @return The string pattern of the field name.
- */
- val fieldNamePattern: StringPattern = StringPattern(exact = ""),
+ /**
+ * Define the field-name pattern by a string pattern.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any field
+ * name.
+ *
+ * <p>
+ * Mutually exclusive with the property `fieldName` also defining field-name.
+ *
+ * @return The string pattern of the field name.
+ */
+ val fieldNamePattern: StringPattern = StringPattern(exact = ""),
- /**
- * Define the field-type pattern by a fully qualified type.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldTypeConstant
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The qualified type name for the field type.
- */
- val fieldType: String = "",
+ /**
+ * Define the field-type pattern by a fully qualified type.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldTypeConstant
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The qualified type name for the field type.
+ */
+ val fieldType: String = "",
- /**
- * Define the field-type pattern by a class constant.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypePattern
- * </ul>
- *
- * @return The class constant for the field type.
- */
- val fieldTypeConstant: KClass<*> = Object::class,
+ /**
+ * Define the field-type pattern by a class constant.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypePattern
+ * </ul>
+ *
+ * @return The class constant for the field type.
+ */
+ val fieldTypeConstant: KClass<*> = Object::class,
- /**
- * Define the field-type pattern by a pattern on types.
- *
- * <p>
- * Mutually exclusive with all method properties.
- *
- * <p>
- * If none, and other properties define this item as a field, the default matches any type.
- *
- * <p>
- * Mutually exclusive with the following other properties defining field-type:
- * <ul>
- * <li>fieldType
- * <li>fieldTypeConstant
- * </ul>
- *
- * @return The type pattern for the field type.
- */
- val fieldTypePattern: TypePattern = TypePattern(name = ""),
+ /**
+ * Define the field-type pattern by a pattern on types.
+ *
+ * <p>
+ * Mutually exclusive with all method properties.
+ *
+ * <p>
+ * If none, and other properties define this item as a field, the default matches any type.
+ *
+ * <p>
+ * Mutually exclusive with the following other properties defining field-type:
+ * <ul>
+ * <li>fieldType
+ * <li>fieldTypeConstant
+ * </ul>
+ *
+ * @return The type pattern for the field type.
+ */
+ val fieldTypePattern: TypePattern = TypePattern(name = ""),
)
diff --git a/src/keepanno/java/androidx/annotation/keep/UsesReflection.kt b/src/keepanno/java/androidx/annotation/keep/UsesReflection.kt
index 021b186..102fe77 100644
--- a/src/keepanno/java/androidx/annotation/keep/UsesReflection.kt
+++ b/src/keepanno/java/androidx/annotation/keep/UsesReflection.kt
@@ -77,31 +77,31 @@
*/
@Retention(AnnotationRetention.BINARY)
@Target(
- AnnotationTarget.CLASS,
- AnnotationTarget.FIELD,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.CONSTRUCTOR,
+ AnnotationTarget.CLASS,
+ AnnotationTarget.FIELD,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.CONSTRUCTOR,
)
public annotation class UsesReflection(
- /**
- * Optional description to document the reason for this annotation.
- *
- * @return The descriptive message. Defaults to no description.
- */
- val description: String = "",
+ /**
+ * Optional description to document the reason for this annotation.
+ *
+ * @return The descriptive message. Defaults to no description.
+ */
+ val description: String = "",
- /**
- * Consequences that must be kept if the annotation is in effect.
- *
- * @return The list of target consequences.
- */
- val value: Array<KeepTarget>,
+ /**
+ * Consequences that must be kept if the annotation is in effect.
+ *
+ * @return The list of target consequences.
+ */
+ val value: Array<KeepTarget>,
- /**
- * Additional preconditions for the annotation to be in effect.
- *
- * @return The list of additional preconditions. Defaults to no additional preconditions.
- */
- val additionalPreconditions: Array<KeepCondition> = [],
+ /**
+ * Additional preconditions for the annotation to be in effect.
+ *
+ * @return The list of additional preconditions. Defaults to no additional preconditions.
+ */
+ val additionalPreconditions: Array<KeepCondition> = [],
)
diff --git a/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java b/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java
index 0bf9bd4..ddaa213 100644
--- a/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java
+++ b/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java
@@ -29,12 +29,17 @@
private static final Path GOOGLE_JAVA_FORMAT_JAR =
GOOGLE_JAVA_FORMAT_DIR.resolve("google-java-format-1.24.0-all-deps.jar");
+ private enum KOTLIN_FORMAT_STYLE {
+ GOOGLE,
+ KOTLINLANG
+ }
+
protected final DexItemFactory factory = new DexItemFactory();
public static String kotlinFormatRawOutput(String rawOutput) throws IOException {
Path temporaryFile = File.createTempFile("output-", ".kt").toPath();
Files.write(temporaryFile, rawOutput.getBytes());
- kotlinFormatRawOutput(temporaryFile);
+ kotlinFormatRawOutput(temporaryFile, KOTLIN_FORMAT_STYLE.KOTLINLANG);
String result = FileUtils.readTextFile(temporaryFile);
temporaryFile.toFile().deleteOnExit();
return result;
@@ -48,30 +53,24 @@
return result;
}
- public static String kotlinFormatRawOutput(Path tempFile) throws IOException {
- // Apply google format.
+ public static void kotlinFormatRawOutput(Path tempFile, KOTLIN_FORMAT_STYLE formatStyle)
+ throws IOException {
ProcessBuilder builder =
new ProcessBuilder(
ImmutableList.of(
getJavaExecutable(),
"-jar",
GOOGLE_KOTLIN_FORMAT_JAR.toString(),
- "--google-style",
+ formatStyle == KOTLIN_FORMAT_STYLE.GOOGLE ? "--google-style" : "--kotlinlang-style",
tempFile.toAbsolutePath().toString()));
String commandString = String.join(" ", builder.command());
System.out.println(commandString);
Process process = builder.start();
ProcessResult result = ToolHelper.drainProcessOutputStreams(process, commandString);
- // Kotlin formatter will write "Done formatting..." to stderr.
+ // Kotlin formatter formats file directly and writes "Done formatting..." to stderr.
if (result.exitCode != 0) {
throw new IllegalStateException(result.toString());
}
- // Fix line separators.
- String content = result.stdout;
- if (!StringUtils.LINE_SEPARATOR.equals("\n")) {
- return content.replace(StringUtils.LINE_SEPARATOR, "\n");
- }
- return content;
}
public static String javaFormatRawOutput(Path tempFile) throws IOException {
diff --git a/tools/update-androidx-keep-annotations.py b/tools/update-androidx-keep-annotations.py
index 91fffa0..29bf464 100755
--- a/tools/update-androidx-keep-annotations.py
+++ b/tools/update-androidx-keep-annotations.py
@@ -11,9 +11,6 @@
KOTLIN_EXTENSION = '.kt'
-# Extension used by androidx KMP libraries for Kotlin files with code
-# targeting the JVM.
-JVM_KOTLIN_EXTENSION = '.jvm.kt'
def parse_options():
@@ -43,7 +40,7 @@
'annotation',
'annotation-keep',
'src',
- 'jvmMain',
+ 'commonMain',
'kotlin',
'androidx',
'annotation',
@@ -61,11 +58,10 @@
print('Unexpected non Kotlin file {filename}.'
.format(filename=os.path.join(root, filename)))
sys.exit(1)
- new_filename = filename[0:len(filename) - len(KOTLIN_EXTENSION)] + JVM_KOTLIN_EXTENSION
shutil.copyfile(
os.path.join(root, filename),
- os.path.join(dest_dir, new_filename))
+ os.path.join(dest_dir, filename))
if __name__ == '__main__':