001 /* 002 * Copyright 1999-2001,2004 The Apache Software Foundation. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 package org.apache.commons.workflow.core; 018 019 020 import org.apache.commons.workflow.Context; 021 import org.apache.commons.workflow.StepException; 022 import org.apache.commons.workflow.base.BaseStep; 023 024 025 /** 026 * <p>Push the specified String value onto the top of the evaluation 027 * stack.</p> 028 * 029 * <p>Supported Attributes:</p> 030 * <ul> 031 * <li><strong>value</strong> - String value to be pushed.</li> 032 * </ul> 033 * 034 * @version $Revision: 155475 $ $Date: 2005-02-26 13:31:11 +0000 (Sat, 26 Feb 2005) $ 035 * @author Craig R. McClanahan 036 */ 037 038 public class StringStep extends BaseStep { 039 040 041 // ----------------------------------------------------------= Constructors 042 043 044 /** 045 * Construct a default instance of this Step. 046 */ 047 public StringStep() { 048 049 super(); 050 051 } 052 053 054 /** 055 * Construct an instance of this Step with the specified identifier. 056 * 057 * @param id Step identifier 058 */ 059 public StringStep(String id) { 060 061 super(); 062 setId(id); 063 064 } 065 066 067 /** 068 * Construct a fully configured instance of this Step. 069 * 070 * @param id Step identifier 071 * @param value String value to be pushed 072 */ 073 public StringStep(String id, String value) { 074 075 super(); 076 setId(id); 077 setValue(value); 078 079 } 080 081 082 // ------------------------------------------------------------- Properties 083 084 085 /** 086 * The string value to be pushed. 087 */ 088 protected String value = null; 089 090 public String getValue() { 091 return (this.value); 092 } 093 094 public void setValue(String value) { 095 this.value = value; 096 } 097 098 099 // --------------------------------------------------------- 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 }