INRIA/spoon

Feature(CtPackage): Implement null object for CtPackage

Aperta

#3705 aperta il 19 nov 2020

 (9 commenti) (0 reazioni) (0 assegnatari)Java (383 fork)github user discovery
featuregood first issuerefactor

Metriche repository

Star
 (1933 stelle)
Metriche merge PR
 (Merge medio 19g 11h) (49 PR mergiate in 30 g)

Descrizione

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

Guida contributor