001 /* 002 * Copyright 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.kfs.gl.businessobject; 017 018 import java.sql.Date; 019 import java.util.Comparator; 020 import java.util.LinkedHashMap; 021 022 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 023 024 public class OriginEntryGroup extends PersistableBusinessObjectBase { 025 026 private static final String VALID_STRING = "Valid-"; 027 private static final String INVALID_STRING = "Error-"; 028 private static final String PROCESSED_STRING = "Process-"; 029 private static final String NOT_PROCESSED_STRING = "Don't Process-"; 030 private static final String SCRUB_STRING = "Scrub"; 031 private static final String NO_SCRUB_STRING = "Don't Scrub"; 032 033 private Integer id; 034 private Date date; 035 private String sourceCode; 036 private Boolean valid; 037 private Boolean process; 038 private Boolean scrub; 039 040 // This does not normally get populated. It only gets populated if 041 // getAllOriginEntryGroup() is called 042 private Integer rows = new Integer(0); 043 044 private OriginEntrySource source; 045 046 /** 047 * 048 */ 049 public OriginEntryGroup() { 050 super(); 051 } 052 053 protected LinkedHashMap toStringMapper() { 054 LinkedHashMap map = new LinkedHashMap(); 055 map.put("id", id); 056 return map; 057 } 058 059 public String getName() { 060 StringBuffer sb = new StringBuffer(this.getSourceCode()); 061 sb.append(" "); 062 sb.append(source.getName()); 063 sb.append(" ("); 064 sb.append(rows); 065 sb.append(") "); 066 sb.append(this.getId()); 067 sb.append(" "); 068 sb.append(this.getDate().toString()); 069 sb.append(" "); 070 sb.append(valid ? VALID_STRING : INVALID_STRING); 071 sb.append(process ? PROCESSED_STRING : NOT_PROCESSED_STRING); 072 sb.append(scrub ? SCRUB_STRING : NO_SCRUB_STRING); 073 return sb.toString(); 074 } 075 076 public Integer getRows() { 077 return rows; 078 } 079 080 public void setRows(Integer rows) { 081 this.rows = rows; 082 } 083 084 public OriginEntrySource getSource() { 085 return source; 086 } 087 088 public void setSource(OriginEntrySource oes) { 089 source = oes; 090 } 091 092 public Date getDate() { 093 return date; 094 } 095 096 public void setDate(Date date) { 097 this.date = date; 098 } 099 100 public Integer getId() { 101 return id; 102 } 103 104 public void setId(Integer id) { 105 this.id = id; 106 } 107 108 public Boolean getProcess() { 109 return process; 110 } 111 112 public void setProcess(Boolean process) { 113 this.process = process; 114 } 115 116 public Boolean getScrub() { 117 return scrub; 118 } 119 120 public void setScrub(Boolean scrub) { 121 this.scrub = scrub; 122 } 123 124 public String getSourceCode() { 125 return sourceCode; 126 } 127 128 public void setSourceCode(String sourceCode) { 129 this.sourceCode = sourceCode; 130 } 131 132 public Boolean getValid() { 133 return valid; 134 } 135 136 public void setValid(Boolean valid) { 137 this.valid = valid; 138 } 139 140 /** 141 * An implementation of Comparator which compares origin entry groups by their source attribute 142 */ 143 public static class GroupTypeComparator implements Comparator { 144 /** 145 * Constructs a GroupTypeComparator instance 146 */ 147 public GroupTypeComparator() { 148 } 149 150 /** 151 * Compares origin entry groups based on the alphabeticality of their source attributes 152 * 153 * @param c1 the first origin entry group to compare 154 * @param c2 the origin entry group compared to 155 * @return a negative if c1's source is less than c2's, 0 if they are equal, a positive if c1's source is greater than c2's 156 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) 157 */ 158 public int compare(Object c1, Object c2) { 159 160 OriginEntryGroup oeg1 = (OriginEntryGroup) c1; 161 OriginEntryGroup oeg2 = (OriginEntryGroup) c2; 162 163 String sort1 = oeg1.getSourceCode(); 164 String sort2 = oeg2.getSourceCode(); 165 166 int c = sort1.compareTo(sort2); 167 if (c != 0) { 168 return c; 169 } 170 return oeg1.getId().compareTo(oeg2.getId()); 171 } 172 } 173 174 }