001 /**
002 * Copyright 2005-2011 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.kew.rule;
017
018 import org.hibernate.annotations.GenericGenerator;
019 import org.hibernate.annotations.Parameter;
020 import org.kuali.rice.core.framework.persistence.jpa.OrmUtils;
021 import org.kuali.rice.kew.api.rule.RuleTemplateOptionContract;
022 import org.kuali.rice.kew.rule.bo.RuleTemplateBo;
023 import org.kuali.rice.kew.service.KEWServiceLocator;
024 import org.kuali.rice.krad.bo.BusinessObjectBase;
025 import org.kuali.rice.krad.service.KRADServiceLocator;
026
027 import javax.persistence.Column;
028 import javax.persistence.Entity;
029 import javax.persistence.FetchType;
030 import javax.persistence.GeneratedValue;
031 import javax.persistence.Id;
032 import javax.persistence.JoinColumn;
033 import javax.persistence.ManyToOne;
034 import javax.persistence.Table;
035 import javax.persistence.Version;
036
037 /**
038 * Defines default values and other preset information for a {@link RuleBaseValues}
039 * which is based off of the associated {@link org.kuali.rice.kew.rule.bo.RuleTemplateBo}.
040 *
041 * @see RuleBaseValues
042 * @see org.kuali.rice.kew.rule.bo.RuleTemplateBo
043 *
044 * @author Kuali Rice Team (rice.collab@kuali.org)
045 */
046 @Entity
047 @Table(name="KREW_RULE_TMPL_OPTN_T")
048 //@Sequence(name="KREW_RULE_TMPL_OPTN_S", property="id")
049 public class RuleTemplateOptionBo extends BusinessObjectBase implements RuleTemplateOptionContract {
050
051 private static final long serialVersionUID = 8913119135197149224L;
052 @Id
053 @GeneratedValue(generator="KREW_RULE_TMPL_OPTN_S")
054 @GenericGenerator(name="KREW_RULE_TMPL_OPTN_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={
055 @Parameter(name="sequence_name",value="KREW_RULE_TMPL_OPTN_S"),
056 @Parameter(name="value_column",value="id")
057 })
058 @Column(name="RULE_TMPL_OPTN_ID")
059 private String id;
060 @Column(name="RULE_TMPL_ID", insertable=false, updatable=false)
061 private String ruleTemplateId;
062 @Column(name="KEY_CD")
063 private String code;
064 @Column(name="VAL")
065 private String value;
066 @Version
067 @Column(name="VER_NBR")
068 private Long versionNumber;
069
070 @ManyToOne(fetch=FetchType.EAGER)
071 @JoinColumn(name="RULE_TMPL_ID")
072 private RuleTemplateBo ruleTemplate;
073
074 public RuleTemplateOptionBo(){}
075
076 public RuleTemplateOptionBo(String key, String value){
077 this.code = key;
078 this.value = value;
079 }
080
081 //@PrePersist
082 public void beforeInsert(){
083 OrmUtils.populateAutoIncValue(this, KEWServiceLocator.getEntityManagerFactory().createEntityManager());
084 }
085 @Override
086 public String getCode() {
087 return code;
088 }
089
090 public void setCode(String code) {
091 this.code = code;
092 }
093 @Override
094 public Long getVersionNumber() {
095 return versionNumber;
096 }
097
098 public void setVersionNumber(Long versionNumber) {
099 this.versionNumber = versionNumber;
100 }
101
102 public RuleTemplateBo getRuleTemplate() {
103 return ruleTemplate;
104 }
105
106 public void setRuleTemplate(RuleTemplateBo ruleTemplate) {
107 this.ruleTemplate = ruleTemplate;
108 }
109 @Override
110 public String getRuleTemplateId() {
111 return ruleTemplateId;
112 }
113
114 public void setRuleTemplateId(String ruleTemplateId) {
115 this.ruleTemplateId = ruleTemplateId;
116 }
117 @Override
118 public String getId() {
119 return id;
120 }
121
122 public void setId(String id) {
123 this.id = id;
124 }
125
126 @Override
127 public String getValue() {
128 return value;
129 }
130
131 public void setValue(String value) {
132 this.value = value;
133 }
134
135 @Override
136 public void refresh() {
137 KRADServiceLocator.getPersistenceService().retrieveNonKeyFields(this);
138 }
139 }
140