INRIA/spoon

Feature(CtPackage): Implement null object for CtPackage

Offen

#3.705 geöffnet am 19.11.2020

 (9 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Java (383 Forks)github user discovery
featuregood first issuerefactor

Repository-Metriken

Stars
 (1.933 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 19T 11h) (49 gemergte PRs in 30 T)

Beschreibung

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

Contributor Guide