| 程序包 | 说明 |
|---|---|
| top.xiajibagao.powerfulannotation.annotation |
提供注解对象相关一些工具类与公共类
|
| top.xiajibagao.powerfulannotation.annotation.attribute |
用于
HierarchicalAnnotation的各种注解属性对象 |
| top.xiajibagao.powerfulannotation.synthesis.resolver |
提供用于
AnnotationSynthesizer的注解解析器 |
| 限定符和类型 | 方法和说明 |
|---|---|
AnnotationAttribute |
GenericHierarchicalAnnotation.getAttribute(String attributeName)
获取注解属性
|
AnnotationAttribute |
HierarchicalAnnotation.getAttribute(String attributeName)
获取注解属性
|
| 限定符和类型 | 方法和说明 |
|---|---|
Collection<AnnotationAttribute> |
GenericHierarchicalAnnotation.getAllAttribute()
获取全部的注解射弩了
|
Collection<AnnotationAttribute> |
HierarchicalAnnotation.getAllAttribute()
获取全部的注解射弩了
|
protected Map<String,AnnotationAttribute> |
GenericHierarchicalAnnotation.loadAnnotationAttributes(T annotation)
解析注解对象的所有属性,并将其封装为
CacheableAnnotationAttribute |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
GenericHierarchicalAnnotation.replaceAttribute(String attributeName,
UnaryOperator<AnnotationAttribute> operator)
替换属性值
|
void |
HierarchicalAnnotation.replaceAttribute(String attributeName,
UnaryOperator<AnnotationAttribute> operator)
替换属性值
|
| 限定符和类型 | 接口和说明 |
|---|---|
interface |
WrappedAnnotationAttribute
表示一个被包装过的原始
AnnotationAttribute,
该原始属性存在一个关联属性,该关联属性的值可能会直接替换原始属性的值,
或者基于特定的规则影响到原始属性的值。 |
| 限定符和类型 | 类和说明 |
|---|---|
class |
AbstractWrappedAnnotationAttribute
|
class |
AliasAnnotationAttribute
表示一个作为另一注解属性别名的别名属性,一般与
ForceAliasedAnnotationAttribute或AliasedAnnotationAttribute成对出现 |
class |
AliasedAnnotationAttribute
表示一个具有别名的属性。
|
class |
CacheableAnnotationAttribute
AnnotationAttribute的基本实现,调用CacheableAnnotationAttribute.getValue()后将会缓存返回值 |
class |
FixedValueAnnotationAttribute
总是返回固定值的注解属性
|
class |
ForceAliasedAnnotationAttribute
表示一个被指定了强制别名的注解属性。
|
class |
MirroredAnnotationAttribute
表示存在对应镜像属性的注解属性,当获取值时将根据
RelationType.MIRROR_FOR的规则进行处理 |
| 限定符和类型 | 字段和说明 |
|---|---|
protected AnnotationAttribute |
AbstractWrappedAnnotationAttribute.linked |
protected @NonNull AnnotationAttribute |
AbstractWrappedAnnotationAttribute.original |
| 限定符和类型 | 方法和说明 |
|---|---|
AnnotationAttribute |
WrappedAnnotationAttribute.getLinked()
|
AnnotationAttribute |
AbstractWrappedAnnotationAttribute.getNonWrappedOriginal() |
AnnotationAttribute |
WrappedAnnotationAttribute.getNonWrappedOriginal()
获取最初的被包装的
AnnotationAttribute |
AnnotationAttribute |
WrappedAnnotationAttribute.getOriginal()
获取被包装的
AnnotationAttribute对象,该对象也可能是AnnotationAttribute |
| 限定符和类型 | 方法和说明 |
|---|---|
Collection<AnnotationAttribute> |
AbstractWrappedAnnotationAttribute.getAllLinkedNonWrappedAttributes() |
Collection<AnnotationAttribute> |
WrappedAnnotationAttribute.getAllLinkedNonWrappedAttributes()
遍历以当前实例为根节点的树结构,获取所有未被包装的属性
|
| 构造器和说明 |
|---|
AliasAnnotationAttribute(@NonNull AnnotationAttribute original,
AnnotationAttribute linked) |
AliasAnnotationAttribute(@NonNull AnnotationAttribute original,
AnnotationAttribute linked) |
AliasedAnnotationAttribute(AnnotationAttribute origin,
AnnotationAttribute linked) |
FixedValueAnnotationAttribute(AnnotationAttribute original,
Object value) |
ForceAliasedAnnotationAttribute(AnnotationAttribute origin,
AnnotationAttribute linked) |
MirroredAnnotationAttribute(AnnotationAttribute origin,
AnnotationAttribute linked) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
AbstractDynamicAttributeResolver.checkAttributeType(AnnotationAttribute original,
AnnotationAttribute alias)
校验两个注解属性的返回值类型是否一致
|
protected void |
AbstractDynamicAttributeResolver.checkLinkedAttributeNotNull(AnnotationAttribute original,
AnnotationAttribute linkedAttribute,
Link annotation)
检查
Link指向的注解属性是否存在 |
protected void |
AbstractDynamicAttributeResolver.checkLinkedSelf(AnnotationAttribute original,
AnnotationAttribute linked)
检查
Link指向的注解属性是否就是本身 |
protected Link |
AbstractDynamicAttributeResolver.getAttributeAnnotation(AnnotationAttribute attribute,
RelationType... relationTypes)
从注解属性上获取指定类型的
Link注解 |
protected abstract void |
AbstractDynamicAttributeResolver.processLinkedAttribute(AnnotationSynthesizer synthesizer,
Link annotation,
HierarchicalAnnotation<Annotation> originalAnnotation,
AnnotationAttribute originalAttribute,
HierarchicalAnnotation<Annotation> linkedAnnotation,
AnnotationAttribute linkedAttribute)
对关联的合成注解对象及其关联属性的处理
|
protected void |
AliasAttributeResolver.processLinkedAttribute(AnnotationSynthesizer synthesizer,
Link annotation,
HierarchicalAnnotation<Annotation> originalAnnotation,
AnnotationAttribute originalAttribute,
HierarchicalAnnotation<Annotation> linkedAnnotation,
AnnotationAttribute linkedAttribute)
获取
Link指向的目标注解属性,并根据Link.type()的类型是
RelationType.ALIAS_FOR或RelationType.FORCE_ALIAS_FOR
将目标注解属性包装为AliasedAnnotationAttribute或ForceAliasedAnnotationAttribute,
然后用包装后注解属性在对应的合成注解中替换原始的目标注解属性 |
protected void |
MirrorAttributeResolver.processLinkedAttribute(AnnotationSynthesizer synthesizer,
Link annotation,
HierarchicalAnnotation<Annotation> originalAnnotation,
AnnotationAttribute originalAttribute,
HierarchicalAnnotation<Annotation> linkedAnnotation,
AnnotationAttribute linkedAttribute)
将存在镜像关系的合成注解属性分别包装为
MirroredAnnotationAttribute对象,
并使用包装后MirroredAnnotationAttribute替换在它们对应合成注解实例中的AnnotationAttribute |
Copyright © 2022. All rights reserved.