-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
Problem
Currently the value node for annotations contains a simple string representation of the values. This makes it hard to parse where annotations are nested. It would be nice to handle annotations recursive to be able to extract the desired information more easy.
Example usage of nested annotations
@Entity
@Table(name="VCUST")
@DiscriminatorValue("VCUST")
@PrimaryKeyJoinColumns({
@PrimaryKeyJoinColumn(name="CUST_ID",referencedColumnName="ID"),
@PrimaryKeyJoinColumn(name="CUST_TYPE",referencedColumnName="TYPE")
})
public class ValuedCustomer extends Customer {
// body
}
Expected Output
In respect to XSD i would not change the value type to mixed content and prefer a more typed way with a new node.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<package name="com.github.markusbernhardt.xmldoclet.simpledata">
<class name="ClassJPA" qualified="com.github.markusbernhardt.xmldoclet.simpledata.ClassJPA" scope="public" abstract="false" error="false" exception="false" externalizable="false" included="true" serializable="false">
<class qualified="java.lang.Object"/>
<constructor name="ClassJPA" signature="()" qualified="com.github.markusbernhardt.xmldoclet.simpledata.ClassJPA" scope="public" final="false" included="true" native="false" synchronized="false" static="false" varArgs="false"/>
<annotation name="Entity" qualified="javax.persistence.Entity"/>
<annotation name="Table" qualified="javax.persistence.Table">
<argument name="name" primitive="false" array="false">
<type qualified="java.lang.String"/>
<value>VCUST</value>
</argument>
</annotation>
<annotation name="DiscriminatorValue" qualified="javax.persistence.DiscriminatorValue">
<argument name="value" primitive="false" array="false">
<type qualified="java.lang.String"/>
<value>VCUST</value>
</argument>
</annotation>
<annotation name="PrimaryKeyJoinColumns" qualified="javax.persistence.PrimaryKeyJoinColumns">
<argument name="value" primitive="false" array="true">
<type qualified="javax.persistence.PrimaryKeyJoinColumn" dimension="[]"/>
<annotation name="PrimaryKeyJoinColumn" qualified="javax.persistence.PrimaryKeyJoinColumn">
<argument name="name" primitive="false" array="false">
<type qualified="java.lang.String"/>
<value>CUST_ID</value>
</argument>
<argument name="referencedColumnName" primitive="false" array="false">
<type qualified="java.lang.String"/>
<value>ID</value>
</argument>
</annotation>
<annotation name="PrimaryKeyJoinColumn" qualified="javax.persistence.PrimaryKeyJoinColumn">
<argument name="name" primitive="false" array="false">
<type qualified="java.lang.String"/>
<value>CUST_TYPE</value>
</argument>
<argument name="referencedColumnName" primitive="false" array="false">
<type qualified="java.lang.String"/>
<value>TYPE</value>
</argument>
</annotation>
</argument>
</annotation>
</class>
</package>
</root>
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels