/*
 * 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: EventMethodModel.java 1761021 2016-09-16 11:40:57Z ssteiner $ */

package org.apache.fop.events.model;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;

import org.apache.xmlgraphics.util.XMLizable;

Represents an event method. Each method in an event producer interface will result in one instance of EventMethodModel.
/** * Represents an event method. Each method in an event producer interface will result in one * instance of <code>EventMethodModel</code>. */
public class EventMethodModel implements Serializable, XMLizable { private static final long serialVersionUID = -7548882973341444354L; private String methodName; private EventSeverity severity; private List params = new java.util.ArrayList(); private String exceptionClass;
Creates an new instance.
Params:
  • methodName – the event method's name
  • severity – the event severity
/** * Creates an new instance. * @param methodName the event method's name * @param severity the event severity */
public EventMethodModel(String methodName, EventSeverity severity) { this.methodName = methodName; this.severity = severity; }
Adds a method parameter.
Params:
  • param – the method parameter
/** * Adds a method parameter. * @param param the method parameter */
public void addParameter(Parameter param) { this.params.add(param); }
Adds a method parameter.
Params:
  • type – the type of the parameter
  • name – the name of the parameter
Returns:the resulting Parameter instance
/** * Adds a method parameter. * @param type the type of the parameter * @param name the name of the parameter * @return the resulting Parameter instance */
public Parameter addParameter(Class type, String name) { Parameter param = new Parameter(type, name); addParameter(param); return param; }
Sets the event method name.
Params:
  • name – the event name
/** * Sets the event method name. * @param name the event name */
public void setMethodName(String name) { this.methodName = name; }
Returns the event method name
Returns:the event name
/** * Returns the event method name * @return the event name */
public String getMethodName() { return this.methodName; }
Sets the event's severity level.
Params:
  • severity – the severity
/** * Sets the event's severity level. * @param severity the severity */
public void setSeverity(EventSeverity severity) { this.severity = severity; }
Returns the event's severity level.
Returns:the severity
/** * Returns the event's severity level. * @return the severity */
public EventSeverity getSeverity() { return this.severity; }
Returns an unmodifiable list of parameters for this event method.
Returns:the list of parameters
/** * Returns an unmodifiable list of parameters for this event method. * @return the list of parameters */
public List getParameters() { return Collections.unmodifiableList(this.params); }
Sets the primary exception class for this event method. Note: Not all event methods throw exceptions!
Params:
  • exceptionClass – the exception class
/** * Sets the primary exception class for this event method. Note: Not all event methods throw * exceptions! * @param exceptionClass the exception class */
public void setExceptionClass(String exceptionClass) { this.exceptionClass = exceptionClass; }
Returns the primary exception class for this event method. This method returns null if the event is only informational or just a warning.
Returns:the primary exception class or null
/** * Returns the primary exception class for this event method. This method returns null if * the event is only informational or just a warning. * @return the primary exception class or null */
public String getExceptionClass() { return this.exceptionClass; }
{@inheritDoc}
/** {@inheritDoc} */
public void toSAX(ContentHandler handler) throws SAXException { AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "name", "name", "CDATA", getMethodName()); atts.addAttribute("", "severity", "severity", "CDATA", getSeverity().getName()); if (getExceptionClass() != null) { atts.addAttribute("", "exception", "exception", "CDATA", getExceptionClass()); } String elName = "method"; handler.startElement("", elName, elName, atts); for (Object param : this.params) { ((XMLizable) param).toSAX(handler); } handler.endElement("", elName, elName); }
Represents an event parameter.
/** * Represents an event parameter. */
public static class Parameter implements Serializable, XMLizable { private static final long serialVersionUID = 6062500277953887099L; private Class type; private String name;
Creates a new event parameter.
Params:
  • type – the parameter type
  • name – the parameter name
/** * Creates a new event parameter. * @param type the parameter type * @param name the parameter name */
public Parameter(Class type, String name) { this.type = type; this.name = name; }
Returns the parameter type.
Returns:the parameter type
/** * Returns the parameter type. * @return the parameter type */
public Class getType() { return this.type; }
Returns the parameter name.
Returns:the parameter name
/** * Returns the parameter name. * @return the parameter name */
public String getName() { return this.name; }
{@inheritDoc}
/** {@inheritDoc} */
public void toSAX(ContentHandler handler) throws SAXException { AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "type", "type", "CDATA", getType().getName()); atts.addAttribute("", "name", "name", "CDATA", getName()); String elName = "parameter"; handler.startElement("", elName, elName, atts); handler.endElement("", elName, elName); } } }