Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
527 changes: 279 additions & 248 deletions avaliacoes/diario-oficial/parteDois/src/main/java/MyProgram.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,63 @@

import model.enums.TipoAditivo;

/**
* Classe que representa um aditivo contratual, podendo envolver alterações como valor, vigência ou outros tipos.
*
* <p>Um aditivo é utilizado para formalizar modificações em contratos previamente firmados.</p>
*
* <p>Esta classe contém:</p>
* <ul>
* <li>Um identificador único ({@link #id}).</li>
* <li>O tipo de aditivo ({@link #tipoAditivo}), que pode ser valor, vigência ou outro.</li>
* </ul>
*
* @author Roma
*/
public class Aditivo {

/**
* Identificador único do aditivo.
*/
private int id;

/**
* Tipo do aditivo, definido pelo enum {@link TipoAditivo}.
*/
private TipoAditivo tipoAditivo;

/**
* Obtém o tipo do aditivo.
*
* @return o tipo do aditivo
*/
public TipoAditivo getTipoAditivo() {
return tipoAditivo;
}

/**
* Define o tipo do aditivo.
*
* @param tipoAditivo o tipo do aditivo a ser definido
*/
public void setTipoAditivo(TipoAditivo tipoAditivo) {
this.tipoAditivo = tipoAditivo;
}

/**
* Obtém o identificador do aditivo.
*
* @return o identificador do aditivo
*/
public int getId() {
return id;
}

/**
* Define o identificador do aditivo.
*
* @param id o identificador a ser definido
*/
public void setId(int id) {
this.id = id;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,120 @@

import model.enums.TipoBloco;

/**
* Classe que representa um bloco de conteúdo que pode ser texto, imagem ou tabela.
*
* <p>Cada bloco possui um texto associado, um tipo que indica sua natureza e uma ordem para organização.</p>
*
* <p>Construtores disponíveis para criação de blocos com diferentes níveis de informação:</p>
* <ul>
* <li>Construtor padrão que inicializa o texto vazio.</li>
* <li>Construtor que recebe apenas o texto.</li>
* <li>Construtor que recebe texto, tipo e ordem.</li>
* </ul>
*
* <p>Este modelo é útil para estruturar conteúdos dinâmicos e organizados.</p>
*
* @author Roma
*/
public class Bloco {

/**
* Texto associado ao bloco.
*/
private String texto;

/**
* Tipo do bloco, definido pelo enum {@link TipoBloco}.
*/
private TipoBloco tipo;

/**
* Ordem do bloco dentro de uma sequência ou documento.
*/
private int ordem;

/**
* Construtor padrão que inicializa o texto como vazio.
*/
public Bloco() {
this.texto = "";
}

/**
* Construtor que inicializa o bloco com o texto informado.
*
* @param texto texto do bloco
*/
public Bloco(String texto) {
this.texto = texto;
}

/**
* Construtor que inicializa o bloco com texto, tipo e ordem.
*
* @param texto texto do bloco
* @param tipo tipo do bloco, conforme {@link TipoBloco}
* @param ordem ordem do bloco
*/
public Bloco(String texto, TipoBloco tipo, int ordem) {
this.texto = texto;
this.tipo = tipo;
this.ordem = ordem;
}

/**
* Obtém a ordem do bloco.
*
* @return a ordem do bloco
*/
public int getOrdem() {
return ordem;
}

/**
* Define a ordem do bloco.
*
* @param ordem a ordem a ser definida
*/
public void setOrdem(int ordem) {
this.ordem = ordem;
}

/**
* Obtém o tipo do bloco.
*
* @return o tipo do bloco
*/
public TipoBloco getTipo() {
return tipo;
}

/**
* Define o tipo do bloco.
*
* @param tipo o tipo a ser definido, conforme {@link TipoBloco}
*/
public void setTipo(TipoBloco tipo) {
this.tipo = tipo;
}

/**
* Obtém o texto do bloco.
*
* @return o texto do bloco
*/
public String getTexto() {
return texto;
}

/**
* Define o texto do bloco.
*
* @param texto o texto a ser definido
*/
public void setTexto(String texto) {
this.texto = texto;
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,78 @@

import java.util.ArrayList;

/**
* Classe que representa um contrato, que é um tipo específico de publicação.
*
* <p>Esta classe estende {@link Publicacao} e adiciona a funcionalidade de gerenciar uma lista de aditivos contratuais.</p>
*
* <p>Um contrato pode conter:</p>
* <ul>
* <li>Um título principal e um título auxiliar.</li>
* <li>Conteúdo textual.</li>
* <li>Informações sobre o órgão responsável.</li>
* <li>Uma lista de blocos de conteúdo, como textos, imagens e tabelas.</li>
* <li>Uma lista de aditivos associados.</li>
* </ul>
*
* <p>O método {@code imprimirPublicação} está sobrescrito para imprimir o conteúdo dos blocos do contrato.</p>
*
* @author Roma
*/
public class Contrato extends Publicacao {

/**
* Lista de aditivos associados ao contrato.
*/
private ArrayList<Aditivo> aditivos;

/**
* Construtor padrão que inicializa a lista de aditivos vazia.
*/
public Contrato() {
aditivos = new ArrayList<Aditivo>();
}

/**
* Construtor que inicializa o contrato com os dados informados, incluindo a lista de aditivos.
*
* @param tituloPrincipal título principal da publicação
* @param tituloAuxiliar título auxiliar da publicação
* @param conteudo conteúdo textual da publicação
* @param orgao órgão responsável pela publicação
* @param blocos lista de blocos de conteúdo do contrato
* @param aditivos lista de aditivos associados ao contrato
*/
public Contrato(String tituloPrincipal, String tituloAuxiliar, String conteudo, Orgao orgao,
ArrayList<Bloco> blocos, ArrayList<Aditivo> aditivos) {
super(tituloPrincipal, tituloAuxiliar, conteudo, orgao, blocos);
this.aditivos = aditivos;
}

/**
* Obtém a lista de aditivos associados ao contrato.
*
* @return a lista de aditivos
*/
public ArrayList<Aditivo> getAditivos() {
return aditivos;
}

/**
* Define a lista de aditivos associados ao contrato.
*
* @param aditivos a lista de aditivos a ser definida
*/
public void setAditivos(ArrayList<Aditivo> aditivos) {
this.aditivos = aditivos;
}

/**
* Imprime a publicação, exibindo o conteúdo dos blocos do contrato.
*
* <p>Atualmente, apenas blocos do tipo texto são exibidos no console. Os blocos do tipo imagem e tabela
* possuem comentários indicando onde implementar a exibição apropriada.</p>
*/
@Override
public void imprimirPublicação() {
for (Bloco b : this.getBlocos()) {
Expand All @@ -33,10 +83,12 @@ public void setAditivos(ArrayList<Aditivo> aditivos) {
break;
case Imagem:
// Implementar um mecanismo para exibir imagens.
break;
case Tabela:
// Implementar um mecanismo para exibir tabelas.
break;
}
}
}

}
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,42 @@

import java.util.ArrayList;

/**
* Classe que representa uma corrigenda, um tipo de publicação utilizada para corrigir informações anteriores.
*
* <p>Esta classe estende {@link Publicacao} e adiciona um campo específico chamado {@code content} para conteúdo adicional.</p>
*
* <p>O método {@code imprimirPublicação} está sobrescrito para exibir o título principal, título auxiliar e os blocos de conteúdo.</p>
*
* @author Roma
*/
public class Corrigenda extends Publicacao {

/**
* Conteúdo adicional específico da corrigenda.
*/
private String content;

/**
* Construtor que inicializa a corrigenda com os dados informados.
*
* @param tituloPrincipal título principal da publicação
* @param tituloAuxiliar título auxiliar da publicação
* @param conteudo conteúdo textual da publicação
* @param orgao órgão responsável pela publicação
* @param blocos lista de blocos de conteúdo da corrigenda
*/
public Corrigenda(String tituloPrincipal, String tituloAuxiliar, String conteudo, Orgao orgao,
ArrayList<Bloco> blocos) {
super(tituloPrincipal, tituloAuxiliar, conteudo, orgao, blocos);
}

/**
* Imprime a publicação, exibindo título principal, título auxiliar e conteúdo dos blocos.
*
* <p>Atualmente, apenas blocos do tipo texto são exibidos no console. Blocos do tipo imagem e tabela possuem
* comentários indicando onde implementar a exibição adequada.</p>
*/
@Override
public void imprimirPublicação() {
System.out.println(this.getTituloPrincipal());
Expand All @@ -21,18 +49,29 @@ public Corrigenda(String tituloPrincipal, String tituloAuxiliar, String conteudo
break;
case Imagem:
// Implementar um mecanismo para exibir imagens.
break;
case Tabela:
// Implementar um mecanismo para exibir tabelas.
break;
}
}
}

/**
* Obtém o conteúdo adicional da corrigenda.
*
* @return o conteúdo adicional
*/
public String getContent() {
return this.content;
}

/**
* Define o conteúdo adicional da corrigenda.
*
* @param content o conteúdo a ser definido
*/
public void setContent(String content) {
this.content = content;
}

}
Loading