WorkflowScript.java
- /*
- * This software was designed and created by Jason Carroll.
- * Copyright (c) 2002, 2003, 2004 Jason Carroll.
- * The author can be reached at jcarroll@cowsultants.com
- * ITracker website: http://www.cowsultants.com
- * ITracker forums: http://www.cowsultants.com/phpBB/index.php
- *
- * This program is free software; you can redistribute it and/or modify
- * it only under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- package org.itracker.model;
- import org.apache.commons.lang.builder.ToStringBuilder;
- /**
- * A BeanShell script to execute on a particular event.
- * <p> The script is interpreted on it's event fired<br />
- * in the environment there is available:</p>
- * <ul> <li>event (event type-id)
- * </li><li>fieldId (is a field id associated with event)
- * </li><li>currentValue (is a set of current values)
- * </li><li>currentErrors (is a container for occurred errors)
- * </li><li>currentForm (is a form instance, holding values)
- * </li> </ul>
- * <p>
- * currentValue will be applied to the currentForm, property field</p>
- * </p>
- * <p>
- * This allows to dynamically customize the system by executing custom actions
- * at given extension points where an event is generated.
- * </p>
- * <p>
- * A WorkflowScript needs to be configured to be executed for a particular field
- * of a Project. This configuration is represented as a ProjectScript. <br>
- * WorkflowScript - ProjectScript is a 1-N relationship.
- * </p>
- *
- * @author ready
- * @see ProjectScript
- */
- public class WorkflowScript extends AbstractEntity {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- public enum ScriptLanguage {
- BeanShell,
- Groovy
- }
- private String name;
- private String script;
- private int event;
- // TODO: what's the expected type here?
- // private Collection projectFields;
- private int numUses;
- private ScriptLanguage language;
- /*
- * This class used to have a <code>projectFields</code> attribute, which
- * was a Collection<ProjectScript>. This has been removed because the
- * association WorkflowScript - ProjectScript doesn't need to be navigatable
- * in this direction.
- */
- public int getEvent() {
- return event;
- }
- public void setEvent(int event) {
- this.event = event;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- /*
- * public Collection getProjectFields() { return projectFields; }
- *
- * public void setProjectFields(Collection projectFields) {
- * this.projectFields = projectFields; }
- */
- public String getScript() {
- return script;
- }
- public void setScript(String script) {
- this.script = script;
- }
- public ScriptLanguage getLanguage() {
- return language;
- }
- public void setLanguage(ScriptLanguage language) {
- this.language = language;
- }
- @Override
- public String toString() {
- return new ToStringBuilder(this).append("id", getId()).append("name", getName())
- .append("event", getEvent()).append("language", getLanguage()).append(
- "script", getScript()).toString();
- }
- }