001/**
002 * Copyright 2005-2016 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 */
016package org.kuali.rice.kcb.bo;
017
018
019import javax.persistence.Column;
020import javax.persistence.Entity;
021import javax.persistence.Id;
022import javax.persistence.Table;
023import javax.persistence.Version;
024
025import org.apache.commons.lang.builder.ToStringBuilder;
026
027/**
028 * This class represents a recipient preferences in the system.  This is a generic Key/Value structure
029 * that is used by the system to store preferences that the user has set up. This will be 
030 * used by the tickler plugins which will need a generic and dynamic structure for user specific settings.
031 * @author Kuali Rice Team (rice.collab@kuali.org)
032 */
033@Entity
034@Table(name="KREN_RECIP_PREFS_T")
035public class RecipientPreference {
036
037        /**
038     * Field names for queries
039     */
040    public static final String RECIPIENT_FIELD = "recipientId";
041    public static final String PROPERTY_FIELD = "property";
042    
043        @Id
044        @Column(name="RECIP_PREFS_ID")
045        private Long id;
046        @Column(name="RECIP_ID", nullable=false)
047        private String recipientId;
048        @Column(name="PROP", nullable=false)
049        private String property;
050        @Column(name="VAL", nullable=true)
051        private String value;
052
053    /**
054     * Lock column for OJB optimistic locking
055     */
056    @Version
057        @Column(name="VER_NBR")
058        private Integer lockVerNbr;
059
060    /**
061     * Gets the id attribute. 
062     * @return Returns the id.
063     */
064    public Long getId() {
065        return id;
066    }
067
068    /**
069     * Sets the id attribute value.
070     * @param id The id to set.
071     */
072    public void setId(Long id) {
073        this.id = id;
074    }
075
076    /**
077     * Gets the property attribute. 
078     * @return Returns the property.
079     */
080    public String getProperty() {
081        return property;
082    }
083
084    /**
085     * Sets the property attribute value.
086     * @param property The property to set.
087     */
088    public void setProperty(String property) {
089        this.property = property;
090    }
091
092    /**
093     * Gets the recipientId attribute. 
094     * @return Returns the recipientId.
095     */
096    public String getRecipientId() {
097        return recipientId;
098    }
099
100    /**
101     * Sets the recipientId attribute value.
102     * @param recipientId The recipientId to set.
103     */
104    public void setRecipientId(String recipientId) {
105        this.recipientId = recipientId;
106    }
107
108    /**
109     * Gets the value attribute. 
110     * @return Returns the value.
111     */
112    public String getValue() {
113        return value;
114    }
115
116    /**
117     * Sets the value attribute value.
118     * @param value The value to set.
119     */
120    public void setValue(String value) {
121        this.value = value;
122    }
123
124    /**
125     * Return value of lock column for OJB optimistic locking
126     * @return value of lock column for OJB optimistic locking
127     */
128    public Integer getLockVerNbr() {
129        return lockVerNbr;
130    }
131
132    /**
133     * Set value of lock column for OJB optimistic locking
134     * @param lockVerNbr value of lock column for OJB optimistic locking
135     */
136    public void setLockVerNbr(Integer lockVerNbr) {
137        this.lockVerNbr = lockVerNbr;
138    }
139
140    /**
141     * @see java.lang.Object#clone()
142     */
143//    @Override
144//    public Object clone() throws CloneNotSupportedException {
145//        return super.clone();
146//    }
147
148    /**
149     * @see java.lang.Object#toString()
150     */
151    @Override
152    public String toString() {
153        return new ToStringBuilder(this)
154                       .append("id", id)
155                       .append("recipientId", recipientId)
156                       .append("property", property)
157                       .append("value", value)
158                       .append("lockVerNbr", lockVerNbr)
159                       .toString();
160    }
161}