/*
 * 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
/** * The interface for all LayoutManager makers */
public interface LayoutManagerMaker {
Make LayoutManagers for the node and add them to the list lms.
Params:
  • node – the FO node for which the LayoutManagers are made
  • lms – the list to which the LayoutManagers are added
/** * 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.
Params:
  • node – the FO node for which the LayoutManagers are made
Returns:The created LayoutManager
/** * 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.
Params:
  • ath – the AreaTreeHandler object the PSLM interacts with
  • ps – the fo:page-sequence object this PSLM will process
Returns:The created PageSequenceLayoutManager object
/** * 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.
Params:
  • ath – the AreaTreeHandler object the external-document interacts with
  • ed – the fox:external-document object to be processed
Returns:The created ExternalDocumentLayoutManager object
/** * 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.
Params:
  • pslm – the parent PageSequenceLayoutManager object
  • flow – the fo:flow object this FLM will process
Returns:The created FlowLayoutManager object
/** * 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.
Params:
  • pslm – the parent PageSequenceLayoutManager object
  • title – the fo:title object this CLM will process
Returns:The created ContentLayoutManager object
/** * 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.
Params:
  • pslm – the parent PageSequenceLayoutManager object
  • sc – the fo:static-content object this SCLM will process
  • reg – the side region indicating where the static content needs to be processed.
Returns:The created StaticContentLayoutManager object
/** * 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.
Params:
  • pslm – the parent PageSequenceLayoutManager object
  • sc – the fo:static-content object this SCLM will process
  • block – the Block area this SCLM must add its areas to
Returns:The created StaticContentLayoutManager object
/** * 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); }