1 /* 2 * Copyright 1999-2001,2004 The Apache Software Foundation. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package org.apache.commons.workflow.core; 18 19 20 import org.apache.commons.workflow.Context; 21 import org.apache.commons.workflow.StepException; 22 import org.apache.commons.workflow.base.BaseStep; 23 24 25 /** 26 * <p>Push the specified String value onto the top of the evaluation 27 * stack.</p> 28 * 29 * <p>Supported Attributes:</p> 30 * <ul> 31 * <li><strong>value</strong> - String value to be pushed.</li> 32 * </ul> 33 * 34 * @version $Revision: 155475 $ $Date: 2005-02-26 13:31:11 +0000 (Sat, 26 Feb 2005) $ 35 * @author Craig R. McClanahan 36 */ 37 38 public class StringStep extends BaseStep { 39 40 41 // ----------------------------------------------------------= Constructors 42 43 44 /** 45 * Construct a default instance of this Step. 46 */ 47 public StringStep() { 48 49 super(); 50 51 } 52 53 54 /** 55 * Construct an instance of this Step with the specified identifier. 56 * 57 * @param id Step identifier 58 */ 59 public StringStep(String id) { 60 61 super(); 62 setId(id); 63 64 } 65 66 67 /** 68 * Construct a fully configured instance of this Step. 69 * 70 * @param id Step identifier 71 * @param value String value to be pushed 72 */ 73 public StringStep(String id, String value) { 74 75 super(); 76 setId(id); 77 setValue(value); 78 79 } 80 81 82 // ------------------------------------------------------------- Properties 83 84 85 /** 86 * The string value to be pushed. 87 */ 88 protected String value = null; 89 90 public String getValue() { 91 return (this.value); 92 } 93 94 public void setValue(String value) { 95 this.value = value; 96 } 97 98 99 // --------------------------------------------------------- Public Methods 100 101 102 /** 103 * Perform the executable actions related to this Step, in the context of 104 * the specified Context. 105 * 106 * @param context The Context that is tracking our execution state 107 * 108 * @exception StepException if a processing error has occurred 109 */ 110 public void execute(Context context) throws StepException { 111 112 // Validate that a value has been specified 113 if (value == null) 114 throw new StepException("No value specified", this); 115 116 // Push the value onto the evaluation stack 117 context.push(value); 118 119 } 120 121 122 /** 123 * Render a string representation of this Step. 124 */ 125 public String toString() { 126 127 StringBuffer sb = new StringBuffer("<core:string"); 128 if (getId() != null) { 129 sb.append(" id=\""); 130 sb.append(getId()); 131 sb.append("\""); 132 } 133 if (getValue() != null) { 134 sb.append(" value=\""); 135 sb.append(getValue()); 136 sb.append("\""); 137 } 138 sb.append("/>"); 139 return (sb.toString()); 140 141 } 142 143 144 }