001 /* 002 * Copyright 2007-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.kim.bo.reference.dto; 017 018 import javax.xml.bind.annotation.XmlTransient; 019 020 import org.apache.commons.lang.StringUtils; 021 import org.kuali.rice.kim.bo.reference.KimCode; 022 import org.kuali.rice.kns.bo.KualiCode; 023 024 /** 025 * This is a description of what this class does - jonathan don't forget to fill this in. 026 * 027 * @author Kuali Rice Team (rice.collab@kuali.org) 028 */ 029 public abstract class KimCodeInfoBase implements KimCode { 030 031 private static final long serialVersionUID = 3391418027677414695L; 032 033 protected String code; 034 protected String name; 035 protected boolean active; 036 protected String displaySortCode = ""; 037 038 public KimCodeInfoBase() { 039 super(); 040 active = true; 041 } 042 043 public KimCodeInfoBase(KimCode kimCode) { 044 this(); 045 if ( kimCode != null ) { 046 this.code = (kimCode.getCode() != null) ? kimCode.getCode() : ""; 047 this.name = (kimCode.getName() != null) ? kimCode.getName() : ""; 048 this.displaySortCode = ""; 049 } 050 } 051 052 /** 053 * @return the code 054 */ 055 @XmlTransient 056 public String getCode() { 057 return this.code; 058 } 059 060 /** 061 * @param code the code to set 062 */ 063 public void setCode(String code) { 064 this.code = code; 065 } 066 067 /** 068 * @return the name 069 */ 070 @XmlTransient 071 public String getName() { 072 return this.name; 073 } 074 075 /** 076 * @param name the name to set 077 */ 078 public void setName(String name) { 079 this.name = name; 080 } 081 082 /** 083 * This overridden method ... 084 * 085 * @see org.kuali.core.bo.BusinessObjectBase#toStringMapper() 086 */ 087 @Override 088 public String toString() { 089 return getClass().getSimpleName() + ":" + getCode() + " - " + getName(); 090 } 091 092 /** 093 * @see org.kuali.core.bo.KualiCode#isActive() 094 */ 095 public boolean isActive() { 096 return active; 097 } 098 099 /** 100 * @see org.kuali.core.bo.KualiCode#setActive(boolean) 101 */ 102 public void setActive(boolean active) { 103 this.active = active; 104 } 105 106 /** 107 * Implements equals comparing code to code. 108 * 109 * @see java.lang.Object#equals(java.lang.Object) 110 */ 111 public boolean equals(Object obj) { 112 if (obj instanceof KualiCode) { 113 return StringUtils.equals(this.getCode(), ((KualiCode) obj).getCode()); 114 } 115 return false; 116 } 117 118 /** 119 * Overriding equals requires writing a hashCode method. 120 * 121 * @see java.lang.Object#hashCode() 122 */ 123 public int hashCode() { 124 int hashCode = 0; 125 126 if (getCode() != null) { 127 hashCode = getCode().hashCode(); 128 } 129 130 return hashCode; 131 } 132 133 /** 134 * @return the displaySortCode 135 */ 136 public String getDisplaySortCode() { 137 return this.displaySortCode; 138 } 139 140 /** 141 * @param displaySortCode the displaySortCode to set 142 */ 143 public void setDisplaySortCode(String displaySortCode) { 144 this.displaySortCode = displaySortCode; 145 } 146 147 /** 148 * This overridden method ... 149 * 150 * @see org.kuali.rice.kns.bo.BusinessObject#prepareForWorkflow() 151 */ 152 public void prepareForWorkflow() {} 153 public void refresh() {} 154 }