Metodo Gerar Backup

Bom Dia amigos.

Estou com uma duvida cruel em java.
Estou fazendo um trabalho que existem 6 classes, nas quais são:
Aluno, Matricula, Professor, Disciplina, Mestre, Doutor.
Já fiz todos metodos get/set, equals,tostring, enfim, o que foi pedido. Só que me deparei com dois topicos no exercicio que não estou conseguindo fazer, é a seguinte:

-> Crie uma classe chamada BD que armazene uma lista sem repetição (HashSet, por exemplo) de Aluno, uma
de Disciplina, uma de Matricula, uma de Professor (que armazenará tanto mestres como doutores).

-> Nessa classe BD, deverá existir um método gerarBackup que irá retornar um StringBuffer com um
cabeçalho contendo a data atual no formato abaixo e o conteúdo textual (gerado pelo método toString) de
todos os objetos de todas as listas. Observe exemplo:

Backup realizado em 5 de outubro de 2009 às 12:04:34
Alunos
1;Carlos Alberto;07/08/89
2;José Marcos;02/01/86
Professores
11111111111;Daniel de Paula;1000.00;Mestre
22222222222;César Couto;1400.00;Doutor
Disciplinas
100;LTP-III;60;22222222222
101;ED-I;80;11111111111
Matriculas
100;2;99
101;1;NULL

Se puderem me ajudar. Agradeço Demais.

Obrigado a todos.

Opa denis.
Mas qual era mesmo a sua dúvida?
O que vc tentou fazer até agora??

Abrçaos

Boa Tarde Berg.

A classe Bd já fiz:

package entidades;

import java.util.ArrayList;
import java.util.Collection;

public class BD {
Collection todosAlunos = new ArrayList();
Collection todasDisciplinas = new ArrayList();
Collection todasMatriculas = new ArrayList();
Collection todosProfessores = new ArrayList();

A minha duvida está em como fazer o metodo gerarBackup, que irá retornar um StringBuffer com um
cabeçalho contendo a data atual no formato abaixo e o conteúdo textual (gerado pelo método toString) de
todos os objetos de todas as listas. Observe exemplo:

Backup realizado em 5 de outubro de 2009 às 12:04:34
Alunos
1;Carlos Alberto;07/08/89
2;José Marcos;02/01/86
Professores
11111111111;Daniel de Paula;1000.00;Mestre
22222222222;César Couto;1400.00;Doutor
Disciplinas
100;LTP-III;60;22222222222
101;ED-I;80;11111111111
Matriculas
100;2;99
101;1;NULL

Estou lendo mais sobre a classe StringBuffer e seu metodo append. que acredito que funcione pegando todos os metodos toString(Sobrescritos) das outras classes, para que gere o resultado acima.

Bem, me parece simples
pelo exemplo, parece que é algo como:

matricula;nome;datadascimento ou titulacao ou outro codigo.
então pra isso, pra vc sobrescrever a o método toString de cada classe

//levando em consideração a criação dos nomes dos atributos
//classe aluno
@Override
pubic String toString(){
   return this.matricula + ";" + this.nome + ";" + this.dataNascimento;
}

//classe professor
@Override
pubic String toString(){
   return this.matricula + ";" + this.nome + ";" + this.titulacao;
}

Daí, qdo vc precisar pegar a lista, pasta vc iterar na na coleção e pegar o toString de cada elemento selecionado.

Espero q seja isto.
Desculpe a demora

Obs.: qdo vc postar código, utilize sempre as anotaçãos code e /code, no início e no fim do código.
abraços