1 /*
2 * Kuali Coeus, a comprehensive research administration system for higher education.
3 *
4 * Copyright 2005-2015 Kuali, Inc.
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, either version 3 of the
9 * License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 package org.kuali.coeus.s2sgen.api.generate;
20
21 import org.kuali.coeus.propdev.api.core.ProposalDevelopmentDocumentContract;
22 import org.kuali.coeus.propdev.api.s2s.S2sUserAttachedFormFileContract;
23 import org.kuali.coeus.s2sgen.api.core.S2SException;
24
25 /**
26 *
27 * This service allows s2s form generation or form validation.
28 */
29 public interface FormGeneratorService {
30
31
32 /**
33 * This service method executes form validation for a given proposal development document. The proposal development
34 * document cannot be null.
35 *
36 * @param pdDoc the proposal development document. cannot be null.
37 * @return the result of the validation
38 * @throws S2SException if unable to validate
39 * @throws java.lang.IllegalArgumentException if the pdDoc is null
40 */
41 FormValidationResult validateForms(ProposalDevelopmentDocumentContract pdDoc) throws S2SException;
42
43 /**
44 * This service method executes form generation for a given proposal development document. The proposal development
45 * document cannot be null. Note that validation is also executed as well.
46 *
47 * @param pdDoc the proposal development document. cannot be null.
48 * @return the result of the generation.
49 * @throws S2SException if unable to validate
50 * @throws java.lang.IllegalArgumentException if the pdDoc is null
51 */
52 FormGenerationResult generateAndValidateForms(ProposalDevelopmentDocumentContract pdDoc) throws S2SException;
53
54 /**
55 * This service method executes user attach form file validation. The user attached from form file
56 * cannot be null.
57 *
58 * @param s2sUserAttachedFormFile the user attached form file. cannot be null.
59 * @param formName is the formName. cannot be null.
60 * @return the result of the validation
61 * @throws S2SException if unable to validate
62 * @throws java.lang.IllegalArgumentException if the s2sUserAttachedFormFile is null or if the formName is null.
63 */
64
65 FormValidationResult validateUserAttachedFormFile(S2sUserAttachedFormFileContract s2sUserAttachedFormFile,String formName) throws S2SException;
66 }