001/* 002 * Copyright 2006 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 017package org.kuali.ole.gl.businessobject; 018 019import java.util.LinkedHashMap; 020 021import org.apache.commons.lang.StringUtils; 022import org.kuali.ole.sys.OLEPropertyConstants; 023import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; 024 025/** 026 * Represents a GLCP criteria 027 */ 028public class CorrectionCriteria extends PersistableBusinessObjectBase implements Comparable { 029 030 private String documentNumber; 031 private Integer correctionChangeGroupLineNumber; 032 private Integer correctionCriteriaLineNumber; 033 private Integer correctionStartPosition; 034 private Integer correctionEndPosition; 035 private String correctionOperatorCode; 036 private String correctionFieldValue; 037 private String correctionFieldName; 038 039 private CorrectionChangeGroup correctionChangeGroup; 040 041 public CorrectionCriteria() { 042 super(); 043 044 } 045 046 public CorrectionCriteria(String documentNumber, Integer correctionChangeGroupLineNumber, Integer correctionCriteriaLineNumber) { 047 this.documentNumber = documentNumber; 048 this.correctionChangeGroupLineNumber = correctionChangeGroupLineNumber; 049 this.correctionCriteriaLineNumber = correctionCriteriaLineNumber; 050 } 051 052 public boolean isEmpty() { 053 return (versionNumber == null) && StringUtils.isEmpty(correctionFieldValue); 054 } 055 056 public String getDocumentNumber() { 057 return documentNumber; 058 } 059 060 public void setDocumentNumber(String documentNumber) { 061 this.documentNumber = documentNumber; 062 } 063 064 public Integer getCorrectionChangeGroupLineNumber() { 065 return correctionChangeGroupLineNumber; 066 } 067 068 public void setCorrectionChangeGroupLineNumber(Integer correctionChangeGroupLineNumber) { 069 this.correctionChangeGroupLineNumber = correctionChangeGroupLineNumber; 070 } 071 072 public Integer getCorrectionCriteriaLineNumber() { 073 return correctionCriteriaLineNumber; 074 } 075 076 public void setCorrectionCriteriaLineNumber(Integer correctionCriteriaLineNumber) { 077 this.correctionCriteriaLineNumber = correctionCriteriaLineNumber; 078 } 079 080 public String getCorrectionOperatorCode() { 081 return correctionOperatorCode; 082 } 083 084 public void setCorrectionOperatorCode(String correctionOperatorCode) { 085 this.correctionOperatorCode = correctionOperatorCode; 086 } 087 088 public String getCorrectionFieldValue() { 089 return correctionFieldValue; 090 } 091 092 public void setCorrectionFieldValue(String correctionFieldValue) { 093 this.correctionFieldValue = correctionFieldValue; 094 } 095 096 public CorrectionChangeGroup getCorrectionChangeGroup() { 097 return correctionChangeGroup; 098 } 099 100 public void setCorrectionChangeGroup(CorrectionChangeGroup correctionChangeGroup) { 101 this.correctionChangeGroup = correctionChangeGroup; 102 } 103 104 public String getCorrectionFieldName() { 105 return correctionFieldName; 106 } 107 108 public void setCorrectionFieldName(String correctionFieldName) { 109 this.correctionFieldName = correctionFieldName; 110 } 111 112 /** 113 * Compares this object with another CorrectionCriteria based on document number, 114 * correction change group line number, and correction criteria line number 115 * 116 * @see java.lang.Comparable#compareTo(java.lang.Object) 117 */ 118 public int compareTo(Object o) { 119 CorrectionCriteria cc = (CorrectionCriteria) o; 120 121 String thisFdocNbr = documentNumber == null ? "" : documentNumber; 122 String thatFdocNbr = cc.documentNumber == null ? "" : cc.documentNumber; 123 int c = thisFdocNbr.compareTo(thatFdocNbr); 124 125 if (c == 0) { 126 Integer thisGn = correctionChangeGroupLineNumber == null ? 0 : correctionChangeGroupLineNumber; 127 Integer thatGn = cc.correctionChangeGroupLineNumber == null ? 0 : cc.correctionChangeGroupLineNumber; 128 c = thisGn.compareTo(thatGn); 129 if (c == 0) { 130 Integer thisCln = correctionCriteriaLineNumber == null ? 0 : correctionCriteriaLineNumber; 131 Integer thatCln = correctionCriteriaLineNumber == null ? 0 : cc.correctionCriteriaLineNumber; 132 return c = thisCln.compareTo(thatCln); 133 } 134 else { 135 return c; 136 } 137 } 138 else { 139 return c; 140 } 141 } 142 143 /** 144 * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() 145 */ 146 protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { 147 LinkedHashMap m = new LinkedHashMap(); 148 m.put(OLEPropertyConstants.DOCUMENT_NUMBER, this.documentNumber); 149 if (this.correctionChangeGroupLineNumber != null) { 150 m.put("correctionChangeGroupLineNumber", this.correctionChangeGroupLineNumber.toString()); 151 } 152 if (this.correctionCriteriaLineNumber != null) { 153 m.put("correctionCriteriaLineNumber", this.correctionCriteriaLineNumber.toString()); 154 } 155 return m; 156 } 157}