001: /*--
002:
003: Copyright (C) 2002-2005 Adrian Price.
004: All rights reserved.
005:
006: Redistribution and use in source and binary forms, with or without
007: modification, are permitted provided that the following conditions
008: are met:
009:
010: 1. Redistributions of source code must retain the above copyright
011: notice, this list of conditions, and the following disclaimer.
012:
013: 2. Redistributions in binary form must reproduce the above copyright
014: notice, this list of conditions, and the disclaimer that follows
015: these conditions in the documentation and/or other materials
016: provided with the distribution.
017:
018: 3. The names "OBE" and "Open Business Engine" must not be used to
019: endorse or promote products derived from this software without prior
020: written permission. For written permission, please contact
021: adrianprice@sourceforge.net.
022:
023: 4. Products derived from this software may not be called "OBE" or
024: "Open Business Engine", nor may "OBE" or "Open Business Engine"
025: appear in their name, without prior written permission from
026: Adrian Price (adrianprice@users.sourceforge.net).
027:
028: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
029: WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
030: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
031: DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
032: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
033: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
034: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
035: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
036: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
037: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
038: POSSIBILITY OF SUCH DAMAGE.
039:
040: For more information on OBE, please see
041: <http://obe.sourceforge.net/>.
042:
043: */
044:
045: package org.obe.xpdl.model.ext;
046:
047: /**
048: * Describes a FOR_EACH iterator loop.
049: *
050: * @author Adrian Price
051: */
052: public final class ForEach extends LoopBody {
053: private static final long serialVersionUID = -4577209367329809689L;
054:
055: private String _dataField;
056: private String _expr;
057:
058: /**
059: * Constructs a ForEach loop body.
060: */
061: public ForEach() {
062: }
063:
064: /**
065: * Constructs a ForEach loop body.
066: *
067: * @param dataField The data field name.
068: * @param expr The collection expression.
069: */
070: public ForEach(String dataField, String expr) {
071: _dataField = dataField;
072: _expr = expr;
073: }
074:
075: /**
076: * Returns the name of the data field with which to iterate.
077: *
078: * @return Data field name.
079: */
080: public String getDataField() {
081: return _dataField;
082: }
083:
084: /**
085: * Sets the name of the data field with which to iterate.
086: *
087: * @param dataField The data field name.
088: */
089: public void setDataField(String dataField) {
090: _dataField = dataField;
091: }
092:
093: /**
094: * Returns an expression that defines the collection over which to iterate.
095: *
096: * @return The collection expression.
097: */
098: public String getExpr() {
099: return _expr;
100: }
101:
102: /**
103: * Sets the expression that defines the collection over which to iterate.
104: * The expression must yield an array, a collection or a map when evaluated.
105: *
106: * @param expr The collection expression.
107: */
108: public void setExpr(String expr) {
109: _expr = expr;
110: }
111:
112: public int getType() {
113: return FOR_EACH;
114: }
115:
116: public String toString() {
117: return "ForEach[dataField=" + _dataField + ", expr=" + _expr
118: + ']';
119: }
120: }
|