Richard Frovarp schrieb:
Does it make sense to provide a usecase with the opportunity to do a test before the generic tests are ran? Something like Cut doesn't need to call getNodesToLock and go through that mess if a live version exists. If we assume that the site will mostly be live, this will make the site tab much quicker. However, it would appear that the first call is to checkPreconditions, which is final for some reason and doesn't call a method that can be overridden until after getNodesToLock.

I see what you mean, and it absolutely makes sense. A dirty workaround might be to do the check in getNodesToLock() and just return an empty array if the check fails.

If we consider the precondition check generally cheaper than getNodesToLock(), we could change the call order in AbstractUsecase.checkPreconditions():

  doCheckPreconditions();
  if (!hasErrors()) {
      Node[] nodes = getNodesToLock();
      if (!canCheckOut(nodes)) {
          addErrorMessage(ERROR_OBJECTS_CHECKED_OUT);
      }
  }

BTW, checkPreconditions() is final to enforce the template method pattern (http://en.wikipedia.org/wiki/Template_method_pattern).

-- Andreas


--
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to