Files
HRMS/hrmsEjb/net/sf/jasperreports/crosstabs/base/JRBaseCrosstabMeasure.java
2025-07-28 13:56:49 +05:30

149 lines
4.6 KiB
Java

package net.sf.jasperreports.crosstabs.base;
import java.io.Serializable;
import net.sf.jasperreports.crosstabs.JRCrosstabMeasure;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JRVariable;
import net.sf.jasperreports.engine.base.JRBaseObjectFactory;
import net.sf.jasperreports.engine.util.JRClassLoader;
public class JRBaseCrosstabMeasure implements JRCrosstabMeasure, Serializable {
private static final long serialVersionUID = 10200L;
protected String name;
protected String valueClassName;
protected String valueClassRealName = null;
protected Class valueClass;
protected JRExpression expression;
protected byte calculation = 1;
protected String incrementerFactoryClassName;
protected String incrementerFactoryClassRealName;
protected Class incrementerFactoryClass;
protected byte percentageOfType = 0;
protected String percentageCalculatorClassName;
protected String percentageCalculatorClassRealName;
protected Class percentageCalculatorClass;
protected JRVariable variable;
protected JRBaseCrosstabMeasure() {}
public JRBaseCrosstabMeasure(JRCrosstabMeasure measure, JRBaseObjectFactory factory) {
factory.put(measure, this);
this.name = measure.getName();
this.valueClassName = measure.getValueClassName();
this.expression = factory.getExpression(measure.getValueExpression());
this.calculation = measure.getCalculation();
this.incrementerFactoryClassName = measure.getIncrementerFactoryClassName();
this.percentageOfType = measure.getPercentageOfType();
this.percentageCalculatorClassName = measure.getPercentageCalculatorClassName();
this.variable = (JRVariable)factory.getVariable(measure.getVariable());
}
public String getName() {
return this.name;
}
public String getValueClassName() {
return this.valueClassName;
}
public JRExpression getValueExpression() {
return this.expression;
}
public byte getCalculation() {
return this.calculation;
}
public String getIncrementerFactoryClassName() {
return this.incrementerFactoryClassName;
}
public byte getPercentageOfType() {
return this.percentageOfType;
}
public Class getIncrementerFactoryClass() {
if (this.incrementerFactoryClass == null) {
String className = getIncrementerFactoryClassRealName();
if (className != null)
try {
this.incrementerFactoryClass = JRClassLoader.loadClassForName(className);
} catch (ClassNotFoundException e) {
throw new JRRuntimeException("Could not load measure incrementer class", e);
}
}
return this.incrementerFactoryClass;
}
private String getIncrementerFactoryClassRealName() {
if (this.incrementerFactoryClassRealName == null)
this.incrementerFactoryClassRealName = JRClassLoader.getClassRealName(this.incrementerFactoryClassName);
return this.incrementerFactoryClassRealName;
}
public Class getValueClass() {
if (this.valueClass == null) {
String className = getValueClassRealName();
if (className != null)
try {
this.valueClass = JRClassLoader.loadClassForName(className);
} catch (ClassNotFoundException e) {
throw new JRRuntimeException("Could not load bucket value class", e);
}
}
return this.valueClass;
}
private String getValueClassRealName() {
if (this.valueClassRealName == null)
this.valueClassRealName = JRClassLoader.getClassRealName(this.valueClassName);
return this.valueClassRealName;
}
public JRVariable getVariable() {
return this.variable;
}
public String getPercentageCalculatorClassName() {
return this.percentageCalculatorClassName;
}
public Class getPercentageCalculatorClass() {
if (this.percentageCalculatorClass == null) {
String className = getPercentageCalculatorClassRealName();
if (className != null)
try {
this.percentageCalculatorClass = JRClassLoader.loadClassForName(className);
} catch (ClassNotFoundException e) {
throw new JRRuntimeException("Could not load measure percentage calculator class", e);
}
}
return this.percentageCalculatorClass;
}
private String getPercentageCalculatorClassRealName() {
if (this.percentageCalculatorClassRealName == null)
this.percentageCalculatorClassRealName = JRClassLoader.getClassRealName(this.percentageCalculatorClassName);
return this.percentageCalculatorClassRealName;
}
public Object clone() {
return null;
}
}