001    /*
002     * Copyright 2005-2007 The Kuali Foundation
003     * 
004     * 
005     * Licensed under the Educational Community License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     * 
009     * http://www.opensource.org/licenses/ecl2.php
010     * 
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.kuali.rice.ksb.messaging.bam;
018    
019    import java.io.Serializable;
020    import java.sql.Timestamp;
021    import java.util.ArrayList;
022    import java.util.List;
023    
024    import javax.persistence.Basic;
025    import javax.persistence.CascadeType;
026    import javax.persistence.Column;
027    import javax.persistence.Entity;
028    import javax.persistence.FetchType;
029    import javax.persistence.GeneratedValue;
030    import javax.persistence.Id;
031    import javax.persistence.Lob;
032    import javax.persistence.OneToMany;
033    import javax.persistence.Table;
034    import javax.persistence.Transient;
035    
036    import org.hibernate.annotations.GenericGenerator;
037    import org.hibernate.annotations.Parameter;
038    import org.kuali.rice.core.framework.persistence.jpa.OrmUtils;
039    import org.kuali.rice.ksb.api.messaging.AsynchronousCallback;
040    import org.kuali.rice.ksb.service.KSBServiceLocator;
041    
042    
043    /**
044     * An entry in the BAM representing a service method invocation.
045     *
046     * @author Kuali Rice Team (rice.collab@kuali.org)
047     */
048    @Entity
049    @Table(name="KRSB_BAM_T")
050    //@Sequence(name="KRSB_BAM_S", property="bamId")
051    public class BAMTargetEntry implements Serializable {
052    
053            private static final long serialVersionUID = -8376674801367598316L;
054    
055            @Id
056            @GeneratedValue(generator="KRSB_BAM_S")
057            @GenericGenerator(name="KRSB_BAM_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={
058                            @Parameter(name="sequence_name",value="KRSB_BAM_S"),
059                            @Parameter(name="value_column",value="id")
060            })
061            @Column(name="BAM_ID")
062            private Long bamId;
063            @Column(name="SVC_NM")
064            private String serviceName;
065            @Column(name="MTHD_NM")
066            private String methodName;
067            @Column(name="THRD_NM")
068            private String threadName;
069            @Column(name="CALL_DT")
070            private Timestamp callDate;
071            @Column(name="SVC_URL")
072            private String serviceURL;
073            @Column(name="TGT_TO_STR")
074            private String targetToString;
075            @Column(name="EXCPN_TO_STR")
076            private String exceptionToString;
077            @Lob
078            @Basic(fetch=FetchType.LAZY)
079            @Column(name="EXCPN_MSG", length=4000)
080            private String exceptionMessage;
081            @Column(name="SRVR_IND")
082            private Boolean serverInvocation;
083            @OneToMany(cascade=CascadeType.ALL, mappedBy="bamParamId")
084            private List<BAMParam> bamParams = new ArrayList<BAMParam>();
085            
086            //for async calls not bam
087            @Transient
088            private AsynchronousCallback callback;
089            
090            //@PrePersist
091        public void beforeInsert(){
092            OrmUtils.populateAutoIncValue(this, KSBServiceLocator.getRegistryEntityManagerFactory().createEntityManager());
093        }
094            
095            public void addBamParam(BAMParam bamParam) {
096                    this.bamParams.add(bamParam);
097            }
098            public String getExceptionToString() {
099                    return this.exceptionToString;
100            }
101            public void setExceptionToString(String exceptionToString) {
102                    this.exceptionToString = exceptionToString;
103            }
104            public String getServiceName() {
105                    return this.serviceName;
106            }
107            public void setServiceName(String serviceName) {
108                    this.serviceName = serviceName;
109            }
110            public String getServiceURL() {
111                    return this.serviceURL;
112            }
113            public void setServiceURL(String serviceURL) {
114                    this.serviceURL = serviceURL;
115            }
116            public String getTargetToString() {
117                    return this.targetToString;
118            }
119            public void setTargetToString(String targetToString) {
120                    this.targetToString = targetToString;
121            }
122            public Long getBamId() {
123                    return this.bamId;
124            }
125            public void setBamId(Long bamId) {
126                    this.bamId = bamId;
127            }
128            public String getExceptionMessage() {
129                    return this.exceptionMessage;
130            }
131            public void setExceptionMessage(String exceptionMessage) {
132                    this.exceptionMessage = exceptionMessage;
133            }
134            public Boolean getServerInvocation() {
135                    return this.serverInvocation;
136            }
137            public void setServerInvocation(Boolean clientInvocation) {
138                    this.serverInvocation = clientInvocation;
139            }
140            public Timestamp getCallDate() {
141                    return this.callDate;
142            }
143            public void setCallDate(Timestamp callDate) {
144                    this.callDate = callDate;
145            }
146            public String getMethodName() {
147                    return this.methodName;
148            }
149            public void setMethodName(String methodName) {
150                    this.methodName = methodName;
151            }
152            public String getThreadName() {
153                    return this.threadName;
154            }
155            public void setThreadName(String threadName) {
156                    this.threadName = threadName;
157            }
158            public List<BAMParam> getBamParams() {
159                    return this.bamParams;
160            }
161            public void setBamParams(List<BAMParam> bamParams) {
162                    this.bamParams = bamParams;
163            }
164            public AsynchronousCallback getCallback() {
165                    return this.callback;
166            }
167            public void setCallback(AsynchronousCallback callback) {
168                    this.callback = callback;
169            }
170    }
171