package test.com.jscape.action;

import com.jscape.inet.mft.workflow.AbstractAction;
import com.jscape.util.reflection.PropertyDescriptor;
import com.jscape.util.reflection.StringField;

public class HelloWorld extends AbstractAction {
	
	private static final String DESCRIPTION = "Prints greeting message to System.out";	
	private static final PropertyDescriptor[] DESCRIPTORS = {
			new PropertyDescriptor("Greeting", new StringField(), true, false)				
	    };
	private String greeting;
	
	
	/*
	 * Constructs HelloWorld instance with properties loaded from HelloWorldHelp.properties
	 */
	public HelloWorld() {
		super("test.com.jscape.action.HelloWorldHelp");
	}
	
	
	
	/*
	 * Gets greeting
	 */
	public String getGreeting() {
		return greeting;
	}

	/*
	 * Sets greeting
	 */
	public void setGreeting(String greeting) {
		this.greeting = greeting;
	}

	
	
	/*
	 * Returns description of trigger action
	 * @see com.jscape.inet.mft.workflow.Action#getDescription()
	 */
	public String getDescription() {
		return DESCRIPTION;
	}

	/*
	 * Returns property descriptors for trigger action
	 * @see com.jscape.inet.mft.workflow.Action#getPropertyDescriptors()
	 */
	public PropertyDescriptor[] getPropertyDescriptors() {
		return DESCRIPTORS;
	}
	
	/*
	 * Executes trigger action
	 * @see com.jscape.inet.mft.workflow.AbstractAction#execute()
	 */
	protected void execute() throws Exception {
		System.out.println("Hello World!");
		this.resultMessage = String.format("the message '%s' has been printed", this.greeting);
	}

}
