001    /*
002     * Copyright 2006-2009 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.kns.bo;
017    
018    import java.util.LinkedHashMap;
019    
020    import javax.persistence.CascadeType;
021    import javax.persistence.Column;
022    import javax.persistence.Entity;
023    import javax.persistence.FetchType;
024    import javax.persistence.Id;
025    import javax.persistence.IdClass;
026    import javax.persistence.JoinColumn;
027    import javax.persistence.JoinColumns;
028    import javax.persistence.ManyToOne;
029    import javax.persistence.OneToOne;
030    import javax.persistence.Table;
031    
032    import org.kuali.rice.kns.util.KNSConstants;
033    
034    /**
035     * 
036     */
037    @IdClass(org.kuali.rice.kns.bo.ParameterId.class)
038    @Entity
039    @Table(name="KRNS_PARM_T")
040    public class Parameter extends PersistableBusinessObjectBase {
041    
042            private static final long serialVersionUID = 4874830226334867797L;
043    
044            @Id
045            @Column(name="NMSPC_CD")
046            private String parameterNamespaceCode;
047    
048            @Id
049            @Column(name="PARM_DTL_TYP_CD")
050            private String parameterDetailTypeCode;
051    
052            @Id
053            @Column(name="PARM_NM")
054            private String parameterName;
055            
056            @Id
057        @Column(name="APPL_NMSPC_CD")
058        private String parameterApplicationNamespaceCode;
059    
060            @Column(name="TXT")
061            private String parameterValue;
062    
063            @Column(name="PARM_DESC_TXT", length=2048)
064            private String parameterDescription;
065    
066            @Column(name="PARM_TYP_CD")
067            private String parameterTypeCode;
068    
069            @Column(name="CONS_CD")
070            private String parameterConstraintCode;
071    
072            
073    
074            @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.PERSIST})
075            @JoinColumn(name="NMSPC_CD", insertable=false, updatable=false)
076            private Namespace parameterNamespace;
077    
078            @OneToOne(fetch=FetchType.LAZY, cascade={CascadeType.PERSIST})
079            @JoinColumn(name="PARM_TYP_CD", insertable=false, updatable=false)
080            private ParameterType parameterType;
081    
082            @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.PERSIST})
083            @JoinColumns({@JoinColumn(name="NMSPC_CD", insertable=false, updatable=false), @JoinColumn(name="PARM_DTL_TYP_CD", insertable=false, updatable=false)})
084            private ParameterDetailType parameterDetailType;
085    
086            public Parameter() {
087                    
088            }
089            
090            public Parameter( String parameterName, String parameterValue, String parameterConstraintCode ) {
091                    this.parameterName = parameterName;
092                    this.parameterValue = parameterValue;
093                    this.parameterConstraintCode = parameterConstraintCode;
094                    this.parameterApplicationNamespaceCode = KNSConstants.DEFAULT_APPLICATION_CODE;
095            }
096            
097            public Parameter( String parameterName, String parameterValue, String parameterConstraintCode, String parameterApplicationNamespaceCode ) {
098            this.parameterName = parameterName;
099            this.parameterValue = parameterValue;
100            this.parameterConstraintCode = parameterConstraintCode;
101            this.parameterApplicationNamespaceCode = parameterApplicationNamespaceCode;
102        }
103            
104            
105            public String getParameterName() {
106                    return parameterName;
107            }
108    
109            public void setParameterName(String parameterName) {
110                    this.parameterName = parameterName;
111            }
112    
113            public String getParameterValue() {
114                    return parameterValue;
115            }
116    
117            public void setParameterValue(String parameterValue) {
118                    this.parameterValue = parameterValue;
119            }
120    
121            public String getParameterDescription() {
122                    return parameterDescription;
123            }
124    
125            public void setParameterDescription(String parameterDescription) {
126                    this.parameterDescription = parameterDescription;
127            }
128    
129            public String getParameterTypeCode() {
130                    return parameterTypeCode;
131            }
132    
133            public void setParameterTypeCode(String parameterTypeCode) {
134                    this.parameterTypeCode = parameterTypeCode;
135            }
136    
137            public String getParameterConstraintCode() {
138                    return parameterConstraintCode;
139            }
140    
141            public void setParameterConstraintCode(String parameterConstraintCode) {
142                    this.parameterConstraintCode = parameterConstraintCode;
143            }
144    
145    
146            /**
147             * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
148             */
149            protected LinkedHashMap toStringMapper() {
150                    LinkedHashMap m = new LinkedHashMap();
151                    m.put( "parameterNamespaceCode", this.parameterNamespaceCode );
152                    m.put( "parameterDetailTypeCode", this.parameterDetailTypeCode );
153                    m.put( "parameterApplicationNamespaceCode", this.parameterApplicationNamespaceCode );
154                    m.put( "parameterName", this.parameterName );
155                    m.put( "parameterValue", this.parameterValue );
156                    m.put( "parameterConstraintCode", this.getParameterConstraintCode() );
157                    return m;
158            }
159    
160            public ParameterType getParameterType() {
161                    return parameterType;
162            }
163    
164            public void setParameterType(ParameterType parameterType) {
165                    this.parameterType = parameterType;
166            }
167    
168            public String getParameterNamespaceCode() {
169                    return parameterNamespaceCode;
170            }
171    
172            public void setParameterNamespaceCode(String parameterNamespaceCode) {
173                    this.parameterNamespaceCode = parameterNamespaceCode;
174            }
175    
176            public String getParameterDetailTypeCode() {
177                    return parameterDetailTypeCode;
178            }
179    
180            public void setParameterDetailTypeCode(String parameterDetailTypeCode) {
181                    this.parameterDetailTypeCode = parameterDetailTypeCode;
182            }
183    
184            public Namespace getParameterNamespace() {
185                    return parameterNamespace;
186            }
187    
188            public void setParameterNamespace(Namespace parameterNamespace) {
189                    this.parameterNamespace = parameterNamespace;
190            }
191    
192            public ParameterDetailType getParameterDetailType() {
193                    return parameterDetailType;
194            }
195    
196            public void setParameterDetailType(ParameterDetailType parameterDetailType) {
197                    this.parameterDetailType = parameterDetailType;
198            }
199    
200        public String getParameterApplicationNamespaceCode() {
201            return this.parameterApplicationNamespaceCode;
202        }
203    
204        public void setParameterApplicationNamespaceCode(String parameterApplicationNamespaceCode) {
205            this.parameterApplicationNamespaceCode = parameterApplicationNamespaceCode;
206        }
207    
208    }
209