/*
 * 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: PageProductionException.java 1616416 2014-08-07 06:46:57Z gadams $ */

package org.apache.fop.fo.pagination;

import java.util.Locale;

import org.xml.sax.Locator;
import org.xml.sax.helpers.LocatorImpl;

import org.apache.fop.events.Event;
import org.apache.fop.events.EventExceptionManager.ExceptionFactory;
import org.apache.fop.events.EventFormatter;

Exception thrown by FOP if there is a problem while producing new pages.
/** * Exception thrown by FOP if there is a problem while producing new pages. */
public class PageProductionException extends RuntimeException { private static final long serialVersionUID = -5126033718398975158L; private String localizedMessage; private transient Locator locator;
Creates a new PageProductionException.
Params:
  • message – the message
/** * Creates a new PageProductionException. * @param message the message */
public PageProductionException(String message) { super(message); }
Creates a new PageProductionException.
Params:
  • message – the message
  • locator – the optional locator that points to the error in the source file
/** * Creates a new PageProductionException. * @param message the message * @param locator the optional locator that points to the error in the source file */
public PageProductionException(String message, Locator locator) { super(message); setLocator(locator); }
Set a location associated with the exception.
Params:
  • locator – the locator holding the location.
/** * Set a location associated with the exception. * @param locator the locator holding the location. */
public void setLocator(Locator locator) { this.locator = locator != null ? new LocatorImpl(locator) : null; }
Returns the locattion associated with the exception.
Returns:the locator or null if the location information is not available
/** * Returns the locattion associated with the exception. * @return the locator or null if the location information is not available */
public Locator getLocator() { return this.locator; }
Sets the localized message for this exception.
Params:
  • msg – the localized message
/** * Sets the localized message for this exception. * @param msg the localized message */
public void setLocalizedMessage(String msg) { this.localizedMessage = msg; }
{@inheritDoc}
/** {@inheritDoc} */
public String getLocalizedMessage() { if (this.localizedMessage != null) { return this.localizedMessage; } else { return super.getLocalizedMessage(); } }
Exception factory for PageProductionException.
/** Exception factory for {@link PageProductionException}. */
public static class PageProductionExceptionFactory implements ExceptionFactory {
{@inheritDoc}
/** {@inheritDoc} */
public Throwable createException(Event event) { Object obj = event.getParam("loc"); Locator loc = (obj instanceof Locator ? (Locator)obj : null); String msg = EventFormatter.format(event, Locale.ENGLISH); PageProductionException ex = new PageProductionException(msg, loc); if (!Locale.ENGLISH.equals(Locale.getDefault())) { ex.setLocalizedMessage(EventFormatter.format(event)); } return ex; }
{@inheritDoc}
/** {@inheritDoc} */
public Class<PageProductionException> getExceptionClass() { return PageProductionException.class; } } }