Ajuda para um trabalho de universidade

Java

06/12/2021

Introdução

Considere a necessidade de gestão de documentos no contexto de uma empresa de construção civil. A empresa realiza a submissão de documentos (Document) associados a um projeto (Project). No momento da submissão do documento, é necessário indicar: o nome, data de validade e o tipo do documento (Máquina, Trabalhador ou Infraestrutura).

Enunciado

Partindo do código disponibilizado* (ficheiros Document.java, DocumentType.java e Project.java), o qual não pode ser alterado, implemente o código necessário de modo que seja possível:

▪ Especificar de modo concreto o que é um documento.

▪ Manipular os documentos do projeto, considerando:

▪ O número de documentos do projeto é fixo e só pode ser definido uma única vez (representa o limite máximo de documentos para o projeto).

▪ As operações possíveis sobre os documentos do projeto definem um contrato e permitem:

▪ Adicionar um documento ao projeto. O documento apenas poderá ser inserido se não tiver um tamanho superior a 2 megabytes e se não estiver no formato pdf (extensão .pdf). No caso do documento já existir (identificado através do seu identificador único - id) só deverá permitir se a nova versão do documento for superior às existentes.

• Remover todas as versões de um documento, exceto a versão mais recente.

• Obter os documentos de um determinado tipo (Máquina, Trabalhador ou Infraestrutura).

▪ Imprimir a lista de documentos (apenas a versão mais recente) existentes no projeto.

▪ Testar todo o código implementado.



*Código disponibilizado:

package pt.ipp.estg.fpoo.ma01.projets;

/**
* <h2>
* Escola Superior de Tecnologia e Gestão (ESTG)<br>
* Politécnico do Porto (PP)<br>
* Fundamentos de Programação Orientada a Objetos (FPOO)<br>
* 2021 / 2022<br>
* </h2>
* <p>
* Represents the available document types.
* </p>
* <p>
* Author: ESTG-FPOO-2122
* </p>
*/
public enum DocumentType {

/**
* Machine document type
*/
MACHINE,
/**
* Worker document type
*/
WORKER,
/**
* Infrastructure document type
*/
INFRASTRUCTURE;

/**
* The method returns a string representation of the document type
*
* @param documentType document type to be represented by a string.
* @return a string representation of the document type.
*/
public static String ingredientToString(DocumentType documentType) {
switch (documentType) {
case MACHINE:
return "The document type is Machine";
case WORKER:
return "The document type is Worker";
case INFRASTRUCTURE:
return "The document type is Infrastructure";
default:
return "The document type is unknow";
}
}
}
Kaymon

Kaymon

Curtidas 0
POSTAR