/* * JasperReports - Free Java Reporting Library. * Copyright (C) 2005 - 2009 Works, Inc. All rights reserved. * http://www.works.com * * Unless you have purchased a commercial license agreement from Jaspersoft, * the following license terms apply: * * This program is part of JasperReports. * * JasperReports is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * JasperReports is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with JasperReports. If not, see <http://www.gnu.org/licenses/>. */ /* * Licensed to Jaspersoft Corporation under a Contributer Agreement */ package net.sf.jasperreports.engine; import net.sf.jasperreports.engine.fill.JRVirtualizationContext; /** * @author John Bindel * @version $Id: JRVirtualizable.java 3033 2009-08-27 11:46:22Z teodord $ */ public interface JRVirtualizable { /** * Used by the virtualizer to identify the data for this object. */ String getUID(); /** * Used by the virtualizer to set data. */ void setVirtualData(Object o); /** * Used by the virtualizer to get data. */ Object getVirtualData(); /** * Used by the virtualizer to remove the data from the object in memory so * that it may be garbage collected. */ void removeVirtualData(); /** * Used by the virtualizer to set identity data. */ void setIdentityData(Object id); /** * Used by the virtualizer to get identity data. */ Object getIdentityData(); /** * Called by the virtualizer before the object's data is externalized. */ void beforeExternalization(); /** * Called by the virtualizer after the object's data is externalized, but before * the virtual data is {@link #removeVirtualData() removed}. */ void afterExternalization(); /** * Called by the virtualizer after the object's data was made available to the object. */ void afterInternalization(); /** * Returns the virtualization context this object belongs to. * * @return the virtualization context this object belongs to */ //FIXME use a more generic context type, JRVirtualizationContext has print page-specific methods //issue: changing JRVirtualizationContext hierarchy would impact serialization JRVirtualizationContext getContext(); }