001 /** 002 * =========================================== 003 * LibLayout : a free Java layouting library 004 * =========================================== 005 * 006 * Project Info: http://reporting.pentaho.org/liblayout/ 007 * 008 * (C) Copyright 2006-2007, by Pentaho Corporation and Contributors. 009 * 010 * This library is free software; you can redistribute it and/or modify it under the terms 011 * of the GNU Lesser General Public License as published by the Free Software Foundation; 012 * either version 2.1 of the License, or (at your option) any later version. 013 * 014 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 015 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 016 * See the GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public License along with this 019 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 020 * Boston, MA 02111-1307, USA. 021 * 022 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 023 * in the United States and other countries.] 024 * 025 * ------------ 026 * $Id: LayoutProcess.java 3044 2007-07-28 17:52:44Z tmorgner $ 027 * ------------ 028 * (C) Copyright 2006-2007, by Pentaho Corporation. 029 */ 030 package org.jfree.layouting; 031 032 import org.jfree.layouting.input.style.PseudoPage; 033 import org.jfree.layouting.input.style.values.CSSValue; 034 import org.jfree.layouting.layouter.context.DocumentContext; 035 import org.jfree.layouting.layouter.feed.InputFeed; 036 import org.jfree.layouting.layouter.style.resolver.StyleResolver; 037 import org.jfree.layouting.normalizer.content.NormalizationException; 038 import org.jfree.layouting.normalizer.content.Normalizer; 039 import org.jfree.layouting.output.OutputProcessor; 040 import org.jfree.layouting.output.OutputProcessorMetaData; 041 import org.jfree.resourceloader.ResourceManager; 042 043 /** 044 * Creation-Date: 05.12.2005, 18:03:25 045 * 046 * @author Thomas Morgner 047 */ 048 public interface LayoutProcess 049 { 050 public InputFeed getInputFeed(); 051 052 /** 053 * The document context holds global information, like the used stylesheets. 054 * It also holds the caches for loading external contents. 055 * 056 * @return the document context. 057 */ 058 public DocumentContext getDocumentContext(); 059 060 public OutputProcessorMetaData getOutputMetaData(); 061 062 public OutputProcessor getOutputProcessor(); 063 064 public ResourceManager getResourceManager(); 065 066 public void pageBreakEncountered (final CSSValue pageName, 067 final PseudoPage[] pseudoPages) 068 throws NormalizationException; 069 070 /** 071 * A flag that indicates, whether one or more pagebreak have been encountered 072 * during the last operation. The flag does not necessarily state that the 073 * pagebreak(s) have been triggered by the last operation, it can as well be a 074 * delayed pagebreak indication due to caching or layouting effects (as it 075 * happens with pending or moved content). 076 * 077 * @return true, if a pagebreak as been encountered somewhere in the past, 078 * false otherwise. 079 */ 080 public boolean isPagebreakEncountered(); 081 082 public LayoutProcessState saveState () throws StateException; 083 084 public StyleResolver getStyleResolver(); 085 086 public Normalizer getNormalizer(); 087 }