org.apache.fop.layoutmgr.LayoutManagerMaker Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.fop Show documentation
Show all versions of org.apache.fop Show documentation
The core maven build properties
The newest version!
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id: LayoutManagerMaker.java 1296526 2012-03-03 00:18:45Z gadams $ */
package org.apache.fop.layoutmgr;
import java.util.List;
import org.apache.fop.area.AreaTreeHandler;
import org.apache.fop.area.Block;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.extensions.ExternalDocument;
import org.apache.fop.fo.pagination.Flow;
import org.apache.fop.fo.pagination.PageSequence;
import org.apache.fop.fo.pagination.SideRegion;
import org.apache.fop.fo.pagination.StaticContent;
import org.apache.fop.fo.pagination.Title;
import org.apache.fop.layoutmgr.inline.ContentLayoutManager;
/**
* The interface for all LayoutManager makers
*/
public interface LayoutManagerMaker {
/**
* Make LayoutManagers for the node and add them to the list lms.
* @param node the FO node for which the LayoutManagers are made
* @param lms the list to which the LayoutManagers are added
*/
void makeLayoutManagers(FONode node, List lms);
/**
* Make a specific LayoutManager for the node.
* If not exactly one LayoutManagers is available,
* an IllegalStateException is thrown.
* @param node the FO node for which the LayoutManagers are made
* @return The created LayoutManager
*/
LayoutManager makeLayoutManager(FONode node);
/**
* Make a PageSequenceLayoutManager object.
* @param ath the AreaTreeHandler object the PSLM interacts with
* @param ps the fo:page-sequence object this PSLM will process
* @return The created PageSequenceLayoutManager object
*/
PageSequenceLayoutManager makePageSequenceLayoutManager(
AreaTreeHandler ath, PageSequence ps);
/**
* Make a ExternalDocumentLayoutManager object for the fox:external-document extension.
* @param ath the AreaTreeHandler object the external-document interacts with
* @param ed the fox:external-document object to be processed
* @return The created ExternalDocumentLayoutManager object
*/
ExternalDocumentLayoutManager makeExternalDocumentLayoutManager(
AreaTreeHandler ath, ExternalDocument ed);
/**
* Make a FlowLayoutManager object.
* @param pslm the parent PageSequenceLayoutManager object
* @param flow the fo:flow object this FLM will process
* @return The created FlowLayoutManager object
*/
FlowLayoutManager makeFlowLayoutManager(
PageSequenceLayoutManager pslm, Flow flow);
/**
* Make a ContentLayoutManager object.
* @param pslm the parent PageSequenceLayoutManager object
* @param title the fo:title object this CLM will process
* @return The created ContentLayoutManager object
*/
ContentLayoutManager makeContentLayoutManager(
PageSequenceLayoutManager pslm, Title title);
/**
* Make a StaticContentLayoutManager object.
* @param pslm the parent PageSequenceLayoutManager object
* @param sc the fo:static-content object this SCLM will process
* @param reg the side region indicating where the static content
* needs to be processed.
* @return The created StaticContentLayoutManager object
*/
StaticContentLayoutManager makeStaticContentLayoutManager(
PageSequenceLayoutManager pslm, StaticContent sc, SideRegion reg);
/**
* Make a StaticContentLayoutManager object for a footnote-separator.
* @param pslm the parent PageSequenceLayoutManager object
* @param sc the fo:static-content object this SCLM will process
* @param block the Block area this SCLM must add its areas to
* @return The created StaticContentLayoutManager object
*/
StaticContentLayoutManager makeStaticContentLayoutManager(
PageSequenceLayoutManager pslm, StaticContent sc, Block block);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy