If you add the rupture-site filter in the GmfComputer (and default it to noop-filter) and add 'realizations' in the 'compute' method (and default it to 1) you would cover cases 1 and 2 with a single class