View Javadoc

1   /*
2    * Copyright 2008 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 1.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/ecl1.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.student.common.assembly;
17  
18  import java.util.ArrayList;
19  import java.util.List;
20  
21  
22  /**
23   * A node in the sorted map of disassembled base DTOs. The node provides the
24   * data for the base DTO along with the operation information on the data.
25   * 
26   * The consumer of the map of these nodes is required to process the nodes in
27   * sorted order to guarantee data integrity within the base DTOs.
28   * 
29   * @author Kuali Student Team
30   * 
31   */
32  public class BaseDTOAssemblyNode<E,T> {
33  
34  	public enum NodeOperation {
35  		CREATE, UPDATE, DELETE;
36  	}
37  
38  	protected NodeOperation operation;
39  
40  	protected E businessDTORef;
41  	
42  	protected T nodeData;
43  
44  	
45  	protected BOAssembler<E, T> assembler;
46  	
47  	protected List<BaseDTOAssemblyNode<?,?>> childNodes;
48  
49  	public BaseDTOAssemblyNode(BOAssembler<E, T> assembler) {
50  		super();
51  		this.assembler = assembler;
52  	}
53  
54  	/**
55  	 * @return the nodeData
56  	 */
57  	public T getNodeData() {
58  		return nodeData;
59  	}
60  
61  	/**
62  	 * @param nodeData
63  	 *            the nodeData to set
64  	 */
65  	public void setNodeData(T nodeData) {
66  		this.nodeData = nodeData;
67  	}
68  
69  	/**
70  	 * @return the operation
71  	 */
72  	public NodeOperation getOperation() {
73  		return operation;
74  	}
75  
76  	/**
77  	 * @param operation
78  	 *            the operation to set
79  	 */
80  	public void setOperation(NodeOperation operation) {
81  		this.operation = operation;
82  	}
83  
84  	public List<BaseDTOAssemblyNode<?,?>> getChildNodes() {
85  		if (childNodes == null) {
86  			childNodes = new ArrayList<BaseDTOAssemblyNode<?,?>>();
87  		}
88  		return childNodes;
89  	}
90  
91  	public void setChildNodes(List<BaseDTOAssemblyNode<?,?>> childNodes) {
92  		this.childNodes = childNodes;
93  	}
94  	
95  	/**
96  	 * @return the assembler
97  	 */
98  	public BOAssembler<E, T> getAssembler() {
99  		return assembler;
100 	}
101 
102 	/**
103 	 * @param assembler the assembler to set
104 	 */
105 	public void setAssembler(BOAssembler<E, T> assembler) {
106 		this.assembler = assembler;
107 	}
108 
109 	/**
110 	 * @return the businessDTORef
111 	 */
112 	public E getBusinessDTORef() {
113 		return businessDTORef;
114 	}
115 
116 	/**
117 	 * @param businessDTORef the businessDTORef to set
118 	 */
119 	public void setBusinessDTORef(E businessDTORef) {
120 		this.businessDTORef = businessDTORef;
121 	}
122 	
123 }