/*
 * Copyright (c) 1997-1999 Departamento de Informática - UFPE
 */

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

    // O nome do arquivo.
    private String nome;

    // O tamanho do arquivo em bytes.
    private int tamanho;

    // O dono do arquivo.
    private Usuario owner;

    // O código de proteção do arquivo.
    private int permissao;

    /**
     * Construtor da classe Arquivo.
     * Cria um novo arquivo, a partir de seu nome e do seu dono.
     * 
     * @param nome         Nome do arquivo.
     * @param owner        Dono do arquivo.
     */
    public Arquivo(String nome, Usuario owner){
        this.nome = nome;
        this.owner = owner;
        this.tamanho = 0;
        this.permissao = 3;
    }

    /**
     * Retorna o nome do arquivo.
     * 
     * @return          Nome do arquivo.
     */
    public String getNome() {
        return this.nome;
    }

    /**
     * Retorna o tamanho do arquivo.
     * 
     * @return          Tamanho do arquivo.
     */
    public int getTamanho() {
        return this.tamanho;
    }

    /**
     * Retorna o usuário que possui este arquivo.
     * 
     * @return          Dono do arquivo.
     */
    public Usuario getOwner() {
        return this.owner;
    }

    /**
     * Retorna o código de permissão deste arquivo.
     * 
     * @return          Permissao do arquivo.
     */
    public int getPermissao() {
        return this.permissao;
    }

}
