001    /**
002     * Copyright 2005-2013 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 org.kuali.rice.edl.impl.extract;
017    
018    import javax.persistence.CascadeType;
019    import javax.persistence.Column;
020    import javax.persistence.Entity;
021    import javax.persistence.FetchType;
022    import javax.persistence.GeneratedValue;
023    import javax.persistence.Id;
024    import javax.persistence.JoinColumn;
025    import javax.persistence.ManyToOne;
026    import javax.persistence.Table;
027    import javax.persistence.Version;
028    
029    import org.hibernate.annotations.GenericGenerator;
030    import org.hibernate.annotations.Parameter;
031    import org.kuali.rice.core.framework.persistence.jpa.OrmUtils;
032    import org.kuali.rice.edl.framework.extract.FieldDTO;
033    import org.kuali.rice.krad.service.KRADServiceLocator;
034    
035    /**
036     *
037     *
038     *
039     * @author Kuali Rice Team (rice.collab@kuali.org)
040     *
041     */
042    @Entity
043    @Table(name="KREW_EDL_FLD_DMP_T")
044    //@Sequence(name="KREW_EDL_FLD_DMP_S", property="fieldId")
045    public class Fields {
046    
047            private static final long serialVersionUID = -6136544551121011531L;
048    
049        @Id
050        @GeneratedValue(generator="KREW_EDL_FLD_DMP_S")
051            @GenericGenerator(name="KREW_EDL_FLD_DMP_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={
052                            @Parameter(name="sequence_name",value="KREW_EDL_FLD_DMP_S"),
053                            @Parameter(name="value_column",value="id")
054            })
055            @Column(name="EDL_FIELD_DMP_ID")
056            private Long fieldId;
057        @Column(name="DOC_HDR_ID")
058            private String docId;
059        @Column(name="FLD_NM")
060            private String fieldName;
061        @Column(name="FLD_VAL")
062            private String fieldValue;
063        @Version
064            @Column(name="VER_NBR")
065            private Integer lockVerNbr;
066    
067        @ManyToOne(fetch=FetchType.EAGER, cascade={CascadeType.PERSIST})
068            @JoinColumn(name="DOC_HDR_ID", insertable=false, updatable=false)
069            private Dump dump;
070    
071        //@PrePersist
072        public void beforeInsert(){
073            OrmUtils.populateAutoIncValue(this, KRADServiceLocator.getEntityManagerFactory().createEntityManager());
074        }
075    
076    
077            public Long getFieldId() {
078                    return fieldId;
079            }
080            public String getDocId() {
081                    return docId;
082            }
083            public void setDocId(final String docId) {
084                    this.docId = docId;
085            }
086            public String getFieldValue() {
087                    return fieldValue;
088            }
089            public void setFieldValue(final String fieldValue) {
090                    this.fieldValue = fieldValue;
091            }
092            public String getFiledName() {
093                    return fieldName;
094            }
095            public void setFieldName(final String filedName) {
096                    this.fieldName = filedName;
097            }
098            public Integer getLockVerNbr() {
099                    return lockVerNbr;
100            }
101            public void setLockVerNbr(final Integer lockVerNbr) {
102                    this.lockVerNbr = lockVerNbr;
103            }
104            public Dump getDump() {
105                    return dump;
106            }
107            public void setDump(final Dump dump) {
108                    this.dump = dump;
109            }
110            
111            public static FieldDTO to(Fields field) {
112                    if (field == null) {
113                            return null;
114                    }
115                    FieldDTO fieldDTO = new FieldDTO();
116                    fieldDTO.setDocId(field.getDocId());
117                    fieldDTO.setFieldName(field.getFiledName());
118                    fieldDTO.setFieldValue(field.getFieldValue());
119                    fieldDTO.setLockVerNbr(field.getLockVerNbr());
120                    return fieldDTO;
121            }
122            
123            public static Fields from(FieldDTO fieldDTO, Dump dump) {
124                    if (fieldDTO == null) {
125                            return null;
126                    }
127                    Fields fields = new Fields();
128                    fields.setDump(dump);
129                    fields.setDocId(fieldDTO.getDocId());
130                    fields.setFieldName(fieldDTO.getFiledName());
131                    fields.setFieldValue(fieldDTO.getFieldValue());
132                    fields.setLockVerNbr(fieldDTO.getLockVerNbr());
133                    return fields;
134            }
135    }
136