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

108 lines
3.9 KiB
Java

package net.sf.jasperreports.engine.base;
import java.io.Serializable;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRHyperlink;
import net.sf.jasperreports.engine.JRHyperlinkHelper;
import net.sf.jasperreports.engine.JRHyperlinkParameter;
import net.sf.jasperreports.engine.JRRuntimeException;
public class JRBaseHyperlink implements JRHyperlink, Serializable {
private static final long serialVersionUID = 10200L;
protected String linkType;
protected byte hyperlinkTarget = 1;
protected JRExpression hyperlinkReferenceExpression;
protected JRExpression hyperlinkAnchorExpression;
protected JRExpression hyperlinkPageExpression;
protected JRExpression hyperlinkTooltipExpression;
protected JRHyperlinkParameter[] hyperlinkParameters;
public JRBaseHyperlink() {}
protected JRBaseHyperlink(JRHyperlink link, JRBaseObjectFactory factory) {
factory.put(link, this);
this.linkType = link.getLinkType();
this.hyperlinkTarget = link.getHyperlinkTarget();
this.hyperlinkReferenceExpression = factory.getExpression(link.getHyperlinkReferenceExpression());
this.hyperlinkAnchorExpression = factory.getExpression(link.getHyperlinkAnchorExpression());
this.hyperlinkPageExpression = factory.getExpression(link.getHyperlinkPageExpression());
this.hyperlinkTooltipExpression = factory.getExpression(link.getHyperlinkTooltipExpression());
this.hyperlinkParameters = copyHyperlinkParameters(link, factory);
}
public static JRHyperlinkParameter[] copyHyperlinkParameters(JRHyperlink link, JRBaseObjectFactory factory) {
JRHyperlinkParameter[] linkParameters = link.getHyperlinkParameters();
JRHyperlinkParameter[] parameters = null;
if (linkParameters != null && linkParameters.length > 0) {
parameters = new JRHyperlinkParameter[linkParameters.length];
for (int i = 0; i < linkParameters.length; i++) {
JRHyperlinkParameter parameter = linkParameters[i];
parameters[i] = factory.getHyperlinkParameter(parameter);
}
}
return parameters;
}
public JRExpression getHyperlinkAnchorExpression() {
return this.hyperlinkAnchorExpression;
}
public JRExpression getHyperlinkPageExpression() {
return this.hyperlinkPageExpression;
}
public JRHyperlinkParameter[] getHyperlinkParameters() {
return this.hyperlinkParameters;
}
public JRExpression getHyperlinkReferenceExpression() {
return this.hyperlinkReferenceExpression;
}
public byte getHyperlinkTarget() {
return this.hyperlinkTarget;
}
public byte getHyperlinkType() {
return JRHyperlinkHelper.getHyperlinkType(this);
}
public String getLinkType() {
return this.linkType;
}
public JRExpression getHyperlinkTooltipExpression() {
return this.hyperlinkTooltipExpression;
}
public Object clone() {
JRBaseHyperlink clone = null;
try {
clone = (JRBaseHyperlink)super.clone();
} catch (CloneNotSupportedException e) {
throw new JRRuntimeException(e);
}
if (this.hyperlinkParameters != null) {
clone.hyperlinkParameters = new JRHyperlinkParameter[this.hyperlinkParameters.length];
for (int i = 0; i < this.hyperlinkParameters.length; i++)
clone.hyperlinkParameters[i] = (JRHyperlinkParameter)this.hyperlinkParameters[i].clone();
}
if (this.hyperlinkReferenceExpression != null)
clone.hyperlinkReferenceExpression = (JRExpression)this.hyperlinkReferenceExpression.clone();
if (this.hyperlinkAnchorExpression != null)
clone.hyperlinkAnchorExpression = (JRExpression)this.hyperlinkAnchorExpression.clone();
if (this.hyperlinkPageExpression != null)
clone.hyperlinkPageExpression = (JRExpression)this.hyperlinkPageExpression.clone();
if (this.hyperlinkTooltipExpression != null)
clone.hyperlinkTooltipExpression = (JRExpression)this.hyperlinkTooltipExpression.clone();
return clone;
}
}