001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *     http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.commons.scxml2.model;
018
019import org.apache.commons.scxml2.ActionExecutionContext;
020import org.apache.commons.scxml2.SCXMLExpressionException;
021import org.apache.commons.scxml2.TriggerEvent;
022
023/**
024 * The class in this SCXML object model that corresponds to the
025 * <raise> SCXML element.
026 *
027 * @since 2.0
028 */
029public class Raise extends Action {
030
031    /**
032     * Serial version UID.
033     */
034    private static final long serialVersionUID = 1L;
035
036    /**
037     * The event to be generated.
038     */
039    private String event;
040
041    /**
042     * Constructor.
043     */
044    public Raise() {
045        super();
046    }
047
048    /**
049     * Get the event.
050     *
051     * @return Returns the event.
052     */
053    public final String getEvent() {
054        return event;
055    }
056
057    /**
058     * Set the event.
059     *
060     * @param event The event to set.
061     */
062    public final void setEvent(final String event) {
063        this.event = event;
064    }
065
066    /**
067     * {@inheritDoc}
068     */
069    @Override
070    public void execute(ActionExecutionContext exctx) throws ModelException, SCXMLExpressionException {
071
072        if (exctx.getAppLog().isDebugEnabled()) {
073            exctx.getAppLog().debug("<raise>: Adding event '" + event + "' to list of derived events.");
074        }
075        TriggerEvent ev = new TriggerEvent(event, TriggerEvent.SIGNAL_EVENT);
076        exctx.getInternalIOProcessor().addEvent(ev);
077
078    }
079}