/*
 * 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: UnresolvedListElementWithLength.java 1296526 2012-03-03 00:18:45Z gadams $ */

package org.apache.fop.layoutmgr;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.fop.traits.MinOptMax;

This class represents an unresolved list element element with a (conditional) length. This is the base class for spaces, borders and paddings.
/** * This class represents an unresolved list element element with a (conditional) length. This * is the base class for spaces, borders and paddings. */
public abstract class UnresolvedListElementWithLength extends UnresolvedListElement {
Logger instance
/** Logger instance */
protected static final Log log = LogFactory.getLog(UnresolvedListElementWithLength.class); private MinOptMax length; private boolean conditional; private RelSide side; private boolean isFirst; private boolean isLast;
Main constructor
Params:
  • position – the Position instance needed by the addAreas stage of the LMs.
  • length – the length of the element
  • side – the side to which this element applies
  • conditional – true if it's a conditional element (conditionality=discard)
  • isFirst – true if this is a space-before of the first area generated.
  • isLast – true if this is a space-after of the last area generated.
/** * Main constructor * @param position the Position instance needed by the addAreas stage of the LMs. * @param length the length of the element * @param side the side to which this element applies * @param conditional true if it's a conditional element (conditionality=discard) * @param isFirst true if this is a space-before of the first area generated. * @param isLast true if this is a space-after of the last area generated. */
public UnresolvedListElementWithLength(Position position, MinOptMax length, RelSide side, boolean conditional, boolean isFirst, boolean isLast) { super(position); this.length = length; this.side = side; this.conditional = conditional; this.isFirst = isFirst; this.isLast = isLast; }
{@inheritDoc}
/** {@inheritDoc} */
public boolean isConditional() { return this.conditional; }
Returns:the space as resolved MinOptMax instance
/** @return the space as resolved MinOptMax instance */
public MinOptMax getLength() { return this.length; }
Returns:the side this element was generated for
/** @return the side this element was generated for */
public RelSide getSide() { return this.side; }
Returns:true if this is a space-before of the first area generated.
/** @return true if this is a space-before of the first area generated. */
public boolean isFirst() { return this.isFirst; }
Returns:true if this is a space-after of the last area generated.
/** @return true if this is a space-after of the last area generated. */
public boolean isLast() { return this.isLast; }
Called to notify the affected layout manager about the effective length after resolution. This method is called once before each call to the layout manager's addAreas() method.
Params:
  • effectiveLength – the effective length after resolution (may be null which equals to zero effective length)
/** * Called to notify the affected layout manager about the effective length after resolution. * This method is called once before each call to the layout manager's addAreas() method. * @param effectiveLength the effective length after resolution (may be null which equals to * zero effective length) */
public abstract void notifyLayoutManager(MinOptMax effectiveLength);
{@inheritDoc}
/** {@inheritDoc} */
public String toString() { StringBuffer sb = new StringBuffer(); sb.append(getSide().getName()).append(", "); sb.append(this.length.toString()); if (isConditional()) { sb.append("[discard]"); } else { sb.append("[RETAIN]"); } if (isFirst()) { sb.append("[first]"); } if (isLast()) { sb.append("[last]"); } return sb.toString(); } }