001 /**
002 * Copyright 2005-2012 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.web;
017
018 import org.apache.commons.lang.StringUtils;
019 import org.kuali.rice.core.api.util.ConcreteKeyValue;
020 import org.kuali.rice.core.api.util.KeyValue;
021 import org.kuali.rice.kew.docsearch.SearchableAttributeValue;
022
023
024 /**
025 * A simple bean for storing key/value pairs that can be used for a number of
026 * tasks. Right now it is used to hold information that will be display on a jsp
027 * for drop down boxes.
028 *
029 * @author Kuali Rice Team (rice.collab@kuali.org)
030 */
031 public class KeyValueSort implements KeyValue {
032
033 private static final long serialVersionUID = 3575440091286391804L;
034
035 private String userDisplayValue;
036 private Object sortValue;
037 private Class sortClass;
038 private SearchableAttributeValue searchableAttributeValue;
039 private final ConcreteKeyValue keyValue;
040
041
042 public KeyValueSort() {
043 keyValue = new ConcreteKeyValue();
044 }
045
046 public KeyValueSort(String key, String value) {
047 keyValue = new ConcreteKeyValue(key, value);
048 }
049
050 public KeyValueSort(String key, String value, Object sortValue, SearchableAttributeValue searchableAttributeValue) {
051 this(key,value);
052 this.sortValue = sortValue;
053 this.searchableAttributeValue = searchableAttributeValue;
054 }
055
056 public KeyValueSort(String key, String value, String userDisplayValue, Object sortValue, SearchableAttributeValue searchableAttributeValue) {
057 this(key,value,sortValue,searchableAttributeValue);
058 this.userDisplayValue = userDisplayValue;
059 }
060
061 public KeyValueSort(KeyValueSort kvs) {
062 this(kvs.getKey(),kvs.getValue(),kvs.getUserDisplayValue(),kvs.getSortValue(),kvs.getSearchableAttributeValue());
063 }
064
065 public Object getSortValue() {
066 return sortValue;
067 }
068
069 public void setSortValue(Object sortValue) {
070 this.sortValue = sortValue;
071 this.sortClass = sortValue.getClass();
072 }
073
074 public Class getSortClass() {
075 return sortClass;
076 }
077
078 public SearchableAttributeValue getSearchableAttributeValue() {
079 return searchableAttributeValue;
080 }
081
082 public String getUserDisplayValue() {
083 if (StringUtils.isNotBlank(userDisplayValue)) {
084 return userDisplayValue;
085 }
086 return getValue();
087 }
088
089 @Override
090 public String getKey() {
091 return keyValue.getKey();
092 }
093
094 @Override
095 public String getValue() {
096 return keyValue.getValue();
097 }
098
099 public void setKey(String k) {
100 keyValue.setKey(k);
101 }
102
103 public void setValue(String v) {
104 keyValue.setValue(v);
105 }
106
107 }