Page MenuHomePhabricator

[Task] Make FormDiffer/FormPatcher implement EntityDifferStrategy/EntityPatcherStrategy
Closed, ResolvedPublic

Description

Both EntityDifferStrategy and EntityPatcherStrategy are (luckily) not abstract, but only interfaces. What I see needs to be done is:

  • Make FormPatcher implement EntityPatcherStrategy.
    • This should be trivial, basically renaming an existing method.
    • Properly test all patcher methods.
  • Make FormDiffer implement EntityDifferStrategy.
    • Coming up with proper implementations for getConstructionDiff/getDestructionDiff might get a little tricky. Note that an "empty Form" should not contain a representation, otherwise the diff will not properly show the initial representation. The current implementation does not allow to construct a Form with no representation, but allows to remove all.
    • Properly test all differ methods.

Draft code is already at https://gerrit.wikimedia.org/r/394072.