It's my last day today. For the last couple of years I've had to work with a CMS (Content Management System) 'product'. One of the features that you'd expect a CMS to provide is some form of workflow, i.e. a business process that passes an item of content through an approval process.
Apparently the 'product' we purchased (which incidentally the choice of which did not include a single developer who would have to use it) has an 'out-of-the-box' workflow solution.
Here it is:
<c:if test="${( ( currentUserCheckedOut == false ) && ( item!=null )) && ( ( ( fn:contains(groupIds,',1,') ) && ( item==null ) ) || ( ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && ( attribute_status == 'Contributor' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && ( attribute_status == 'Contributor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && ( attribute_status == 'Contributor' ) && (keywords_value == 'Rejected') ) ) || ( ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && ( attribute_status == 'Contributor' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && ( attribute_status == 'Contributor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',1,') ) && ( item!=null ) && ( attribute_status == 'Contributor' ) && (keywords_value == 'Rejected') ) ) || ( ( fn:contains(groupIds,',2,') ) && ( item==null ) ) || ( ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'Rejected') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'Rejected') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',2,') ) && ( item!=null ) && ( attribute_status == 'Editor' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( fn:contains(groupIds,',63,') ) && ( item==null ) ) || ( ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && ( attribute_status == 'CorporateEditor' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && ( attribute_status == 'CorporateEditor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && ( attribute_status == 'CorporateEditor' ) && (keywords_value == 'Rejected') ) ) || ( ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && ( attribute_status == 'CorporateEditor' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && ( attribute_status == 'CorporateEditor' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',63,') ) && ( item!=null ) && ( attribute_status == 'CorporateEditor' ) && (keywords_value == 'Rejected') ) ) || ( ( fn:contains(groupIds,',32,') ) && ( item==null ) ) || ( ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'Rejected') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'Rejected') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',32,') ) && ( item!=null ) && ( attribute_status == 'Approver' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( fn:contains(groupIds,',64,') ) && ( item==null ) ) || ( ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'Rejected') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'Rejected') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',64,') ) && ( item!=null ) && ( attribute_status == 'CorporateApprover' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( fn:contains(groupIds,',3,') ) && ( item==null ) ) || ( ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && (attribute_status == 'RFE') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'New') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'Draft') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'AwaitingApproval') ) ) || ( ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'AwaitingApproval') ) || ( ( fn:contains(groupIds,',3,') ) && ( item!=null ) && ( attribute_status == 'Publisher' ) && (keywords_value == 'AwaitingApproval') ) ) )}">
This is a JSP fragment by the way.