import java.util.*; import java.io.*; /** * Esta classe permite representar o estado de um * diretorio em termos dos seus elementos em um * determinado momento. * * @author * @author */ public class HistDir implements Serializable { // Propriedades particulares (private) da classe aqui: private Date dataRegistro; private Collection membrosDiretorio; /** * Recebe uma String que deve * representar um diretorio. As informacoes sobre * esse diretorio devem ser gravadas em um arquivo no * diretorio corrente. Diferentes invocacoes a build * devem gerar diferentes arquivos de informacao do * estado do diretorio. * * @param dir Nome do diretorio * @throws IllegalArgumentException Argumento nao e um diretorio. */ public HistDir(String dir) throws IllegalArgumentException { } /** * O construtor sem argumentos assume o diretorio corrente * como diretorio a ser registrado. */ public HistDir() { } /** * Recebe o nome de um arquivo que deve * representar o estado de um diretorio previamente * gravado e retornar um objeto HistDir com esse estado. * * @param arqest Arquivo com estado do diretorio. * @return Objeto HistDir com dados sobre o diretorio. * @throws IllegalArgumentException parametro nao corresponde * a um arquivo previamente gravado. */ public static HistDir getState(String arqest) throws IllegalArgumentException { } /** * Permite apresentar dados sobre o estado do diretorio * e seus membros na forma de uma String. * * @return String que descreve estado do diretorio. */ public String toString() { } /** * Como toString(), mas se argumento for true apresenta * os membros em ordem alfabetica; se false, ordem de * apresentacao eh irrelevante. * * @param orden Se true, lista de membros ordenada. * @return String que descreve estado do diretorio. */ public String toString(boolean orden) { } /** * Lista a diferenca entre este objeto e o objeto especificado * no argumento. * * @param estado Objeto HistDir que representa outro objeto * de estado de diretorio. * @return String com a lista de diferencas entre os estados * ou a frase "Estado do diretorio ... nao alterado desde ..." */ public String listChanges(HistDir estado) { } // metodo para teste da classe HistDir public static void main(String[] args) { HistDir corrente = null, passado = null; try { // verificacao e inicializacao dos argumentos switch(args.length) { case 0: corrente = new HistDir(); break; case 2: passado = HistDir.getState(args[1]); case 1: corrente = new HistDir(args[0]); break; default: System.out.println("Forma de uso: java HistDir [diretorio [estado]]"); System.exit(1); } // apresenta estado do diretorio indicado System.out.println(corrente.toString()); System.out.println("Em ordem:"); System.out.println(corrente.toString(true)); // se especificado, compara com passado if (passado != null ) System.out.println(corrente.listChanges(passado)); } catch (Exception e) { e.printStackTrace(); } } }