211 lines
5.1 KiB
Java
211 lines
5.1 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import net.sf.jasperreports.engine.JRExpression;
|
|
import net.sf.jasperreports.engine.JRGroup;
|
|
import net.sf.jasperreports.engine.JRVariable;
|
|
|
|
public class JRFillVariable implements JRVariable, JRCalculable {
|
|
protected JRVariable parent = null;
|
|
|
|
private JRGroup resetGroup = null;
|
|
|
|
private JRGroup incrementGroup = null;
|
|
|
|
private Object previousOldValue = null;
|
|
|
|
private Object oldValue = null;
|
|
|
|
private Object estimatedValue = null;
|
|
|
|
private Object incrementedValue = null;
|
|
|
|
private Object value = null;
|
|
|
|
private boolean isInitialized = false;
|
|
|
|
private Object savedValue;
|
|
|
|
private JRFillVariable[] helperVariables;
|
|
|
|
private JRIncrementer incrementer = null;
|
|
|
|
protected JRFillVariable(JRVariable variable, JRFillObjectFactory factory) {
|
|
factory.put(variable, this);
|
|
this.parent = variable;
|
|
this.resetGroup = factory.getGroup(variable.getResetGroup());
|
|
this.incrementGroup = factory.getGroup(variable.getIncrementGroup());
|
|
this.helperVariables = new JRFillVariable[3];
|
|
}
|
|
|
|
public String getName() {
|
|
return this.parent.getName();
|
|
}
|
|
|
|
public Class getValueClass() {
|
|
return this.parent.getValueClass();
|
|
}
|
|
|
|
public String getValueClassName() {
|
|
return this.parent.getValueClassName();
|
|
}
|
|
|
|
public Class getIncrementerFactoryClass() {
|
|
return this.parent.getIncrementerFactoryClass();
|
|
}
|
|
|
|
public String getIncrementerFactoryClassName() {
|
|
return this.parent.getIncrementerFactoryClassName();
|
|
}
|
|
|
|
public JRExpression getExpression() {
|
|
return this.parent.getExpression();
|
|
}
|
|
|
|
public JRExpression getInitialValueExpression() {
|
|
return this.parent.getInitialValueExpression();
|
|
}
|
|
|
|
public byte getResetType() {
|
|
return this.parent.getResetType();
|
|
}
|
|
|
|
public byte getIncrementType() {
|
|
return this.parent.getIncrementType();
|
|
}
|
|
|
|
public byte getCalculation() {
|
|
return this.parent.getCalculation();
|
|
}
|
|
|
|
public boolean isSystemDefined() {
|
|
return this.parent.isSystemDefined();
|
|
}
|
|
|
|
public JRGroup getResetGroup() {
|
|
return this.resetGroup;
|
|
}
|
|
|
|
public JRGroup getIncrementGroup() {
|
|
return this.incrementGroup;
|
|
}
|
|
|
|
public Object getOldValue() {
|
|
return this.oldValue;
|
|
}
|
|
|
|
public void setOldValue(Object oldValue) {
|
|
this.oldValue = oldValue;
|
|
}
|
|
|
|
public Object getEstimatedValue() {
|
|
return this.estimatedValue;
|
|
}
|
|
|
|
public void setEstimatedValue(Object estimatedValue) {
|
|
this.estimatedValue = estimatedValue;
|
|
}
|
|
|
|
public Object getIncrementedValue() {
|
|
return this.incrementedValue;
|
|
}
|
|
|
|
public void setIncrementedValue(Object incrementedValue) {
|
|
this.incrementedValue = incrementedValue;
|
|
}
|
|
|
|
public Object getValue() {
|
|
return this.value;
|
|
}
|
|
|
|
public void setValue(Object value) {
|
|
this.value = value;
|
|
}
|
|
|
|
public boolean isInitialized() {
|
|
return this.isInitialized;
|
|
}
|
|
|
|
public void setInitialized(boolean isInitialized) {
|
|
this.isInitialized = isInitialized;
|
|
}
|
|
|
|
public JRIncrementer getIncrementer() {
|
|
if (this.incrementer == null) {
|
|
JRIncrementerFactory incrementerFactory;
|
|
Class incrementerFactoryClass = getIncrementerFactoryClass();
|
|
if (incrementerFactoryClass == null) {
|
|
incrementerFactory = JRDefaultIncrementerFactory.getFactory(getValueClass());
|
|
} else {
|
|
incrementerFactory = JRIncrementerFactoryCache.getInstance(incrementerFactoryClass);
|
|
}
|
|
this.incrementer = incrementerFactory.getIncrementer(getCalculation());
|
|
}
|
|
return this.incrementer;
|
|
}
|
|
|
|
public JRFillVariable setHelperVariable(JRFillVariable helperVariable, byte type) {
|
|
JRFillVariable old = this.helperVariables[type];
|
|
this.helperVariables[type] = helperVariable;
|
|
return old;
|
|
}
|
|
|
|
public JRCalculable getHelperVariable(byte type) {
|
|
return this.helperVariables[type];
|
|
}
|
|
|
|
public Object getValue(byte evaluation) {
|
|
switch (evaluation) {
|
|
case 1:
|
|
returnValue = this.oldValue;
|
|
return returnValue;
|
|
case 2:
|
|
returnValue = this.estimatedValue;
|
|
return returnValue;
|
|
}
|
|
Object returnValue = this.value;
|
|
return returnValue;
|
|
}
|
|
|
|
public void overwriteValue(Object newValue, byte evaluation) {
|
|
switch (evaluation) {
|
|
case 1:
|
|
this.savedValue = this.oldValue;
|
|
this.oldValue = newValue;
|
|
return;
|
|
case 2:
|
|
this.savedValue = this.estimatedValue;
|
|
this.estimatedValue = newValue;
|
|
return;
|
|
}
|
|
this.savedValue = this.value;
|
|
this.value = newValue;
|
|
}
|
|
|
|
public void restoreValue(byte evaluation) {
|
|
switch (evaluation) {
|
|
case 1:
|
|
this.oldValue = this.savedValue;
|
|
break;
|
|
case 2:
|
|
this.estimatedValue = this.savedValue;
|
|
break;
|
|
default:
|
|
this.value = this.savedValue;
|
|
break;
|
|
}
|
|
this.savedValue = null;
|
|
}
|
|
|
|
public Object getPreviousOldValue() {
|
|
return this.previousOldValue;
|
|
}
|
|
|
|
public void setPreviousOldValue(Object previousOldValue) {
|
|
this.previousOldValue = previousOldValue;
|
|
}
|
|
|
|
public Object clone() {
|
|
return null;
|
|
}
|
|
}
|