Ajuda para um trabalho de universidade
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";
}
}
}
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
Curtidas 0