INRIA/spoon

Feature(CtPackage): Implement null object for CtPackage

Ouverte

#3 705 ouverte le 19 nov. 2020

 (9 commentaires) (0 réaction) (0 personne assignée)Java (383 forks)github user discovery
featuregood first issuerefactor

Métriques du dépôt

Stars
 (1 933 étoiles)
Métriques de merge PR
 (Merge moyen 19j 11h) (49 PRs mergées en 30 j)

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

Guide contributeur