INRIA/spoon

Feature(CtPackage): Implement null object for CtPackage

Aberta

#3.705 aberto em 19 de nov. de 2020

 (9 comentários) (0 reação) (0 responsável)Java (383 forks)github user discovery
featuregood first issuerefactor

Métricas do repositório

Stars
 (1.933 estrelas)
Métricas de merge de PR
 (Mesclagem média 19d 11h) (49 fundiu PRs em 30d)

Description

Problem

Sometimes code elements have no package and getPackage return nulls. This introduces null checks and surprises for new developers. https://github.com/INRIA/spoon/commit/84c84e16163ff18611f82c69d5246d642e3fed86 as seen here, package can be null.

Solution

A null object[0],[1] could improve code quality. A comparable implementation is NoSourcePosition. NoSourcePosition removed all null checks for positions and improves the code quality.

Your task

Design a null object and refactor old code. Find a solution for getSimpleName() as the empty String is reserved for default package. The PR should include:

  • Design a null object for CtPackage
  • Improve already existing test code and remove unnecessary null checks

It's a good starter issue, feel free to give it a try and ping if you need help for some design decisions.

Literatur/Links

[0] https://en.wikipedia.org/wiki/Null_object_pattern [1] https://www.baeldung.com/java-null-object-pattern

Guia do colaborador