001 /* 002 * Copyright 2007-2008 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 */ 016 package edu.sampleu.travel.document; 017 018 import edu.sampleu.travel.bo.TravelAccount; 019 import org.kuali.rice.krad.document.SessionDocument; 020 import org.kuali.rice.krad.document.TransactionalDocumentBase; 021 022 import javax.persistence.*; 023 import java.util.ArrayList; 024 import java.util.List; 025 026 027 @Entity 028 @Table(name="TRV_DOC_2") 029 public class TravelDocument2 extends TransactionalDocumentBase implements SessionDocument { 030 031 @Column(name="traveler") 032 private String traveler; 033 @Column(name="org") 034 private String origin; 035 @Column(name="dest") 036 private String destination; 037 @Column(name="request_trav") 038 private String requestType; 039 @Transient 040 private String accountType; 041 042 @ManyToMany(fetch = FetchType.EAGER) // Do not use cascade here or it will try to update the TravelAccounts 043 @JoinTable(name="TRAV_DOC_2_ACCOUNTS", 044 joinColumns={@JoinColumn(name="fdoc_nbr", referencedColumnName="fdoc_nbr", unique=false)}, // Goes with this class: TravelDocument2 045 inverseJoinColumns={@JoinColumn(name="acct_num", referencedColumnName="acct_num", unique=false)} // Goes with that class: TravelAccount 046 ) 047 private List<TravelAccount> travelAccounts; 048 049 public TravelDocument2() { 050 travelAccounts = new ArrayList<TravelAccount>(); 051 } 052 053 public String getDestination() { 054 return destination; 055 } 056 057 public void setDestination(String destination) { 058 this.destination = destination; 059 } 060 061 public String getOrigin() { 062 return origin; 063 } 064 065 public void setOrigin(String origin) { 066 this.origin = origin; 067 } 068 069 public String getTraveler() { 070 return traveler; 071 } 072 073 public void setTraveler(String traveler) { 074 this.traveler = traveler; 075 } 076 077 public List<TravelAccount> getTravelAccounts() { 078 return travelAccounts; 079 } 080 081 public void setTravelAccounts(List<TravelAccount> travelAccounts) { 082 this.travelAccounts = travelAccounts; 083 } 084 085 public TravelAccount getTravelAccount(int index) { 086 while(travelAccounts.size() - 1 < index) { 087 travelAccounts.add(new TravelAccount()); 088 } 089 return travelAccounts.get(index); 090 } 091 092 public String getRequestType() { 093 return requestType; 094 } 095 096 public void setRequestType(String requestType) { 097 this.requestType = requestType; 098 } 099 100 /** 101 * @param accountType the accountType to set 102 */ 103 public void setAccountType(String accountType) { 104 this.accountType = accountType; 105 } 106 107 /** 108 * @return the accountType 109 */ 110 public String getAccountType() { 111 return accountType; 112 } 113 114 }