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
017 package org.kuali.kfs.gl.businessobject;
018
019 import java.util.LinkedHashMap;
020
021 import org.apache.commons.lang.StringUtils;
022 import org.kuali.kfs.sys.KFSPropertyConstants;
023 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
024
025 /**
026 * A class that represents a change to any origin entry that was altered within a GLCP Document
027 */
028 public class CorrectionChange extends PersistableBusinessObjectBase implements Comparable {
029
030 private String documentNumber;
031 private Integer correctionChangeGroupLineNumber;
032 private Integer correctionChangeLineNumber;
033 private Integer correctionStartPosition;
034 private Integer correctionEndPosition;
035 private String correctionFieldValue;
036 private String correctionFieldName;
037
038 public CorrectionChange() {
039 super();
040
041 }
042
043 public CorrectionChange(String documentNumber, Integer correctionChangeGroupLineNumber, Integer correctionChangeLineNumber) {
044 super();
045 this.documentNumber = documentNumber;
046 this.correctionChangeGroupLineNumber = correctionChangeGroupLineNumber;
047 this.correctionChangeLineNumber = correctionChangeLineNumber;
048 }
049
050 public boolean isEmpty() {
051 return (versionNumber == null) && StringUtils.isEmpty(correctionFieldValue);
052 }
053
054 public String getDocumentNumber() {
055 return documentNumber;
056 }
057
058 public void setDocumentNumber(String documentNumber) {
059 this.documentNumber = documentNumber;
060 }
061
062
063 public Integer getCorrectionChangeGroupLineNumber() {
064 return correctionChangeGroupLineNumber;
065 }
066
067 public void setCorrectionChangeGroupLineNumber(Integer correctionChangeGroupLineNumber) {
068 this.correctionChangeGroupLineNumber = correctionChangeGroupLineNumber;
069 }
070
071 public Integer getCorrectionChangeLineNumber() {
072 return correctionChangeLineNumber;
073 }
074
075 public void setCorrectionChangeLineNumber(Integer correctionChangeLineNumber) {
076 this.correctionChangeLineNumber = correctionChangeLineNumber;
077 }
078
079 public String getCorrectionFieldValue() {
080 return correctionFieldValue;
081 }
082
083 public void setCorrectionFieldValue(String correctionFieldValue) {
084 this.correctionFieldValue = correctionFieldValue;
085 }
086
087 public String getCorrectionFieldName() {
088 return correctionFieldName;
089 }
090
091 public void setCorrectionFieldName(String correctionFieldName) {
092 this.correctionFieldName = correctionFieldName;
093 }
094
095 public int compareTo(Object o) {
096 CorrectionChange cc = (CorrectionChange) o;
097
098 String thisFdocNbr = documentNumber == null ? "" : documentNumber;
099 String thatFdocNbr = cc.documentNumber == null ? "" : cc.documentNumber;
100 int c = thisFdocNbr.compareTo(thatFdocNbr);
101
102 if (c == 0) {
103 Integer thisGn = correctionChangeGroupLineNumber == null ? 0 : correctionChangeGroupLineNumber;
104 Integer thatGn = cc.correctionChangeGroupLineNumber == null ? 0 : cc.correctionChangeGroupLineNumber;
105 c = thisGn.compareTo(thatGn);
106 if (c == 0) {
107 Integer thisCln = correctionChangeLineNumber == null ? 0 : correctionChangeLineNumber;
108 Integer thatCln = correctionChangeLineNumber == null ? 0 : cc.correctionChangeLineNumber;
109 return c = thisCln.compareTo(thatCln);
110 }
111 else {
112 return c;
113 }
114 }
115 else {
116 return c;
117 }
118 }
119
120 /**
121 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
122 */
123 protected LinkedHashMap toStringMapper() {
124 LinkedHashMap m = new LinkedHashMap();
125 m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
126 if (this.correctionChangeGroupLineNumber != null) {
127 m.put("correctionChangeGroupLineNumber", this.correctionChangeGroupLineNumber.toString());
128 }
129 if (this.correctionChangeLineNumber != null) {
130 m.put("correctionChangeLineNumber", this.correctionChangeLineNumber.toString());
131 }
132 return m;
133 }
134
135 }