

####    Verificação do uso correcto do mecanismo de excepções


Nada a assinalar


####    Quebra do encapsulamento


Nada a assinalar


####    Verificação de alguns aspectos de qualidade do código


[WARN] 042/bci/app/work/Livro.java:32:	EmptyControlStatement:	Empty if statement
[WARN] 042/bci/app/work/Livro.java:32:23: A expressão pode ser simplicada. [SimplifyBooleanExpression]
[WARN] 042/bci/app/main/DoSaveFile.java:25:35: A expressão pode ser simplicada. [SimplifyBooleanExpression]
Total de erros:  0


####    Verificação da boa aplicação do mecanismo de herança


Nada a assinalar


####    Verificação de Convenções de Codificação

Nada a assinalar

####   Verificação do processo de serialização

Iniciando a auditoria...
[INFO] 042/bci/core/LibraryManager.java:58 ObjectOutputStream criado no método 'public void saveAs(String filename)' da classe 'LibraryManager'. [CheckSerialization]
[INFO] 042/bci/core/LibraryManager.java:77 ObjectInputStream criado no método 'public void load(String filename)' da classe 'LibraryManager'. [CheckSerialization]
Auditoria completa.

####  Verificação do princípio de desenho aberto/fechado

Iniciando a auditoria...
[WARN] 042/bci/app/work/CategoriaObra.java:6 Possível mau desenho: diferenciação do comportamento com base em comparação de enumerados (expressão 'this' comparada '4' vezes) e não com base no polimorfismo. [OpenClosePrinciple]
[WARN] 042/bci/core/Parser.java:29 Possível mau desenho: diferenciação do comportamento com base em comparação de strings (expressão 'components[ ]' comparada '4' vezes) e não com base no polimorfismo. [OpenClosePrinciple]
Auditoria completa.

####  Verificação de dependência app de core


Nada a assinalar


####  Verificação do uso desnecessário de super


Nada a assinalar


####  Verificação de dependência de core de app

Iniciando a auditoria...
[WARN] 042/bci/core/Library.java:3 import 'bci.app.exception.NoSuchCreatorException' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:4 import 'bci.app.exception.NoSuchUserException' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:5 import 'bci.app.exception.NoSuchWorkException' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:6 import 'bci.app.exception.UserRegistrationFailedException' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:7 import 'bci.app.user.Utente' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:8 import 'bci.app.work.CategoriaObra' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:9 import 'bci.app.work.Criador' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:10 import 'bci.app.work.Dvd' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:11 import 'bci.app.work.Livro' não permitido na classe 'Library'. [POCoreImport]
[WARN] 042/bci/core/Library.java:12 import 'bci.app.work.Obra' não permitido na classe 'Library'. [POCoreImport]
[ERROR] 042/bci/core/Library.java:96 Classe 'NoSuchUserException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:98 instanciação do tipo 'NoSuchUserException' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:110 Classe 'NoSuchWorkException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:112 instanciação do tipo 'NoSuchWorkException' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:124 Classe 'NoSuchCreatorException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:126 instanciação do tipo 'NoSuchCreatorException' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:158 Classe 'UserRegistrationFailedException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:160 instanciação do tipo 'UserRegistrationFailedException' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:163 instanciação do tipo 'UserRegistrationFailedException' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:165 O tipo ('Utente') da variável 'temp' não é permitido em entidades do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:165 instanciação do tipo 'Utente' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:187 O tipo ('Criador') da variável 'temp' não é permitido em entidades do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:187 instanciação do tipo 'Criador' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:205 O tipo ('Dvd') da variável 'temp' não é permitido em entidades do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:205 instanciação do tipo 'Dvd' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:225 O tipo ('Livro') da variável 'temp' não é permitido em entidades do domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:225 instanciação do tipo 'Livro' não permitido em classes da camada de domínio. [POCoreImport]
[ERROR] 042/bci/core/Library.java:227 O tipo ('Criador') da variável 'c' não é permitido em entidades do domínio. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:3 import 'bci.app.exception.NoSuchCreatorException' não permitido na classe 'LibraryManager'. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:4 import 'bci.app.exception.NoSuchUserException' não permitido na classe 'LibraryManager'. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:5 import 'bci.app.exception.NoSuchWorkException' não permitido na classe 'LibraryManager'. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:6 import 'bci.app.exception.UserRegistrationFailedException' não permitido na classe 'LibraryManager'. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:7 import 'bci.app.user.Utente' não permitido na classe 'LibraryManager'. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:8 import 'bci.app.work.Criador' não permitido na classe 'LibraryManager'. [POCoreImport]
[WARN] 042/bci/core/LibraryManager.java:9 import 'bci.app.work.Obra' não permitido na classe 'LibraryManager'. [POCoreImport]
[ERROR] 042/bci/core/LibraryManager.java:108 Classe 'UserRegistrationFailedException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/LibraryManager.java:112 Classe 'NoSuchCreatorException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/LibraryManager.java:116 Classe 'NoSuchWorkException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[ERROR] 042/bci/core/LibraryManager.java:120 Classe 'NoSuchUserException', definida na camada de aplicação, não pode ser indicada na lista de excepções de um método de uma entidade do domínio. [POCoreImport]
[WARN] 042/bci/core/Parser.java:3 import 'bci.app.exception.*' não permitido na classe 'Parser'. [POCoreImport]
[WARN] 042/bci/core/Parser.java:4 import 'bci.app.work.*' não permitido na classe 'Parser'. [POCoreImport]
[ERROR] 042/bci/core/Parser.java:67 O tipo ('Criador') da variável 'creator' não é permitido em entidades do domínio. [POCoreImport]
Auditoria completa.
O Checkstyle terminou com 23 erros.

####  Verificação do uso de membros estáticos

Iniciando a auditoria...
[INFO] 042/bci/core/exception/ImportFileException.java:7 Atributo estático final 'String ERROR_MESSAGE' permitido. [POStaticMember]
[INFO] O número de serialVersionUID atributos estáticos definidos nas várias classes foi '12'. [POStaticMember]
Auditoria completa.

####  Verificação do nível de acesso dos atributos

Iniciando a auditoria...
[ERROR] 042/bci/app/main/DoOpenFile.java:13 O atributo '_formulario', com nível de acesso 'package', deveria ser privado e ter métodos acessores. [POVisibilityModifier]
[ERROR] 042/bci/app/main/DoSaveFile.java:16 O atributo '_formulario', com nível de acesso 'package', deveria ser privado e ter métodos acessores. [POVisibilityModifier]
[ERROR] 042/bci/app/user/DoShowUser.java:13 O atributo '_formulario', com nível de acesso 'package', deveria ser privado e ter métodos acessores. [POVisibilityModifier]
[ERROR] 042/bci/app/work/DoDisplayWork.java:14 O atributo '_formulario', com nível de acesso 'package', deveria ser privado e ter métodos acessores. [POVisibilityModifier]
[ERROR] 042/bci/app/work/DoDisplayWorksByCreator.java:16 O atributo '_formulario', com nível de acesso 'package', deveria ser privado e ter métodos acessores. [POVisibilityModifier]
Auditoria completa.
O Checkstyle terminou com 5 erros.

####  Verificação da necessidade da concretização de hashCode e equals


Nada a assinalar


####  Verificação de membros com o nível protected desnecessário


Nada a assinalar


####  Verificação do mecanismo de herança II: atributos duplicados e métodos que deviam ser abstractos


Nada a assinalar


####  Sumário das classes do core da aplicação

Iniciando a auditoria...
[INFO] Número total de classes definidos no core: 8, dos quais 0 private, 1 package-private, 0 protected e 7 public. [WriteClassStructure]
[INFO] Classes concretas e não excepções definidas no package core da aplicação (4): '[MyParser, LibraryManager, Data, Library]'. [WriteClassStructure]
[INFO] Excepções definidas no package core da aplicação (4): '[ImportFileException, MissingFileAssociationException, UnrecognizedEntryException, UnavailableFileException]'. [WriteClassStructure]
[INFO] Número total de métodos nas classes do core (sem excepções): 36, dos quais 4 private, 16 package-private, 0 protected e 16 public. [WriteClassStructure]
[INFO] Número total de atributos nas classes do core (sem excepções): 11, dos quais 11 private, 0 package-private, 0 protected e 0 public. [WriteClassStructure]
Auditoria completa.

Descrição das estruturas de dados do core do projecto

Iniciando a auditoria...
[INFO] class MyParser (  )

  ###### Atributos ###### 

    private Library _library

  ###### Métodos ###### 

    void parseFile(String filename)
    private void parseLine(String line)
    private void parseUser(String components, String line)
    private void parseDvd(String components, String line)
    private void parseBook(String components, String line)

 [WriteClassStructure]
[INFO] class LibraryManager ( public )

  ###### Atributos ###### 

    private Library _library
    private String _filename

  ###### Métodos ###### 

    public Library getLibrary()
    public String getFileName()
    public void save()
    public void saveAs(String filename)
    public void load(String filename)
    public void importFile(String datafile)
    public void advanceDays(int numero)
    public Utente registerUser(String nome, String email)
    public Criador getCriadorByNome(String nome)
    public Obra getObra(int idObra)
    public Utente getUtente(int idUtente)
    public boolean getAlteracao()
    public Data getCurrentDate()
    public int getIdObra()
    public int getIdUtente()

 [WriteClassStructure]
[INFO] class Data ( public implements Serializable )

  ###### Atributos ###### 

    private int _currentDate

  ###### Métodos ###### 

    public int getCurrentDate()
    void advanceDays(int dias)

 [WriteClassStructure]
[INFO] class Library ( public implements Serializable )

  ###### Atributos ###### 

    private int _idUtente
    private int _idObra
    private Data _dia
    private Map<Integer, Utente> _mapUtentes
    private Map<Integer, Obra> _mapObras
    private Map<String, Criador> _mapCriadores
    private boolean _alteracao

  ###### Métodos ###### 

    void importFile(String filename)
    int getIdUtente()
    int getIdObra()
    Data getCurrentDate()
    boolean getAlteracao()
    Utente getUtente(int idUtente)
    Obra getObra(int idObra)
    Criador getCriadorByNome(String nome)
    void setAlteracao(boolean alteracao)
    void advanceDays(int numero)
    Utente registerUser(String nome, String email)
    Criador registerCreator(String nome)
    Dvd registerDvd(String titulo, Criador criador, int preco, CategoriaObra categoria, String igac, int nCopies)
    Livro registerBook(String titulo, Collection criador, int preco, CategoriaObra categoria, String isbn, int nCopies)

 [WriteClassStructure]
Auditoria completa.
