INFO7052-CI1061-CI092 trabalho 1

Implementação de um gerador de código de arquivos JSON

Arquivos JSON são amplamente utilizados em várias aplicações. Uma aplicação possível é para definição de modelos de dados aninhados, isto é, que possuem uma estrutura formada por elementos, e estes elementos possuem propriedades ou sub-elementos, e assim sucessivamente.

Neste trabalho, os arquivos JSON serão utilizados para definição de modelos de dados e este modelo será utilizado para a geração de código Java.

Considere o exemplo abaixo escrito em JSON:

{
  "Aluno": [
    {
      "nome": "José",
      "cpf": "12341234",
      "telefone": "9999999",
      "Turma": [
        {
          "codigo": "CI1061",
          "nome": "Técnicas em modelagem"
        },
        {
          "codigo": "CI1057",
          "nome": "Algoritmos 3"
        }
      ]
    },
    {
      "nome": "Carlos",
      "cpf": "123456",
      "telefone": "8888888",
      "Turma": [
        {
          "codigo": "CI092",
          "nome": "Técnicas em modelagem"
        },
        {
          "codigo": "CI1056",
          "nome": "Algoritmos 2"
        }
      ]
    }
  ]
}

O JSON acima deverá ser utilizado para geração das classes java correspondentes. Um exemplo de código gerado pode ser mostrado abaixo:

class Aluno {
    String nome;
    String cpf;
    String telefone;
    ArrayList<Turma> turmas;
}
class Turma {
    String codigo;
    String nome;
}

class Programa { public static void main (String args[]){ }
}
 

ENTRADA:
O programa receberá um arquivo .json com estrutura semelhante a descrita no exemplo. Não será necessário processar a especificação completa do formato JSON, apenas o subconjunto descrito acima.

SAIDA:
O programa irá gerar um arquivo .java com um conjunto de classes correspondentes. O arquivo deve ser funcional, isto é, ao ser compilado e executado não poderá apresentar erros.
A compilação e execução serão feitas com os seguinte comandos:

javac *.java
java Programa
ENTREGA

Deverá ser entregue um conjunto de arquivos fones com a implementação do gerador do código. Todas as classes (fontes) devem estar em uma mesma pasta e compactadas em um arquivo (tar.gz ou zip). Trabalhos sem os fontes não serão considerados. Os trabalhos deverão compilar e rodar facilmente nos servidores do Departamento de Informática. Deverá ser entregue um relatório explicando as escolhas de tecnologia e principais escolhas de implementação.

MODO DE ENTREGA : enviar o código por email para marcos.ddf _at_ inf.ufpr.br (até as 24h da data final). Cada dia de atraso serão descontados 10 pontos da nota.


No corpo do email, colocar o nome e GRR do aluno. No assunto, preencher com “Entrega trabalho 092”. O trabalho pode ser feito em duplas.