first commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package net.sf.jasperreports.engine.fill;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import net.sf.jasperreports.engine.JRPrintImage;
|
||||
import net.sf.jasperreports.engine.JRRenderable;
|
||||
import net.sf.jasperreports.engine.JasperPrint;
|
||||
import org.apache.commons.collections.ReferenceMap;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
public class JRVirtualizationContext implements Serializable {
|
||||
private static final long serialVersionUID = 10200L;
|
||||
|
||||
private static final Log log = LogFactory.getLog(JRVirtualizationContext.class);
|
||||
|
||||
private static final ReferenceMap contexts = new ReferenceMap(2, 2);
|
||||
|
||||
private Map cachedRenderers = new HashMap();
|
||||
|
||||
private Map cachedTemplates = new HashMap();
|
||||
|
||||
private boolean readOnly;
|
||||
|
||||
public void cacheRenderer(JRPrintImage image) {
|
||||
JRRenderable renderer = image.getRenderer();
|
||||
if (renderer != null)
|
||||
this.cachedRenderers.put(renderer.getId(), renderer);
|
||||
}
|
||||
|
||||
public JRRenderable getCachedRenderer(String id) {
|
||||
return (JRRenderable)this.cachedRenderers.get(id);
|
||||
}
|
||||
|
||||
public boolean hasCachedRenderer(String id) {
|
||||
return this.cachedRenderers.containsKey(id);
|
||||
}
|
||||
|
||||
public boolean hasCachedTemplate(String id) {
|
||||
return this.cachedTemplates.containsKey(id);
|
||||
}
|
||||
|
||||
public void cacheTemplate(JRTemplateElement template) {
|
||||
Object old = this.cachedTemplates.put(template.getId(), template);
|
||||
if (old == null && log.isDebugEnabled())
|
||||
log.debug("Cached template " + template + " having id " + template.getId());
|
||||
}
|
||||
|
||||
public JRTemplateElement getCachedTemplate(String templateId) {
|
||||
return (JRTemplateElement)this.cachedTemplates.get(templateId);
|
||||
}
|
||||
|
||||
public boolean isReadOnly() {
|
||||
return this.readOnly;
|
||||
}
|
||||
|
||||
public void setReadOnly(boolean readOnly) {
|
||||
this.readOnly = readOnly;
|
||||
}
|
||||
|
||||
public static void register(JRVirtualizationContext context, JasperPrint print) {
|
||||
synchronized (contexts) {
|
||||
contexts.put(print, context);
|
||||
}
|
||||
}
|
||||
|
||||
public static JRVirtualizationContext getRegistered(JasperPrint print) {
|
||||
synchronized (contexts) {
|
||||
return (JRVirtualizationContext)contexts.get(print);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user