我在注释中创建一些元数据结构时遇到问题。我们使用注释来定义休眠实体属性的特殊属性,但它可能在任何地方都可用。我想创建代表这些结构的条件:
attribute1 = ...
OR
(attribute2 = ...
AND
attribute3 = ...)
问题是我需要使用这个注释定义一些“树”结构。这是我想要达到的一些设计:
@interface Attribute {
... some attributes ...
}
@interface LogicalExpression {
}
@interface OR extends LogicalExpression {
Attribute[] attributes() default {};
LogicalExpression logicalExpressions() default {};
}
@interface AND extends LogicalExpression {
Attribute[] attributes() default {};
LogicalExpression logicalExpressions() default {};
}
@interface ComposedCondition {
Attribute[] attributes() default {};
LogicalExpression logicalExpressions() default {};
}
我想根据这个例子使用所有这些注释:
public class Table {
@ComposedCondition(logicalExressions = {
@OR(attributes = {@Attribute(... some settings ...)},
logicalExpressions = {
@AND(attributes = {@Attribute(...), @Attribute(...)})
})
}
private String value;
}
我知道以我在上面的注释定义中定义的那种方式继承是不可能的。但是我怎么能认为我的注释和,或者是在一个“家庭”中?