001/**
002 * Copyright 2005-2016 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.krad.document;
017
018
019/**
020 * Determines what actions are applicable to the given document, irrespective of user
021 * or other state.  These initial actions are used as inputs for further filtering depending
022 * on context.
023 * @see DocumentAuthorizer
024 * @author Kuali Rice Team (rice.collab@kuali.org)
025 */
026public interface DocumentPresentationController {
027
028    public boolean canInitiate(String documentTypeName);
029
030    public boolean canEdit(Document document);
031
032    public boolean canAnnotate(Document document);
033
034    public boolean canReload(Document document);
035
036    public boolean canClose(Document document);
037
038    public boolean canSave(Document document);
039
040    public boolean canRoute(Document document);
041
042    public boolean canCancel(Document document);
043
044    public boolean canCopy(Document document);
045
046    public boolean canPerformRouteReport(Document document);
047
048    public boolean canAddAdhocRequests(Document document);
049
050    public boolean canBlanketApprove(Document document);
051
052    public boolean canApprove(Document document);
053
054    public boolean canDisapprove(Document document);
055
056    public boolean canSendAdhocRequests(Document document);
057
058    public boolean canSendNoteFyi(Document document);
059
060    public boolean canEditDocumentOverview(Document document);
061
062    public boolean canFyi(Document document);
063
064    public boolean canAcknowledge(Document document);
065    
066    public boolean canComplete(Document document);
067
068    /**
069     * @since 2.1
070     */
071    public boolean canRecall(Document document);
072}