You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2006/05/01 23:38:03 UTC

svn commit: r398694 [5/9] - in /incubator/ode/trunk: ./ bpel-bom/ bpel-bom/src/ bpel-bom/src/main/ bpel-bom/src/main/java/ bpel-bom/src/main/java/org/ bpel-bom/src/main/java/org/apache/ bpel-bom/src/main/java/org/apache/ode/ bpel-bom/src/main/java/org/...

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/FsaHandler.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/FsaHandler.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/FsaHandler.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/FsaHandler.java Mon May  1 14:37:44 2006
@@ -0,0 +1,159 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+import org.apache.ode.sax.evt.Characters;
+import org.apache.ode.sax.evt.EndElement;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.utils.NamespaceStack;
+
+import javax.xml.namespace.QName;
+
+import org.xml.sax.*;
+
+public class FsaHandler implements ContentHandler {
+
+  private FSA _f;
+  private NamespaceStack _ns;
+  private Locator _loc; 
+  
+  private StringBuffer _buf;
+  
+  public FsaHandler(FSA f) {
+    _f = f;
+  }
+  
+  /**
+   * @see org.xml.sax.ContentHandler#setDocumentLocator(org.xml.sax.Locator)
+   */
+  public void setDocumentLocator(Locator locator) {
+    _loc = locator;
+  }
+
+  public void setParseContext(ParseContext pc ){
+    _f.setParseContext(pc);
+  }
+  
+  /**
+   * @see org.xml.sax.ContentHandler#startDocument()
+   */
+  public void startDocument() throws SAXException {
+    if (_f.getParseContext() == null) {
+      throw new IllegalStateException(
+          "The parse context must be configured prior to calling parse().");
+      }
+    _f.begin();
+    _ns = new NamespaceStack();
+    _buf = new StringBuffer();
+    if (_loc != null && _loc.getSystemId() != null) {
+      _f.getParseContext().setBaseUri(_loc.getSystemId());
+    } else if (_loc != null && _loc.getPublicId() != null) {
+      _f.getParseContext().setBaseUri(_loc.getPublicId());
+    }
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#endDocument()
+   */
+  public void endDocument() throws SAXException {
+    _f.end();
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#startPrefixMapping(java.lang.String, java.lang.String)
+   */
+  public void startPrefixMapping(String prefix, String uri) throws SAXException {
+    _ns.declarePrefix(prefix,uri);
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#endPrefixMapping(java.lang.String)
+   */
+  public void endPrefixMapping(String prefix) throws SAXException {
+    // do nothing.
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
+   */
+  public void startElement(String namespaceURI, String localName, String qName,
+      Attributes atts) throws SAXException {
+    checkflush();
+    try {
+      _f.handleSaxEvent(new StartElement(
+          new QName(namespaceURI,localName), new XmlAttributes(atts),
+          _loc,_ns.toNSContext()));
+    } catch (ParseException pe) {
+      ParseError per = pe.getParseError();
+      throw new SAXParseException(per.getMessage(),null,per.getLocationURI(),
+          per.getLine(),per.getColumn());
+    }
+    _ns.pushNewContext();
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
+   */
+  public void endElement(String namespaceURI, String localName, String qName)
+      throws SAXException {
+    checkflush();
+    _ns.pop();
+    try {
+      _f.handleSaxEvent(new EndElement(
+          new QName(namespaceURI,localName),_loc,_ns.toNSContext()));
+    } catch (ParseException pe) {
+      ParseError per = pe.getParseError();
+      throw new SAXParseException(per.getMessage(),null,per.getLocationURI(),
+          per.getLine(),per.getColumn());
+    }
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#characters(char[], int, int)
+   */
+  public void characters(char[] ch, int start, int length) throws SAXException {
+    _buf.append(ch,start,length);
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#ignorableWhitespace(char[], int, int)
+   */
+  public void ignorableWhitespace(char[] ch, int start, int length)
+      throws SAXException {
+    _buf.append(ch,start,length);
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#processingInstruction(java.lang.String, java.lang.String)
+   */
+  public void processingInstruction(String target, String data)
+      throws SAXException {
+    checkflush();
+    // TODO: What to do?
+  }
+
+  /**
+   * @see org.xml.sax.ContentHandler#skippedEntity(java.lang.String)
+   */
+  public void skippedEntity(String name) throws SAXException {
+    checkflush();
+    // TODO: what to do?
+  }
+  
+  private void checkflush() throws SAXException {
+    if (_buf.length() != 0) {
+      try {
+        _f.handleSaxEvent(new Characters(_buf.toString(),_loc,_ns.toNSContext()));
+      } catch (ParseException pe) {
+        ParseError per = pe.getParseError();
+        throw new SAXParseException(per.getMessage(),null,per.getLocationURI(),
+            per.getLine(),per.getColumn());
+      }
+      _buf.setLength(0);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/GraphProvider.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/GraphProvider.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/GraphProvider.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/GraphProvider.java Mon May  1 14:37:44 2006
@@ -0,0 +1,17 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+import javax.xml.namespace.QName;
+
+public interface GraphProvider {
+  
+  public StateFactory getStateFactory(String name) ;
+    
+  public String getQNameEdge(String src, QName child);
+  
+  public String getOtherEdge(String src, String uri);
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseContext.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseContext.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseContext.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseContext.java Mon May  1 14:37:44 2006
@@ -0,0 +1,23 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+import org.apache.ode.bom.api.BpelObject;
+import org.apache.ode.sax.evt.SaxEvent;
+
+public interface ParseContext {
+  
+  public void setBaseUri(String uri);
+  public String getBaseUri();
+  public void parseError(ParseError pe) throws ParseException;
+  public void parseError(short severity, SaxEvent se, String key, String msg)
+    throws ParseException;
+  public void parseError(short severity, BpelObject bo, String key, String msg)
+    throws ParseException;
+  public void parseError(short severity, String key, String msg)
+    throws ParseException;
+  
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseError.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseError.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseError.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseError.java Mon May  1 14:37:44 2006
@@ -0,0 +1,45 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+
+public interface ParseError {
+  /** Fatal severity level. */
+  public static final short FATAL = 3;
+
+  /** Error severity level. */
+  public static final short ERROR = 2;
+
+  /** Warning severity level. */
+  public static final short WARNING = 1;
+
+  /** Get the location (URI or file name) of the error/warning. */
+  public String getLocationURI();
+
+  /** Get the line number of the error/warning. */
+  public int getLine();
+
+  /** Get the column number of the error/warning. */
+  public int getColumn();
+
+  /**
+   * Get the severity of the error/warning.
+   * @return on of {@link #FATAL}, {@link #ERROR}, or {@link #WARNING}
+   */
+  public short getSeverity();
+
+  /**
+   * Get the internationalized error/warning message.
+   * @return internationalized error/warning message
+   */
+  public String getMessage();
+
+  /**
+   * Get the internationalization message key used to create the error message.
+   * @return internationalization message key
+   */
+  public String getKey();
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseException.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseException.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseException.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/ParseException.java Mon May  1 14:37:44 2006
@@ -0,0 +1,27 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+import org.xml.sax.SAXException;
+
+public class ParseException extends SAXException {
+  
+  private static final long serialVersionUID = 1L;
+	private ParseError _pe;
+  
+  public ParseException(ParseError pe ){
+    super("");
+    _pe = pe;
+  }
+  
+  public ParseError getParseError() {
+    return _pe;
+  }
+  
+  public String getMessage() {
+    return _pe.getMessage();
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/State.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/State.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/State.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/State.java Mon May  1 14:37:44 2006
@@ -0,0 +1,72 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+import org.apache.ode.sax.evt.SaxEvent;
+import org.apache.ode.sax.evt.StartElement;
+
+
+/**
+ * <p>
+ * A &quot;state&quot; in the parsing of an XML document.  The lifecycle of an
+ * instance is managed by an {@link org.apache.ode.sax.fsa.FSA} that is responsible for
+ * creating, configuring, passing events, and calling lifecycle methods.
+ * </p>
+ */
+public interface State {
+  /**
+   * Consume a SAX event.
+   * @param se the encapsulated event
+   * @throws ParseException if the event is invalid, e.g., an inappropriate element.
+   */
+  public void handleSaxEvent(SaxEvent se) throws ParseException;
+  
+  /**
+   * <p>
+   * Consume a completed child element.  Most likely, an instance will use the type
+   * of the child (via {@link #getType()}) to determine how to handle it.
+   * </p>  
+   * @param pn the <code>State</code> that holds the child.
+   * @throws ParseException if the child is invalid, e.g., not properly configured.
+   */
+  public void handleChildCompleted(State pn) throws ParseException;
+  
+  /**
+   * <p>
+   * Obtain the context for the current parse operation, e.g., to report errors or
+   * warnings.  The {@link ParseContext} for an instance is set when it is created.
+   * </p>
+   * @return the current <code>ParseContext</code> instance.
+   * @see StateFactory#newInstance(StartElement, ParseContext)
+   */
+  public ParseContext getParseContext();
+  
+  /**
+   * <p>
+   * Obtain a factory to create new instance of this state.
+   * </p>
+   * @return the factory instance.
+   */
+  public StateFactory getFactory();
+  
+  /**
+   * <p>
+   * Get the type of the <code>State</code> as an <code>int</code>.  This will
+   * depend on the purpose of the given application, i.e., the type <code>1</code>
+   * will be different from parser to parser.
+   * </p>
+   * @return the type key for the <code>State</code>
+   */
+  public int getType();
+  
+  /**
+   * <p>
+   * A finalization hook for cleaning up resources and finalizing the values of
+   * properties.  The default implementation will do nothing.
+   * </p>
+   */
+  public void done();
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/StateFactory.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/StateFactory.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/StateFactory.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/StateFactory.java Mon May  1 14:37:44 2006
@@ -0,0 +1,24 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa;
+
+import org.apache.ode.sax.evt.StartElement;
+
+
+/**
+ * Responsible for creating instances of a <code>State</code> with specific context.
+ */
+public interface StateFactory {
+  
+  /**
+   * Create an instance of a {@link State} with the specified context.
+   * @param se the <code>startElement</code> SAX Event that caused the creation.
+   * @param pc the {@link ParseContext} for the current parse.
+   * @return the configured instance.
+   * @throws ParseException if the configuration is invalid.
+   */
+  public State newInstance(StartElement se, ParseContext pc) throws ParseException;
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ActivityStateI.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ActivityStateI.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ActivityStateI.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ActivityStateI.java Mon May  1 14:37:44 2006
@@ -0,0 +1,17 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Activity;
+
+
+/**
+ * Marker interface.
+ */
+interface ActivityStateI {
+  Activity getActivity();
+}
+

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BaseBpelState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BaseBpelState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BaseBpelState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BaseBpelState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,93 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.bom.api.JoinFailureSuppressor;
+import org.apache.ode.bom.api.Process;
+import org.apache.ode.sax.fsa.AbstractState;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.sax.evt.attspec.FilterSpec;
+import org.apache.ode.sax.evt.attspec.XmlAttributeSpec;
+
+abstract class BaseBpelState extends AbstractState {
+
+  public static final int START_STATE = -1;
+  
+  public static final int BPEL11_PROCESS = 1000;
+  public static final int BPEL11_PARTNERLINKS = 1001;
+  public static final int BPEL11_PARTNERLINK = 1002;
+  public static final int BPEL11_PARTNERS = 1003;
+  public static final int BPEL11_PARTNER = 1004;
+  public static final int BPEL11_VARIABLES = 1005;
+  public static final int BPEL11_VARIABLE = 1006;
+  public static final int BPEL11_CORRELATIONSETS = 1007;
+  public static final int BPEL11_CORRELATIONSET = 1008;
+  public static final int BPEL11_FAULTHANDLERS = 1009;
+  public static final int BPEL11_CATCH = 1010;
+  public static final int BPEL11_CATCHALL = 1011;
+  public static final int BPEL11_COMPENSATIONHANDLER = 1012;
+  public static final int BPEL11_EVENTHANDLERS = 1013;
+  public static final int BPEL11_ONMESSAGE = 1014;
+  public static final int BPEL11_CORRELATIONS = 1015;
+  public static final int BPEL11_ONALARM = 1016;
+  public static final int BPEL11_EMPTY = 1017;
+  public static final int BPEL11_INVOKE = 1018;
+  public static final int BPEL11_RECEIVE = 1019;
+  public static final int BPEL11_REPLY = 1020;
+  public static final int BPEL11_ASSIGN = 1021;
+  public static final int BPEL11_COPY = 1022;
+  public static final int BPEL11_FROM = 1023;
+  public static final int BPEL11_TO = 1024;
+  public static final int BPEL11_WAIT = 1025;
+  public static final int BPEL11_THROW = 1026;
+  public static final int BPEL11_TERMINATE = 1027;
+  public static final int BPEL11_FLOW = 1028;
+  public static final int BPEL11_SWITCH = 1029;
+  public static final int BPEL11_WHILE = 1030;
+  public static final int BPEL11_SEQUENCE = 1031;
+  public static final int BPEL11_PICK = 1032;
+  public static final int BPEL11_SCOPE = 1033;
+  public static final int BPEL11_CASE = 1034;
+  public static final int BPEL11_COMPENSATE = 1035;
+  public static final int BPEL11_SOURCE = 1036;
+  public static final int BPEL11_TARGET = 1037;
+  public static final int BPEL11_LINKS = 1038;
+  public static final int BPEL11_LINK = 1039;
+  public static final int BPEL11_CORRELATION = 1040;
+  public static final int BPEL11_OTHERWISE = 1041;
+  
+  public static final int BPEL20_PROCESS = 2000;
+
+  protected static final XmlAttributeSpec BPEL11_ACTIVITY_ATTS = new FilterSpec(
+      new String[] {},
+      new String[] {"name","joinCondition","suppressJoinFailure"});
+  
+ 
+  
+  protected BaseBpelState(ParseContext pc) {
+    super(pc);
+  }
+  
+  protected boolean checkYesNo(String val) {
+    return val != null && val.equals("yes");
+  }
+ 
+  protected short getSuppressJoinFailure(XmlAttributes atts) {
+    if (!atts.hasAtt("suppressJoinFailure")) {
+      return JoinFailureSuppressor.SUPJOINFAILURE_NOTSET;
+    } else {
+      String sjf = atts.getValue("suppressJoinFailure");
+      return checkYesNo(sjf)?Process.SUPJOINFAILURE_YES:Process.SUPJOINFAILURE_NO; 
+    }    
+  }
+  
+  protected short getInitiateYesNo(XmlAttributes atts) {
+    return checkYesNo(atts.getValue("initiate"))?Correlation.INITIATE_YES:Correlation.INITIATE_NO;
+  }
+  
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11AssignActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11AssignActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11AssignActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11AssignActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,56 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ * 
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.impl.nodes.AssignActivityImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11AssignActivityState extends Bpel11BaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  Bpel11AssignActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(se, pc);
+  }
+
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn.getType() == BPEL11_COPY) {
+      ((AssignActivityImpl)getActivity()).addCopy(((Bpel11CopyState)pn).getCopy());
+    }
+    else {
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  protected Activity createActivity(StartElement se) throws ParseException {
+    return new AssignActivityImpl();
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_ASSIGN;
+  }
+
+  static class Factory implements StateFactory {
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11AssignActivityState(se, pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11BaseActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11BaseActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11BaseActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11BaseActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,67 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+abstract class Bpel11BaseActivityState extends BaseBpelState implements ActivityStateI {
+
+  private Activity _activity;
+  
+  protected static final String[] BPEL11_BASE_ACTIVITY_ATTS = new String[] {
+    "name","suppressJoinFailure","joinCondition"
+  };  
+  
+  protected Bpel11BaseActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _activity = createActivity(se);
+    XmlAttributes atts = se.getAttributes();
+
+    _activity.setNamespaceContext(se.getNamespaceContext());
+    _activity.setLineNo(se.getLocation().getLineNumber());
+    
+    if (atts.hasAtt("name")) {
+      _activity.setName(atts.getValue("name"));
+    }
+    if(atts.hasAtt("joinCondition")){
+      ExpressionImpl expr = new ExpressionImpl();
+      expr.setNamespaceContext(se.getNamespaceContext());
+      expr.setLineNo(se.getLocation().getLineNumber());
+      expr.setXPathString(atts.getValue("joinCondition"));
+    	_activity.setJoinCondition(expr);
+    }
+    _activity.setSuppressJoinFailure(getSuppressJoinFailure(atts));
+  }
+  
+  protected abstract Activity createActivity(StartElement se) throws ParseException;
+  
+  public Activity getActivity() {
+    return _activity;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch (pn.getType()) {
+      case BPEL11_TARGET:
+        _activity.addTarget(((Bpel11LinkTargetState)pn).getTarget());
+        break;
+      case BPEL11_SOURCE:
+        _activity.addSource(((Bpel11LinkSourceState)pn).getSource());
+        break;
+    default:
+      super.handleChildCompleted(pn);
+    }
+  }
+
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CaseState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CaseState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CaseState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CaseState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,59 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Expression;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11CaseState extends Bpel11OtherwiseState {
+
+  private static final StateFactory _factory = new Factory();
+    
+  private Expression _e;
+  
+  Bpel11CaseState(StartElement se, ParseContext pc) throws ParseException {
+    super(se,pc);
+    XmlAttributes atts = se.getAttributes();
+    if (atts.hasAtt("condition")) {
+    	_e = new ExpressionImpl();
+      _e.setNamespaceContext(se.getNamespaceContext());
+      _e.setXPathString(atts.getValue("condition"));
+      _e.setLineNo(se.getLocation().getLineNumber());
+    }
+  }
+  
+  public Expression getExpression() {
+    return _e;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CASE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se,ParseContext pc) throws ParseException {
+      return new Bpel11CaseState(se,pc);
+    }
+  }
+
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchAllState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchAllState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchAllState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchAllState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,60 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Catch;
+import org.apache.ode.bom.impl.nodes.CatchImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11CatchAllState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CatchImpl _c;
+  
+  Bpel11CatchAllState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _c = new CatchImpl();
+    _c.setNamespaceContext(se.getNamespaceContext());
+    _c.setLineNo(se.getLocation().getLineNumber());
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _c.setActvity(((ActivityStateI)pn).getActivity());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  public Catch getCatch() {
+    return _c;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CATCHALL;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CatchAllState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CatchState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,64 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Catch;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.sax.evt.attspec.FilterSpec;
+import org.apache.ode.sax.evt.attspec.OrSpec;
+import org.apache.ode.sax.evt.attspec.XmlAttributeSpec;
+
+class Bpel11CatchState extends Bpel11CatchAllState {
+
+  private static final StateFactory _factory = new Factory();
+  
+  private static final XmlAttributeSpec FAULTNAME = new FilterSpec(
+      new String[] {"faultName"}, new String[] {"faultVariable"});
+  private static final XmlAttributeSpec FAULTVARIABLE = new FilterSpec(
+      new String[] {"faultVariable"}, new String[] {});
+  
+  private static final XmlAttributeSpec VALID = new OrSpec(FAULTNAME,FAULTVARIABLE);
+  
+  Bpel11CatchState(StartElement se,ParseContext pc) throws ParseException {
+    super(se,pc);
+    XmlAttributes atts = se.getAttributes();
+    if (!VALID.matches(atts)) {
+      pc.parseError(ParseError.ERROR,se,"PARSER_ERROR",
+          "Invalid attributes for <catch>; @faultName?,@faultVariable? expected.");
+    }
+    Catch c = getCatch();
+    if (atts.hasAtt("faultName")) 
+      c.setFaultName(se.getNamespaceContext().derefQName(atts.getValue("faultName")));
+    if (atts.hasAtt("faultVariable")) 
+      c.setFaultVariable(atts.getValue("faultVariable"));
+//    following is not strictly 1.1, but we'll let it slide
+//    if(atts.hasAtt("faultMessageType"))
+//      c.setFaultVariableType(se.getNamespaceContext().derefQName(atts.getValue("faultMessageType")));
+  }
+    
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CATCH;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CatchState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensateActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensateActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensateActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensateActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,53 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.impl.nodes.CompensateActivityImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11CompensateActivityState extends Bpel11BaseActivityState {
+ 
+  private static final StateFactory _factory = new Factory();
+
+  Bpel11CompensateActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(se,pc);
+  }
+  
+  protected Activity createActivity(StartElement se) throws ParseException {
+    CompensateActivityImpl cai = new CompensateActivityImpl();
+    XmlAttributes atts = se.getAttributes();
+    if (atts.hasAtt("scope"))
+      cai.setScopeToCompensate(atts.getValue("scope"));
+    return cai;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_COMPENSATE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CompensateActivityState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensationHandlerState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensationHandlerState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensationHandlerState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CompensationHandlerState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,60 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.CompensationHandler;
+import org.apache.ode.bom.impl.nodes.CompensationHandlerImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11CompensationHandlerState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CompensationHandlerImpl _c;
+  
+  Bpel11CompensationHandlerState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _c = new CompensationHandlerImpl();
+    _c.setNamespaceContext(se.getNamespaceContext());
+    _c.setLineNo(se.getLocation().getLineNumber());
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _c.setActivity(((ActivityStateI)pn).getActivity());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  public CompensationHandler getCompensationHandler() {
+    return _c;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_COMPENSATIONHANDLER;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CompensationHandlerState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CopyState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CopyState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CopyState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CopyState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,67 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Copy;
+import org.apache.ode.bom.impl.nodes.CopyImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11CopyState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CopyImpl _c;
+   
+  Bpel11CopyState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _c = new CopyImpl(se.getNamespaceContext());
+    _c.setLineNo(se.getLocation().getLineNumber());
+  }
+  
+  public Copy getCopy() {
+    return _c;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch (pn.getType()) {
+    case BPEL11_FROM:
+      _c.setFrom(((Bpel11FromState)pn).getFrom());
+      break;
+    case BPEL11_TO:
+      _c.setTo(((Bpel11ToState)pn).getTo());
+      break;
+    default:
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_COPY;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CopyState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,74 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bom.api.CorrelationSet;
+import org.apache.ode.bom.impl.nodes.CorrelationSetImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.utils.NSContext;
+
+class Bpel11CorrelationSetState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CorrelationSetImpl _s;
+  
+  Bpel11CorrelationSetState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+
+    _s = new CorrelationSetImpl();
+    _s.setNamespaceContext(se.getNamespaceContext());
+    _s.setLineNo(se.getLocation().getLineNumber());
+    _s.setName(atts.getValue("name"));
+
+    if (atts.hasAtt("properties")) {
+      StringTokenizer st = new StringTokenizer(atts.getValue("properties"));
+      List<QName> al = new ArrayList<QName>();
+      NSContext nsc = se.getNamespaceContext();
+      for (;st.hasMoreTokens();) {
+        al.add(nsc.derefQName(st.nextToken()));
+      }
+      _s.setProperties(al.toArray(new QName[]{}));
+    }
+    
+  }
+  
+  public CorrelationSet getCorrelationSet() {
+    return _s;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CORRELATIONSET;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se,ParseContext pc) throws ParseException {
+      return new Bpel11CorrelationSetState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetsState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetsState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetsState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationSetsState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,64 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.ode.bom.api.CorrelationSet;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11CorrelationSetsState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private List<CorrelationSet> _csets;
+   
+  private Bpel11CorrelationSetsState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _csets = new ArrayList<CorrelationSet>();
+  }
+  
+  public Iterator<CorrelationSet> getCorrelationSets() {
+    return _csets.iterator();
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn.getType() == BPEL11_CORRELATIONSET) {
+      _csets.add(((Bpel11CorrelationSetState)pn).getCorrelationSet());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CORRELATIONSETS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CorrelationSetsState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,69 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.bom.impl.nodes.CorrelationImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11CorrelationState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CorrelationImpl _c;
+  
+  Bpel11CorrelationState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _c = new CorrelationImpl();
+    _c.setNamespaceContext(se.getNamespaceContext());
+    _c.setLineNo(se.getLocation().getLineNumber());
+    _c.setCorrelationSet(atts.getValue("set"));
+    _c.setInitiate(getInitiateYesNo(atts));
+    if (atts.hasAtt("pattern")) {
+      String pat = atts.getValue("pattern");
+      if (pat.equals("out")) {
+        _c.setPattern(Correlation.CORRPATTERN_OUT);
+      } else if (pat.equals("in")) {
+        _c.setPattern(Correlation.CORRPATTERN_IN);
+      } else if (pat.equals("out-in")) {
+        _c.setPattern(Correlation.CORRPATTERN_INOUT);
+      } else {
+      	throw new IllegalStateException("Bad correlation pattern: " + pat);
+      }
+    }
+
+  }
+  
+  public Correlation getCorrelation() {
+    return _c;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CORRELATION;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CorrelationState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationsState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationsState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationsState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11CorrelationsState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,63 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11CorrelationsState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private List<Correlation> _cs = new ArrayList<Correlation>();
+   
+  private Bpel11CorrelationsState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  public Iterator<Correlation> getCorrelations() {
+    return _cs.iterator();
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn.getType() == BPEL11_CORRELATION) {
+      _cs.add(((Bpel11CorrelationState)pn).getCorrelation());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_CORRELATIONS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11CorrelationsState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EmptyActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EmptyActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EmptyActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EmptyActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,48 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.impl.nodes.EmptyActivityImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11EmptyActivityState extends Bpel11BaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  Bpel11EmptyActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(se,pc);
+  }
+  
+  protected Activity createActivity(StartElement se) {
+    return new EmptyActivityImpl();
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_EMPTY;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11EmptyActivityState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EventHandlersState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EventHandlersState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EventHandlersState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11EventHandlersState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,75 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.apache.ode.bom.api.OnAlarm;
+import org.apache.ode.bom.api.OnEvent;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11EventHandlersState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<OnEvent> _m;
+  private ArrayList<OnAlarm> _a;
+   
+  Bpel11EventHandlersState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _m = new ArrayList<OnEvent>();
+    _a = new ArrayList<OnAlarm>();
+  }
+  
+  public Iterator<OnEvent> getOnEventHandlers() {
+    return _m.iterator();
+  }
+  
+  public Iterator<OnAlarm> getOnAlarmHandlers() {
+    return _a.iterator();
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch (pn.getType()) {
+    case BPEL11_ONMESSAGE:
+      _m.add(((Bpel11OnMessageState)pn).getOnEventHandler());
+      break;
+    case BPEL11_ONALARM:
+      _a.add(((Bpel11OnAlarmState)pn).getOnAlarmHandler());
+      break;
+    default:
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_EVENTHANDLERS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11EventHandlersState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FaultHandlersState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FaultHandlersState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FaultHandlersState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FaultHandlersState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,66 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.FaultHandler;
+import org.apache.ode.bom.impl.nodes.FaultHandlerImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11FaultHandlersState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private FaultHandlerImpl _f;
+   
+  private Bpel11FaultHandlersState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _f = new FaultHandlerImpl();
+    _f.setNamespaceContext(se.getNamespaceContext());
+    _f.setLineNo(se.getLocation().getLineNumber());
+  }
+  
+  public FaultHandler getFaultHandler() {
+    return _f;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch (pn.getType()) {
+    case BPEL11_CATCH:
+    case BPEL11_CATCHALL:
+      _f.addCatch(((Bpel11CatchAllState)pn).getCatch());
+      break;
+    default:
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_FAULTHANDLERS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11FaultHandlersState(se, null);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FlowActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FlowActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FlowActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FlowActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,65 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.Iterator;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.api.Link;
+import org.apache.ode.bom.impl.nodes.FlowActivityImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11FlowActivityState extends Bpel11BaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  Bpel11FlowActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(se,pc);
+  }
+  
+  protected Activity createActivity(StartElement se) {
+    return new FlowActivityImpl();
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      ((FlowActivityImpl)getActivity()).addChild(((ActivityStateI)pn).getActivity());
+    } else if (pn.getType() == BaseBpelState.BPEL11_LINKS){
+      FlowActivityImpl fai = (FlowActivityImpl) getActivity();
+      for (Iterator it = ((Bpel11LinksState)pn).getLinks();it.hasNext();) {
+        fai.addLink((Link)it.next());
+      }
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }  
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_FLOW;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11FlowActivityState(se,pc);
+    }
+  }
+
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FromState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FromState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FromState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11FromState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,136 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.w3c.dom.Element;
+
+import org.apache.ode.bom.api.From;
+import org.apache.ode.bom.impl.nodes.*;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.SaxEvent;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.sax.evt.attspec.FilterSpec;
+import org.apache.ode.sax.evt.attspec.XmlAttributeSpec;
+
+class Bpel11FromState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private From _f;
+  
+  private XmlAttributeSpec VAR = new FilterSpec(
+      new String[] {"variable"},new String[] {"part","query"});
+  private XmlAttributeSpec PLINK_EP = new FilterSpec(
+      new String[] {"partnerLink","endpointReference"},new String[] {});
+  private XmlAttributeSpec EXPR = new FilterSpec(
+      new String[] {"expression"}, new String[] {});
+  private XmlAttributeSpec VAR_PROP = new FilterSpec(
+      new String[] {"variable","property"},new String[] {});
+  // Kludge, perhaps -- no attributes.
+  private XmlAttributeSpec LITERAL = new FilterSpec(
+      new String[] {},new String[] {});
+
+//  private XmlAttributeSpec VALID = new OrSpec(VAR_PART,
+//      new OrSpec(PLINK_EP,
+//          new OrSpec(VAR_PROP,LITERAL)));
+  
+  private boolean _literalMode = false;
+  
+  private DOMGenerator _domGenerator;
+  
+  Bpel11FromState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    
+    if (VAR.matches(atts)) {
+      VariableValImpl vvi = new VariableValImpl();
+      vvi.setNamespaceContext(se.getNamespaceContext());
+      vvi.setLineNo(se.getLocation().getLineNumber());
+      vvi.setVariable(atts.getValue("variable"));
+      if(atts.hasAtt("part")){
+        vvi.setPart(atts.getValue("part"));
+      }
+      if(atts.hasAtt("query")){
+        ExpressionImpl expr = new ExpressionImpl();
+        expr.setXPathString(atts.getValue("query"));
+        expr.setLineNo(se.getLocation().getLineNumber());
+        expr.setNamespaceContext(se.getNamespaceContext());
+        vvi.setLocation(expr);
+      }
+      _f = vvi;
+    } else if (VAR_PROP.matches(atts)) {
+      PropertyValImpl pvi = new PropertyValImpl(se.getNamespaceContext());
+      pvi.setLineNo(se.getLocation().getLineNumber());
+      pvi.setVariable(atts.getValue("variable"));
+      pvi.setProperty(se.getNamespaceContext().derefQName(atts.getValue("property")));
+      _f = pvi;
+    } else if (PLINK_EP.matches(atts)) {
+      PartnerLinkValImpl pvi = new PartnerLinkValImpl();
+      pvi.setLineNo(se.getLocation().getLineNumber());
+      pvi.setPartnerLink(atts.getValue("partnerLink"));
+      pvi.setEndpointReference(atts.getValue("endpointReference"));
+      _f = pvi;
+    } else if (EXPR.matches(atts)) {
+      ExpressionValImpl evi = new ExpressionValImpl(se.getNamespaceContext());
+      evi.setLineNo(se.getLocation().getLineNumber());
+      ExpressionImpl expr = new ExpressionImpl();
+      expr.setLineNo(se.getLocation().getLineNumber());
+      expr.setNamespaceContext(se.getNamespaceContext());
+      expr.setXPathString(atts.getValue("expression"));
+      evi.setExpression(expr);
+      _f = evi;
+    } else if (LITERAL.matches(atts)) {
+      _literalMode = true;
+      LiteralValImpl lvi = new LiteralValImpl(se.getNamespaceContext());
+      _domGenerator = new DOMGenerator();
+      _f = lvi;
+    } else {
+      throw new IllegalStateException("Unknown action." );
+    }
+  }
+  
+  public void handleSaxEvent(SaxEvent se) throws ParseException {
+    if (_literalMode) {
+      _domGenerator.handleSaxEvent(se);
+    } else{
+      super.handleSaxEvent(se);
+    }
+  }
+  
+  public void done(){
+  	if(_literalMode){
+  		// For compatibility with 2.0 BPEL, we create a <literal> element
+  		Element lit = _domGenerator.getRoot().getOwnerDocument().createElement("literal");
+  		lit.appendChild(_domGenerator.getRoot());
+      ((LiteralValImpl)_f).setLiteral(lit);   
+    }
+  }
+  
+  public From getFrom() {
+    return _f;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_FROM;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11FromState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11InvokeActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11InvokeActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11InvokeActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11InvokeActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,80 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.Iterator;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.bom.impl.nodes.InvokeActivityImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11InvokeActivityState extends Bpel11BaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  Bpel11InvokeActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(se,pc);
+  }
+  
+  protected Activity createActivity(StartElement se) {
+    InvokeActivityImpl iai = new InvokeActivityImpl();
+    XmlAttributes atts = se.getAttributes();
+    iai.setPortType(se.getNamespaceContext().derefQName(atts.getValue("portType")));
+    iai.setPartnerLink(atts.getValue("partnerLink"));
+    iai.setOperation(atts.getValue("operation"));
+    iai.setInputVar(atts.getValue("inputVariable"));
+    iai.setOutputVar(atts.getValue("outputVariable"));
+    return iai;
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    InvokeActivityImpl iai = (InvokeActivityImpl) getActivity();
+    switch (pn.getType()) {
+    case BaseBpelState.BPEL11_CORRELATIONS:
+      for (Iterator it = ((Bpel11CorrelationsState)pn).getCorrelations();it.hasNext();) {
+        iai.addCorrelation((Correlation)it.next());
+      }
+      break;
+    case BaseBpelState.BPEL11_CATCH:
+      iai.getFaultHandler().addCatch(((Bpel11CatchState)pn).getCatch());
+      break;
+    case BaseBpelState.BPEL11_CATCHALL:
+      iai.getFaultHandler().addCatch(((Bpel11CatchAllState)pn).getCatch());
+      break;
+    case BaseBpelState.BPEL11_COMPENSATIONHANDLER:
+      iai.setCompensationHandler(((Bpel11CompensationHandlerState)pn).getCompensationHandler());
+      break;
+      default:
+        super.handleChildCompleted(pn);
+    }
+  }
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_INVOKE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11InvokeActivityState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkSourceState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkSourceState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkSourceState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkSourceState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,64 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.LinkSource;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+import org.apache.ode.bom.impl.nodes.LinkSourceImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11LinkSourceState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private LinkSourceImpl _s;
+  
+  
+  Bpel11LinkSourceState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _s = new LinkSourceImpl();
+    _s.setNamespaceContext(se.getNamespaceContext());
+    _s.setLineNo(se.getLocation().getLineNumber());
+    _s.setLinkName(atts.getValue("linkName"));
+    if(atts.hasAtt("transitionCondition")){
+      ExpressionImpl expr = new ExpressionImpl();
+      expr.setLineNo(se.getLocation().getLineNumber());
+      expr.setNamespaceContext(se.getNamespaceContext());
+      expr.setXPathString(atts.getValue("transitionCondition"));
+      _s.setTransitionCondition(expr);
+    }
+  }
+  
+  public LinkSource getSource() {
+    return _s;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_SOURCE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11LinkSourceState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,55 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Link;
+import org.apache.ode.bom.impl.nodes.LinkImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11LinkState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private LinkImpl _link;
+  
+  Bpel11LinkState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _link = new LinkImpl();
+    _link.setNamespaceContext(se.getNamespaceContext());
+    _link.setLineNo(se.getLocation().getLineNumber());
+    _link.setLinkName(atts.getValue("name"));
+  }
+  
+  public Link getLink() {
+    return _link;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_LINK;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11LinkState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkTargetState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkTargetState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkTargetState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinkTargetState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,56 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.LinkTarget;
+import org.apache.ode.bom.impl.nodes.LinkTargetImpl;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11LinkTargetState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private LinkTargetImpl _t;
+  
+  
+  Bpel11LinkTargetState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _t = new LinkTargetImpl();
+    _t.setNamespaceContext(se.getNamespaceContext());
+    _t.setLineNo(se.getLocation().getLineNumber());
+    _t.setLinkName(atts.getValue("linkName"));
+  }
+  
+  public LinkTarget getTarget() {
+    return _t;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_TARGET;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11LinkTargetState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinksState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinksState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinksState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11LinksState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,64 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.ode.bom.api.Link;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11LinksState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private List<Link> _links = new ArrayList<Link>();
+
+  private Bpel11LinksState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  public Iterator getLinks() {
+    return _links.iterator();
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn.getType() == BPEL11_LINK) {
+      _links.add(((Bpel11LinkState)pn).getLink());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_LINKS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11LinksState(se,pc);
+    }
+  }
+
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnAlarmState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnAlarmState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnAlarmState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnAlarmState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,83 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.OnAlarm;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+import org.apache.ode.bom.impl.nodes.OnAlarmImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.sax.evt.attspec.FilterSpec;
+import org.apache.ode.sax.evt.attspec.XmlAttributeSpec;
+
+class Bpel11OnAlarmState extends BaseBpelState {
+
+  private static final XmlAttributeSpec FOR = new FilterSpec(
+      new String[] {"for"},new String[] {}); 
+  private static final XmlAttributeSpec UNTIL = new FilterSpec(
+      new String[] {"until"},new String[] {}); 
+  
+  private static final StateFactory _factory = new Factory();
+  private OnAlarmImpl _o;
+  
+  Bpel11OnAlarmState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    
+    _o = new OnAlarmImpl();
+    
+    ExpressionImpl expr = new ExpressionImpl();
+    expr.setNamespaceContext(se.getNamespaceContext());
+    expr.setLineNo(se.getLocation().getLineNumber());
+    if (FOR.matches(atts)) {
+      expr.setXPathString(atts.getValue("for"));
+      _o.setFor(expr);
+    } else if (UNTIL.matches(atts)) {
+      expr.setXPathString(atts.getValue("until"));
+      _o.setUntil(expr);
+    } else {
+      getParseContext().parseError(ParseError.ERROR,se,
+          "PARSER_ERROR",
+          "Invalid attribute spec for onAlarm; expected @for=\"<duration>\" or @until=\"<datetime>\"");
+      // TODO: Error key.
+    }
+    
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _o.setActivity(((ActivityStateI)pn).getActivity());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  public OnAlarm getOnAlarmHandler() {
+    return _o;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_ONALARM;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11OnAlarmState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnMessageState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnMessageState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnMessageState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OnMessageState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,79 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.Iterator;
+
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.bom.api.OnEvent;
+import org.apache.ode.bom.impl.nodes.OnEventImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11OnMessageState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private OnEventImpl _o;
+  
+  Bpel11OnMessageState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _o = new OnEventImpl();
+    _o.setNamespaceContext(se.getNamespaceContext());
+    _o.setLineNo(se.getLocation().getLineNumber());
+    _o.setPartnerLink(atts.getValue("partnerLink"));
+    _o.setPortType(se.getNamespaceContext().derefQName(atts.getValue("portType")));
+    _o.setOperation(atts.getValue("operation"));
+    if (atts.hasAtt("variable"))
+      _o.setVariable(atts.getValue("variable"));
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _o.setActivity(((ActivityStateI)pn).getActivity());
+    } else if (pn.getType() == BaseBpelState.BPEL11_CORRELATIONS){
+      for (Iterator it = ((Bpel11CorrelationsState)pn).getCorrelations();it.hasNext();) {
+        Correlation c = (Correlation)it.next();
+        // force pattern IN
+        if (c.getPattern() != Correlation.CORRPATTERN_IN) {
+          getParseContext().parseError(ParseError.WARNING,
+              c,"PARSER_WARNING","Only the \"in\" pattern makes sense for a correlation on an onMessage.");
+          // TODO: Get an error key here.
+        }
+        c.setPattern(Correlation.CORRPATTERN_IN);
+        _o.addCorrelation(c);
+      }
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  public OnEvent getOnEventHandler() {
+    return _o;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_ONMESSAGE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11OnMessageState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OtherwiseState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OtherwiseState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OtherwiseState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11OtherwiseState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,56 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11OtherwiseState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private Activity _a;
+  
+  Bpel11OtherwiseState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _a = ((ActivityStateI)pn).getActivity();
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  public Activity getActivity() {
+    return _a;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_OTHERWISE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11OtherwiseState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinkState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinkState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinkState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinkState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,76 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.PartnerLink;
+import org.apache.ode.bom.impl.nodes.PartnerLinkImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+import org.apache.ode.sax.evt.attspec.FilterSpec;
+import org.apache.ode.sax.evt.attspec.OrSpec;
+import org.apache.ode.sax.evt.attspec.XmlAttributeSpec;
+
+class Bpel11PartnerLinkState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private PartnerLinkImpl _plink;
+  
+  private static final XmlAttributeSpec MYROLE_SET = new FilterSpec(
+      new String[] {"name","partnerLinkType","myRole"},
+      new String[] {"partnerRole"});
+  private static final XmlAttributeSpec PARTNERROLE_SET = new FilterSpec(
+      new String[] {"name","partnerLinkType","partnerRole"},
+      new String[] {"myRole"});
+  private static final XmlAttributeSpec VALID = new OrSpec(MYROLE_SET,PARTNERROLE_SET);
+  
+  Bpel11PartnerLinkState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    if (!VALID.matches(atts)){
+      pc.parseError(ParseError.ERROR,se,"PARSER_ERROR",
+          "At least one of @myRole and @partnerRole must be set.");
+      // TODO: Internationalize
+    }
+    _plink = new PartnerLinkImpl();
+    _plink.setNamespaceContext(se.getNamespaceContext());
+    _plink.setLineNo(se.getLocation().getLineNumber());
+    _plink.setName(atts.getValue("name"));
+    _plink.setPartnerLinkType(
+        se.getNamespaceContext().derefQName(atts.getValue("partnerLinkType")));
+    if (atts.hasAtt("myRole")) {
+      _plink.setMyRole(atts.getValue("myRole"));
+    }
+    if (atts.hasAtt("partnerRole")) {
+      _plink.setPartnerRole(atts.getValue("partnerRole"));
+    }
+  }
+  
+  public PartnerLink getPartnerLink() {
+    return _plink;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_PARTNERLINK;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11PartnerLinkState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinksState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinksState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinksState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerLinksState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,63 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.ode.bom.api.PartnerLink;
+import org.apache.ode.sax.fsa.ParseContext;
+import org.apache.ode.sax.fsa.ParseException;
+import org.apache.ode.sax.fsa.State;
+import org.apache.ode.sax.fsa.StateFactory;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11PartnerLinksState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private List<PartnerLink> _plinks = new ArrayList<PartnerLink>();
+   
+  private Bpel11PartnerLinksState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  public Iterator<PartnerLink> getPartnerLinks() {
+    return _plinks.iterator();
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+   */
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn.getType() == BPEL11_PARTNERLINK) {
+      _plinks.add(((Bpel11PartnerLinkState)pn).getPartnerLink());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getFactory()
+   */
+  public StateFactory getFactory() {
+    return _factory;
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL11_PARTNERLINKS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new Bpel11PartnerLinksState(se,pc);
+    }
+  }
+}