View Javadoc
1   /**
2    * Copyright 2005-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kew.api.document;
17  
18  import java.util.Map;
19  
20  import org.joda.time.DateTime;
21  
22  /**
23   * Provides read-only access to Document meta-data.
24   */
25  public interface DocumentContract {
26  
27      /**
28       * Retrieve the document id
29       * @return the document id
30       */
31      String getDocumentId();
32  
33      /**
34       * Retrieve the document status
35       * @return the document status
36       */
37      DocumentStatus getStatus();
38  
39      /**
40       * Retrieve the document creation date
41       * @return the document creation date or null
42       */
43      DateTime getDateCreated();
44  
45      /**
46       * Retrieve the document last-modified date
47       * @return the document last-modified date or null
48       */
49      DateTime getDateLastModified();
50  
51      /**
52       * Retrieve the document approval date
53       * @return the document approval date or null
54       */
55      DateTime getDateApproved();
56  
57      /**
58       * Retrieve the document finalization date
59       * @return the document finalization date or null
60       */
61      DateTime getDateFinalized();
62  
63      /**
64       * Retrieve the document title
65       * @return the document title
66       */
67      String getTitle();
68  
69      /**
70       * Retrieve the application document id.  The Application Document Id is used to record an application-relevant
71       * id for the workflow document.
72       * @return the application document id
73       */
74      String getApplicationDocumentId();
75  
76      /**
77       * Retrieve the initiator principal id
78       * @return the initiator principal id
79       */
80      String getInitiatorPrincipalId();
81  
82      /**
83       * Retrieve the router principal id
84       * @return the router principal id
85       */
86      String getRoutedByPrincipalId();
87  
88      /**
89       * Retrieve the name of the type of this document
90       * @return the name of the type of this document
91       */
92      String getDocumentTypeName();
93  
94      /**
95       * Retrieve the id of the type of this document
96       * @return the id of the type of this document
97       */
98      String getDocumentTypeId();
99  
100     /**
101      * Retrieve the document handler url
102      * @return the document handler url
103      */
104     String getDocumentHandlerUrl();
105 
106     /**
107      * Retrieve the application document status. The Application Document Status is used
108      * to track document/applicaiton specific statuses
109      * @return the application document status
110      */
111     String getApplicationDocumentStatus();
112 
113     /**
114      * Retrieve the last application document status transition date.  The Application Document Status date is
115      * the date the application document status last transitioned.
116      * @return the application document status date
117      */
118     DateTime getApplicationDocumentStatusDate();
119 
120     /**
121      * Retrieve the currently defined internal workflow engine variables for the document
122      * NOTE: use of workflow engine variables is an advanced technique requiring specific crafting of the
123      * workflow document routing; these variables will not be useful for the majority of workflow use cases
124      * @return the currently defined workflow engine variables for the document
125      */
126     Map<String, String> getVariables();
127 }