Package wt.vc.wip

Class StandardWorkInProgressService

java.lang.Object
wt.services.StandardManager
wt.vc.wip.StandardWorkInProgressService
All Implemented Interfaces:
Serializable, wt.fc._NetFactor, NetFactor, wt.services.Manager, WorkInProgressService, wt.vc.wip.WorkInProgressServiceSvr

public class StandardWorkInProgressService extends StandardManager implements WorkInProgressService, wt.vc.wip.WorkInProgressServiceSvr, Serializable
Provides the standard implementation of server-side functionality as defined by the WorkInProgressService interface. This class is the one intended to be extended to enhance functionality.

As defined by the standard WIP service's access control rules, since a Workable object is asserted as being Lockable the service relies on the locking service for applicable access control. Additionally, when an object is checked out then neither the original checked out or working copies can be checked out again nor deleted.

Event-based processing is performed on business objects asserted as being Workable during database storing, [preparation for] modifications, and deletions. When a business object is being stored in the database, the WIP service listens to a dispatched event indicating that the store is about to commence and initializes the state of the object to being checked in if and only if its checkout info cookie is null. Since a Workable asserts itself as being Foldered the WIP service listens to a dispatched event indicating that a store on a cabinet has successfully completed and checks if the cabinet exists in the user domain (i.e., a personal cabinet), and if so stores a checkout folder in that cabinet. When a business object is [prepared for] being modified in the database, the WIP service listens to a dispatched event indicating that the modify is about to commence and vetoes it if:

  • The business object is checked in and not owned by the current session's principal, or
  • The business object is checked out to enforce a strong vaulting notion.
Otherwise, the WIP service allows the modification to take place. When a business object is being deleted in the database, the WIP service listens to a dispatched event indicating that a deletion is about to commence and vetoes it if the object is checked out or a working copy of a checked out object.

If the standard implementation is not desired then a custom implementation can extend from WorkInProgressService alongside the standard implementation, and be specified as a property to be used as the default WIP service.

Use the newStandardWorkInProgressService static factory method(s), not the StandardWorkInProgressService constructor, to construct instances of this class. Instances must be constructed using the static factory(s), in order to ensure proper initialization of the instance.



Supported API: true

Extendable: false

See Also: