https://bugzilla.wikimedia.org/show_bug.cgi?id=28070

--- Comment #4 from Dan Nessett <[email protected]> 2011-03-22 23:57:45 UTC ---
I am investigating the code paths that cause in this bug. The problem occurs in
getParameterFromSettings(), which is a method of the ApiBase class. The
ApiQueryWatchlist class (which implements the RSS feeds for WatchLists) extends
the ApiQueryGeneratorBase class, which extends the ApiQueryBase class, which
extends the ApiBase class. The getParameterFromSettings() method in
ApiQueryWatchlist comes directly through this class hierarchy from ApiBase.

It seems clear that getParameterFromSettings() should be overridden in
ApiQueryWatchlist and the switch case code for 'timestamp' modified to return
the database formated value. However, there is a lot of code in
getParameterFromSettings() that would be duplicated if the whole method is
copied to ApiQueryWatchlist and then modified. This would introduce significant
and unnecessary maintenance burden.

So my guess is to use one of two other possibilities, which are:

+ Pull out the switch statement in getParameterFromSettings() into a separate
protected method. Only this method need be overridden in ApiQueryWatchlist.

+ Add a parameter to getParameterFromSettings() that instructs it not to
convert timestamps into TS_MW format.

The former possibility seems the best from an architectural point of view, but
requires the largest code change. The latter possibility requires the least
amount of change to the code, but is dirtier.

I need some guidance from someone (an MW architect? Does anyone have that title
in this open source project?) about the best way to proceed. Either approach is
fairly easy to implement, but since I do not understand this part of the code
very well, there may be reasons why one or the other approach is best.

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to