1 package org.kuali.student.enrollment.lpr.infc;
2
3 import java.util.List;
4
5 import org.kuali.student.r2.common.infc.IdEntity;
6
7 /**
8 * A transaction item represents a request for creating a new relation of a
9 * person (student) to a LUI. The transaction item also handle removing,
10 * updating, swapping out an old LUI for a new LUI for a person.
11 *
12 * @author Kuali Student Team (sambit)
13 */
14
15 public interface LprTransactionItem extends IdEntity {
16
17 /**
18 * The type of the transaction item.
19 *
20 * The types of LPR transaction item are things like ADD, UPDATE, DROP,
21 * and SWAP
22 *
23 * @name Type Key
24 * @required
25 * @readOnly
26 */
27 @Override
28 public String getTypeKey();
29
30 /**
31 * The state of this transaction item
32 *
33 * The states of the LPR transaction item are things like DRAFT, SUBMITTED,
34 * and FAILED. etc
35 *
36 * @name State Key
37 * @required
38 *
39 */
40 @Override
41 public String getStateKey();
42
43 /**
44 * The person id for whom this request is to generate or update the lpr
45 *
46 * @name Person Id
47 * @required
48 */
49 public String getPersonId();
50
51 /**
52 * The identifier of the transaction that contains this transaction item.
53 * @name Transaction Id
54 * @required
55 * @readOnly
56 */
57 public String getTransactionId ();
58
59 /**
60 * The LUI id for a new relation request.
61 *
62 * @name New LUI Id
63 */
64 public String getNewLuiId();
65
66 /**
67 * The existing LUI id for an existing relation remove or change requests.
68 *
69 * @Existing LUI Id
70 */
71 public String getExistingLuiId();
72
73 /**
74 * Specify the various request (or registration ) options for creating this
75 * relationship.
76 *
77 * @name Request Options
78 */
79 public List<? extends LprTransactionItemRequestOption> getRequestOptions();
80
81 /**
82 * Returns the result for this transaction item once it has been processed.
83 *
84 * @name LPR Transaction Item Result
85 */
86 public LprTransactionItemResult getLprTransactionItemResult();
87
88 /**
89 * The keys of the result values groups to be applied to the LPR
90 * once created.
91 *
92 * For example, setting the grading option to pass/fail or the credits to 3
93 * for a course.
94 *
95 * @name Result Values Group Keys
96 */
97 public List<String> getResultValuesGroupKeys();
98
99 }