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.kns.datadictionary;
017
018import org.kuali.rice.kns.document.authorization.DocumentAuthorizer;
019import org.kuali.rice.kns.document.authorization.DocumentPresentationController;
020import org.kuali.rice.kns.document.authorization.TransactionalDocumentAuthorizerBase;
021import org.kuali.rice.kns.document.authorization.TransactionalDocumentPresentationControllerBase;
022import org.kuali.rice.kns.rule.PromptBeforeValidation;
023import org.kuali.rice.kns.web.derivedvaluesetter.DerivedValuesSetter;
024import org.kuali.rice.krad.datadictionary.ReferenceDefinition;
025
026import java.util.ArrayList;
027import java.util.List;
028
029/**
030 * @author Kuali Rice Team (rice.collab@kuali.org)
031 */
032@Deprecated
033public class TransactionalDocumentEntry extends org.kuali.rice.krad.datadictionary.TransactionalDocumentEntry implements KNSDocumentEntry {
034
035    protected Class<? extends PromptBeforeValidation> promptBeforeValidationClass;
036    protected Class<? extends DerivedValuesSetter> derivedValuesSetterClass;
037    protected List<String> webScriptFiles = new ArrayList<String>(3);
038    protected List<HeaderNavigation> headerNavigationList = new ArrayList<HeaderNavigation>();
039
040    protected boolean sessionDocument = false;
041
042    public TransactionalDocumentEntry() {
043        super();
044
045    documentAuthorizerClass = TransactionalDocumentAuthorizerBase.class;
046    documentPresentationControllerClass = TransactionalDocumentPresentationControllerBase.class;
047    }
048
049    @Override
050    public List<HeaderNavigation> getHeaderNavigationList() {
051        return headerNavigationList;
052    }
053
054    @Override
055    public List<String> getWebScriptFiles() {
056        return webScriptFiles;
057    }
058
059    /**
060     * @return Returns the preRulesCheckClass.
061     */
062    @Override
063    public Class<? extends PromptBeforeValidation> getPromptBeforeValidationClass() {
064        return promptBeforeValidationClass;
065    }
066
067    /**
068     * The promptBeforeValidationClass element is the full class name of the java
069     * class which determines whether the user should be asked any questions prior to running validation.
070     *
071     * @see KualiDocumentActionBase#promptBeforeValidation(org.apache.struts.action.ActionMapping,
072     *      org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest,
073     *      javax.servlet.http.HttpServletResponse, String)
074     */
075    @Override
076    public void setPromptBeforeValidationClass(Class<? extends PromptBeforeValidation> preRulesCheckClass) {
077        this.promptBeforeValidationClass = preRulesCheckClass;
078    }
079
080    /**
081     * The webScriptFile element defines the name of javascript files
082     * that are necessary for processing the document.  The specified
083     * javascript files will be included in the generated html.
084     */
085    @Override
086    public void setWebScriptFiles(List<String> webScriptFiles) {
087        this.webScriptFiles = webScriptFiles;
088    }
089
090    /**
091     * The headerNavigation element defines a set of additional
092     * tabs which will appear on the document.
093     */
094    @Override
095    public void setHeaderNavigationList(List<HeaderNavigation> headerNavigationList) {
096        this.headerNavigationList = headerNavigationList;
097    }
098
099    @Override
100    public boolean isSessionDocument() {
101        return this.sessionDocument;
102    }
103
104    @Override
105    public void setSessionDocument(boolean sessionDocument) {
106        this.sessionDocument = sessionDocument;
107    }
108
109    /**
110     * @return the derivedValuesSetter
111     */
112    @Override
113    public Class<? extends DerivedValuesSetter> getDerivedValuesSetterClass() {
114        return this.derivedValuesSetterClass;
115    }
116
117    /**
118     * @param derivedValuesSetter the derivedValuesSetter to set
119     */
120    @Override
121    public void setDerivedValuesSetterClass(Class<? extends DerivedValuesSetter> derivedValuesSetter) {
122        this.derivedValuesSetterClass = derivedValuesSetter;
123    }
124
125    /**
126     * Returns the document authorizer class for the document.  Only framework code should be calling this method.
127     * Client devs should use {@link DocumentTypeService#getDocumentAuthorizer(org.kuali.rice.krad.document.Document)}
128     * or
129     * {@link DocumentTypeService#getDocumentAuthorizer(String)}
130     *
131     * @return a document authorizer class
132     */
133    @Override
134    public Class<? extends DocumentAuthorizer> getDocumentAuthorizerClass() {
135        return (Class<? extends DocumentAuthorizer>) super.getDocumentAuthorizerClass();
136    }
137
138    /**
139     * Returns the document presentation controller class for the document.  Only framework code should be calling
140     * this
141     * method.
142     * Client devs should use {@link DocumentTypeService#getDocumentPresentationController(org.kuali.rice.krad.document.Document)}
143     * or
144     * {@link DocumentTypeService#getDocumentPresentationController(String)}
145     *
146     * @return the documentPresentationControllerClass
147     */
148    @Override
149    public Class<? extends DocumentPresentationController> getDocumentPresentationControllerClass() {
150        return (Class<? extends DocumentPresentationController>) super.getDocumentPresentationControllerClass();
151    }
152
153    /**
154     * @see org.kuali.rice.krad.datadictionary.DocumentEntry#completeValidation()
155     */
156    @Override
157    public void completeValidation() {
158        super.completeValidation();
159        for (ReferenceDefinition reference : defaultExistenceChecks) {
160            reference.completeValidation(documentClass, null);
161        }
162    }
163
164    @Override
165    public String toString() {
166        return "TransactionalDocumentEntry for documentType " + getDocumentTypeName();
167    }
168}