/*
 * 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: RendererContext.java 1762060 2016-09-23 12:57:46Z ssteiner $ */

package org.apache.fop.render;

//Java
import java.util.Map;

import org.apache.fop.apps.FOUserAgent;

The Render Context for external handlers. This provides a rendering context so that external handlers can get information to be able to render to the render target.
/** * The Render Context for external handlers. This provides a rendering context * so that external handlers can get information to be able to render to the * render target. */
public class RendererContext { private final String mime; private final AbstractRenderer renderer; private FOUserAgent userAgent; private final Map<String, Object> props = new java.util.HashMap<String, Object>();
Constructor for this class. It takes a MIME type as parameter.
Params:
  • renderer – the current renderer
  • mime – the MIME type of the output that's generated.
/** * Constructor for this class. It takes a MIME type as parameter. * * @param renderer the current renderer * @param mime the MIME type of the output that's generated. */
public RendererContext(AbstractRenderer renderer, String mime) { this.renderer = renderer; this.mime = mime; }
Returns:Returns the renderer.
/** * @return Returns the renderer. */
public AbstractRenderer getRenderer() { return renderer; }
Returns the MIME type associated with this RendererContext.
Returns: The MIME type (ex. application/pdf)
/** * Returns the MIME type associated with this RendererContext. * * @return The MIME type (ex. application/pdf) */
public String getMimeType() { return mime; }
Sets the user agent.
Params:
  • ua – The user agent
/** * Sets the user agent. * * @param ua The user agent */
public void setUserAgent(FOUserAgent ua) { userAgent = ua; }
Returns the user agent.
Returns: The user agent
/** * Returns the user agent. * * @return The user agent */
public FOUserAgent getUserAgent() { return userAgent; }
Sets a property on the RendererContext.
Params:
  • name – The key of the property
  • val – The value of the property
/** * Sets a property on the RendererContext. * * @param name The key of the property * @param val The value of the property */
public void setProperty(String name, Object val) { props.put(name, val); }
Returns a property from the RendererContext.
Params:
  • prop – The key of the property to return.
Returns: The requested value, null if it doesn't exist.
/** * Returns a property from the RendererContext. * * @param prop The key of the property to return. * @return The requested value, <code>null</code> if it doesn't exist. */
public Object getProperty(String prop) { return props.get(prop); }
Wrap the render context to allow easier access to its values.
Params:
  • context – the renderer context
Returns:the generic renderer context wrapper
/** * Wrap the render context to allow easier access to its values. * * @param context the renderer context * @return the generic renderer context wrapper */
public static RendererContextWrapper wrapRendererContext(RendererContext context) { RendererContextWrapper wrapper = new RendererContextWrapper(context); return wrapper; }
{@inheritDoc}
/** {@inheritDoc} **/
public String toString() { StringBuffer stringBuffer = new StringBuffer("RendererContext{\n"); for (Object o : props.keySet()) { String key = (String) o; Object value = props.get(key); stringBuffer.append("\t" + key + "=" + value + "\n"); } stringBuffer.append("}"); return stringBuffer.toString(); }
Base class for a wrapper around RendererContext to access its properties in a type-safe, renderer-specific way.
/** * Base class for a wrapper around RendererContext to access its properties in a type-safe, * renderer-specific way. */
public static class RendererContextWrapper {
The wrapped RendererContext
/** The wrapped RendererContext */
protected RendererContext context;
Main constructor
Params:
  • context – the RendererContent instance
/** * Main constructor * @param context the RendererContent instance */
public RendererContextWrapper(RendererContext context) { this.context = context; }
Returns:the user agent
/** @return the user agent */
public FOUserAgent getUserAgent() { return context.getUserAgent(); }
Returns:the currentXPosition
/** @return the currentXPosition */
public int getCurrentXPosition() { return (Integer) context.getProperty(RendererContextConstants.XPOS); }
Returns:the currentYPosition
/** @return the currentYPosition */
public int getCurrentYPosition() { return (Integer) context.getProperty(RendererContextConstants.YPOS); }
Returns:the width of the image
/** @return the width of the image */
public int getWidth() { return (Integer) context.getProperty(RendererContextConstants.WIDTH); }
Returns:the height of the image
/** @return the height of the image */
public int getHeight() { return (Integer) context.getProperty(RendererContextConstants.HEIGHT); }
Returns:the foreign attributes
/** @return the foreign attributes */
public Map getForeignAttributes() { return (Map)context.getProperty(RendererContextConstants.FOREIGN_ATTRIBUTES); }
{@inheritDoc}
/** {@inheritDoc} */
public String toString() { return "RendererContextWrapper{" + "userAgent=" + getUserAgent() + "x=" + getCurrentXPosition() + "y=" + getCurrentYPosition() + "width=" + getWidth() + "height=" + getHeight() + "foreignAttributes=" + getForeignAttributes() + "}"; } } }