| 程序包 | 说明 |
|---|---|
| top.xiajibagao.powerfulannotation.synthesis |
提供基于
HierarchicalAnnotation的注解合成相关类及注解 |
| top.xiajibagao.powerfulannotation.synthesis.resolver |
提供用于
AnnotationSynthesizer的注解解析器 |
| 限定符和类型 | 类和说明 |
|---|---|
interface |
AliasFor
为字段指定别名,等同于类型为
RelationType.ALIAS_FOR的Link注解 |
interface |
ForceAliasFor
为字段强制指定别名,等同于类型为
RelationType.FORCE_ALIAS_FOR的Link注解 |
interface |
MirrorFor
令两个字段互为镜像,等同于类型为
RelationType.MIRROR_FOR的Link注解 |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Link |
AbstractDynamicAttributeResolver.getAttributeAnnotation(AnnotationAttribute attribute,
RelationType... relationTypes)
从注解属性上获取指定类型的
Link注解 |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
AbstractDynamicAttributeResolver.checkLinkedAttributeNotNull(AnnotationAttribute original,
AnnotationAttribute linkedAttribute,
Link annotation)
检查
Link指向的注解属性是否存在 |
protected HierarchicalAnnotation<Annotation> |
AbstractDynamicAttributeResolver.getLinkedAnnotation(Link annotation,
AnnotationSynthesizer synthesizer,
Class<? extends Annotation> defaultType)
从合成注解中获取
type()指定的注解对象 |
protected Class<?> |
AbstractDynamicAttributeResolver.getLinkedAnnotationType(Link annotation,
Class<?> defaultType)
|
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指向的目标注解属性,并根据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.