Preciso fazer parsing de fontes Java, para pegar as configurações das annotation de entidades JPA.
Um caso particular são as anotações @Column, que podem conter quebra de linha. E quando ocorre a quebra de linha, eu não consigo uma regular expression que me identifique o bloco.
Se você puder pegar os fontes compilados (.class), e carregá-los com Class.forName (a versão com 3 parâmetros, que permite alterar o classloader e também não chamar os blocos de inicialização), acho que é mais fácil obter as anotações.
Tentei usar das duas formas, conforme descrito aqui.
Ambas não funcionaram.
Regex:code(@.\s)+(public|private|protected)(\s+)(\w+)(\s+)(\w+)(\s*;)[/code]
Texto OK:@Id
@Column( name="ID",nullable=false)
private Long id;
Texto não OK:@Id
@Column( name="ID",
nullable=false)
private Long id;
Preciso que funcione com ambos.