/*
 * Copyright (c) 1997-2001 Centro de Informática - UFPE
 */

/**
 * Esta classe simula o comportamento de um arquivo do sistema unix.
 */
public class Arquivo extends Registro {

    // O conteudo do Arquivo.
    private String conteudo;


    /**
     * Cria um novo Arquivo, a partir de seu nome e do seu dono.
     *
     * @param nome         Nome do Arquivo.
     * @param proprietario Proprietário do Arquivo.
     * @param conteudo     Conteúdo do arquivo.
     */
    public Arquivo(String nome, Usuario proprietario, String conteudo) {

        super(nome, proprietario);
        this.conteudo = conteudo;
    }

    /**
     * Retorna false informando que o Registro não é um Diretório.
     *
     * @return false.
     */
    public boolean isdir() {
        return false;
    }
    
    /**
     * Retorna o conteúdo do Arquivo.
     *
     * @return O conteúdo do arquivo.
     */
    public String more() {
        return this.conteudo;
    }


    /**
     * Compara um Registro a este arquivo.
     *
     * @return true se são iguais, false se são diferentes.
     */
    public boolean equals(Registro registro) {

        boolean retorno = false;

        if (registro != null && registro.isdir() == false) { // se for arquivo
            if (this.conteudo.equals(((Arquivo) registro).conteudo)
                    && this.getNome().equals(registro.getNome())
                    && this.getProprietario().equals(registro.getProprietario())
                    && this.getPermissao() == registro.getPermissao()) {

                retorno = true;
            }
        }
        return retorno;
    }

}