Gerando código Java a partir do XML no Eclipse
Eu estou trabalhando em um projeto que terá várias classes Java que são muito semelhantes entre si, e que eu gostaria de gerar a partir de arquivos XML. O que eu gostaria de poder fazer é alterar o processo de compilação do Eclipse para fazer algo assim:
Compile o gerador de códigoExecute o gerador de código, convertendo o XML para JavaCompile o resto do projetoEu poderia fazer isso tudo manualmente, mas eu preferiria poder fazer o Eclipse fazer tudo para mim.
Exemplo
Eu quero ser capaz de tomar um arquivo XML de origem que se parece com isso:
<command-list>
<command name="DATE" />
<command name="GROUP">
<capability "READER" />
<argument "groupname" />
</command>
<command name="ARTICLE">
<capability "READER" />
<argument "message-id" optional="true" />
</command>
</command-list>
e me dê algo semelhante ao seguinte (em arquivos separados, conforme apropriado):
public class Date extends Command {
public ResponseCode execute() {
Server srv = getServer();
srv.send("DATE");
return srv.getResponse();
}
}
public class Group extends Command {
public ResponseCode execute() {
Server srv = getServer();
if (srv.hasCapability(Capabilities.READER) == false) {
Log.debug("Attempting non-available capability: READER");
}
String groupname = getArgument("groupname");
if (groupname == null) {
throw new InvalidArgumentException("Require groupname");
}
String command = "GROUP";
if (groupname != null) command += " " + groupname;
srv.send(command);
return srv.getResponse();
}
}
public class Article extends Command {
public ResponseCode execute() {
Server srv = getServer();
if (srv.hasCapability(Capabilities.READER) == false) {
Log.debug("Attempting non-available capability: READER");
}
String messageId = getArgument("messageId");
String command = "ARTICLE";
if (messageId != null) command += " " + messageId;
srv.send(command);
return srv.getResponse();
}
}