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 [7/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/bpel_2_0/BpelCompensationHandlerState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensationHandlerState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensationHandlerState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensationHandlerState.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_2_0;
+
+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 BpelCompensationHandlerState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CompensationHandlerImpl _c;
+  
+  BpelCompensationHandlerState(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 BPEL_COMPENSATIONHANDLER;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelCompensationHandlerState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCopyState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCopyState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCopyState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCopyState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,71 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+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;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class BpelCopyState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CopyImpl _c;
+
+  BpelCopyState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _c = new CopyImpl(se.getNamespaceContext());
+    _c.setLineNo(se.getLocation().getLineNumber());
+    if (atts.hasAtt("keepSrcElementName"))
+      _c.setKeepSrcElement(checkYesNo(atts.getValue("keepSrcElementName")));
+  }
+
+  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 BPEL_FROM:
+      _c.setFrom(((BpelFromState)pn).getFrom());
+      break;
+    case BPEL_TO:
+      _c.setTo(((BpelToState)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 BPEL_COPY;
+  }
+
+  static class Factory implements StateFactory {
+
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelCopyState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,71 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+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;
+
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import javax.xml.namespace.QName;
+
+class BpelCorrelationSetState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CorrelationSetImpl _s;
+
+  BpelCorrelationSetState(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"));
+      ArrayList<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 BPEL_CORRELATIONSET;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelCorrelationSetState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetsState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetsState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetsState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationSetsState.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_2_0;
+
+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;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+class BpelCorrelationSetsState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<CorrelationSet> _csets;
+   
+  private BpelCorrelationSetsState(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() == BPEL_CORRELATIONSET) {
+      _csets.add(((BpelCorrelationSetState)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 BPEL_CORRELATIONSETS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelCorrelationSetsState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationState.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_2_0;
+
+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 BpelCorrelationState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private CorrelationImpl _c;
+  
+  BpelCorrelationState(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") || pat.equals("response")) {
+        _c.setPattern(Correlation.CORRPATTERN_OUT);
+      } else if (pat.equals("in") || pat.equals("request")) {
+        _c.setPattern(Correlation.CORRPATTERN_IN);
+      } else if (pat.equals("out-in") || pat.equals("request-response")) {
+        _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 BPEL_CORRELATION;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelCorrelationState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationsState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationsState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationsState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCorrelationsState.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_2_0;
+
+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;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+class BpelCorrelationsState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<Correlation> _cs;
+   
+  private BpelCorrelationsState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _cs = new ArrayList<Correlation>();
+  }
+  
+  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() == BPEL_CORRELATION) {
+      _cs.add(((BpelCorrelationState)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 BPEL_CORRELATIONS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelCorrelationsState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEmptyActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEmptyActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEmptyActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEmptyActivityState.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_2_0;
+
+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 BpelEmptyActivityState extends BpelBaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  BpelEmptyActivityState(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 BPEL_EMPTY;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelEmptyActivityState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEventHandlersState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEventHandlersState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEventHandlersState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelEventHandlersState.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_2_0;
+
+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;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+class BpelEventHandlersState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<OnEvent> _e;
+  private ArrayList<OnAlarm> _a;
+   
+  BpelEventHandlersState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _e = new ArrayList<OnEvent>();
+    _a = new ArrayList<OnAlarm>();
+  }
+  
+  public Iterator<OnEvent> getOnEventHandlers() {
+    return _e.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 BPEL_ONEVENT:
+      _e.add(((BpelOnEventState)pn).getOnEventHandler());
+      break;
+    case BPEL_ONALARM:
+      _a.add(((BpelOnAlarmState)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 BPEL_EVENTHANDLERS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelEventHandlersState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExitActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExitActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExitActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExitActivityState.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_2_0;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.impl.nodes.TerminateActivityImpl;
+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 BpelExitActivityState extends BpelBaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  BpelExitActivityState(StartElement se, ParseContext pc) throws ParseException {
+    super(se,pc);
+  }
+  
+  protected Activity createActivity(StartElement se) {
+    return new TerminateActivityImpl();
+  }
+  
+  /**
+   * @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 BPEL_EXIT;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelExitActivityState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExpressionState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExpressionState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExpressionState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelExpressionState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,73 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import org.apache.ode.bom.api.Expression;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+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;
+
+class BpelExpressionState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ExpressionImpl _expr;
+	private DOMGenerator _domGenerator;
+  
+  BpelExpressionState(StartElement se,ParseContext pc) throws ParseException {
+    super(pc);
+    
+    XmlAttributes attr = se.getAttributes();
+    if(attr.hasAtt("expressionLanguage")){
+      _expr = new ExpressionImpl(attr.getValue("expressionLanguage"));
+    }else{
+      _expr = new ExpressionImpl();
+    }
+    _expr.setNamespaceContext(se.getNamespaceContext());
+    _expr.setLineNo(se.getLocation().getLineNumber());
+
+    _domGenerator = new DOMGenerator();
+  }
+  
+  Expression getExpression(){
+    return _expr;
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleSaxEvent(org.apache.ode.sax.evt.SaxEvent)
+   */
+  public void handleSaxEvent(SaxEvent se) throws ParseException {
+    _domGenerator.handleSaxEvent(se);
+  }
+  /**
+   * @see org.apache.ode.sax.fsa.State#done()
+   */
+  public void done(){
+    _expr.setNode(_domGenerator.getRoot());
+  }
+  
+  /**
+   * @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 BPEL_EXPRESSION;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelExpressionState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFaultHandlersState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFaultHandlersState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFaultHandlersState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFaultHandlersState.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_2_0;
+
+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 BpelFaultHandlersState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private FaultHandlerImpl _f;
+   
+  private BpelFaultHandlersState(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 BPEL_CATCH:
+    case BPEL_CATCHALL:
+      _f.addCatch(((BpelCatchAllState)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 BPEL_FAULTHANDLERS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelFaultHandlersState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFlowActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFlowActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFlowActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFlowActivityState.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_2_0;
+
+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;
+
+import java.util.Iterator;
+
+class BpelFlowActivityState extends BpelBaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  BpelFlowActivityState(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.BPEL_LINKS){
+      FlowActivityImpl fai = (FlowActivityImpl) getActivity();
+      for (Iterator<Link> it = ((BpelLinksState)pn).getLinks();it.hasNext();) {
+        fai.addLink(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 BPEL_FLOW;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelFlowActivityState(se, pc);
+    }
+  }
+
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelForState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelForState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelForState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelForState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,38 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+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.xml.sax.SAXParseException;
+
+class BpelForState extends BpelExpressionState {
+	/**
+	 * @param se
+	 * @throws SAXParseException
+	 */
+	public BpelForState(StartElement se, ParseContext pc) throws ParseException {
+		super(se,pc);
+	}
+  /**
+   * @see org.apache.ode.sax.fsa.State#getType()
+   */
+  public int getType() {
+    return BPEL_FOR;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelForState(se,pc);
+    }
+  }
+
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFromState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFromState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFromState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelFromState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,153 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import org.apache.ode.bom.api.From;
+import org.apache.ode.bom.api.LiteralVal;
+import org.apache.ode.bom.impl.nodes.*;
+import org.apache.ode.bpel.parser.BpelProcessBuilder;
+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;
+import org.apache.ode.utils.NSContext;
+
+import org.w3c.dom.Element;
+import org.xml.sax.Locator;
+
+class BpelFromState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private From _f;
+  
+  private XmlAttributeSpec PLINK_EP = new FilterSpec(
+      new String[] {"partnerLink","endpointReference"},new String[] {});
+
+  private XmlAttributeSpec VAR = new FilterSpec(
+      new String[] {"variable"},
+      new String[] {"part"});
+
+  private XmlAttributeSpec VAR_PROP = new FilterSpec(
+      new String[] {"variable","property"},new String[] {});
+  
+  private NSContext _nsctx;
+  private String _expressionLanguage;
+  private Locator _locator;
+  private ExpressionImpl _expr;
+  private DOMGenerator _domGenerator;
+  private StartElement _se;
+
+
+  BpelFromState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _se = se;
+    _locator = se.getLocation();
+    _nsctx = se.getNamespaceContext();
+    XmlAttributes atts = se.getAttributes();
+    _expressionLanguage = atts.getValue("expressionLanguage");
+    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 (VAR.matches(atts)) {
+      VariableValImpl vvi = new VariableValImpl();
+      vvi.setLineNo(se.getLocation().getLineNumber());
+      vvi.setVariable(atts.getValue("variable"));
+      vvi.setPart(atts.getValue("part"));
+      _f = vvi;
+    } 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 {
+      _domGenerator = new DOMGenerator();
+    }
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleSaxEvent(org.apache.ode.sax.evt.SaxEvent)
+   */
+  public void handleSaxEvent(SaxEvent se) throws ParseException {
+    if (_domGenerator == null) {
+      getParseContext().parseError(ParseError.ERROR,se,"", "Unexpected content in <from> element.");
+      
+    }
+    // if we're here, then we're parsing a literal
+    _domGenerator.handleSaxEvent(se);
+  }
+  
+  /**
+   * @see org.apache.ode.sax.fsa.State#done()
+   */
+  public void done(){
+  	if(_domGenerator != null && _f == null){
+  		if(_domGenerator.getRoot() instanceof Element
+              && ((Element)_domGenerator.getRoot()).getLocalName().equals("literal")
+              && ((Element)_domGenerator.getRoot()).getNamespaceURI() != null
+              && ((Element)_domGenerator.getRoot()).getNamespaceURI().equals(BpelProcessBuilder.WSBPEL2_0_NS)){
+	  		LiteralVal literal = new LiteralValImpl(_nsctx);
+	      literal.setLiteral((Element)_domGenerator.getRoot());
+	      _f = literal;
+      }else{
+        if(_expressionLanguage != null){
+          _expr = new ExpressionImpl(_expressionLanguage);
+        }else{
+          _expr = new ExpressionImpl();
+        }
+
+      _expr.setNamespaceContext(_se.getNamespaceContext());
+      _expr.setLineNo(_se.getLocation().getLineNumber());
+  			_expr.setNode(_domGenerator.getRoot());
+  			ExpressionValImpl evi = new ExpressionValImpl(_expr.getNamespaceContext());
+        evi.setExpression(_expr);
+        _f = evi;
+  		}
+    }
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch(pn.getType()){  
+      case BPEL_SERVICE_REF:
+        // TODO: Implement assignments from a service-ref.
+        getParseContext().parseError(ParseError.ERROR,_f,"",
+            "Assignment from a service reference is not currently supported.");
+        break;
+      default:
+        super.handleChildCompleted(pn);
+    }
+  }
+  
+  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 BPEL_FROM;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelFromState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelGraph_2_0.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelGraph_2_0.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelGraph_2_0.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelGraph_2_0.java Mon May  1 14:37:44 2006
@@ -0,0 +1,322 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.parser.BpelProcessBuilder;
+import org.apache.ode.sax.fsa.AbstractGraphProvider;
+import org.apache.ode.sax.fsa.StateFactory;
+
+public class BpelGraph_2_0 extends AbstractGraphProvider implements Bpel20QNames {
+
+  private static final HashMap<QName,StateFactory>  _ACTIVITIES = new HashMap<QName,StateFactory>();
+  static {
+    _ACTIVITIES.put(Bpel20QNames.ASSIGN,new BpelAssignActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.EMPTY,new BpelEmptyActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.INVOKE,new BpelInvokeActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.RECEIVE,new BpelReceiveActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.REPLY,new BpelReplyActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.WAIT,new BpelWaitActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.THROW,new BpelThrowActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.COMPENSATE,new BpelCompensateActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.RETHROW,new BpelRethrowActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.EXIT,new BpelExitActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.FLOW,new BpelFlowActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.SWITCH,new BpelSwitchActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.WHILE,new BpelWhileActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.SEQUENCE,new BpelSequenceActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.PICK,new BpelPickActivityState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.SCOPE,new BpelScopeState.Factory());
+    _ACTIVITIES.put(Bpel20QNames.IF, new BpelIfActivityState.Factory());
+  }
+  
+    private static final HashSet<QName> _20EXTENSIBLE_ELEMENTS = new HashSet<QName>();
+    static {
+        //
+        // Aligned with Sept 6th, 2005 draft WSBPEL
+        //
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.ASSIGN);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.COPY);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.CATCH);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.CATCHALL);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.CONDITION);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.CORRELATION);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.CORRELATIONS);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.CORRELATIONSETS);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.COMPENSATE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.COMPENSATIONHANDLER);
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.DOCUMENTATION);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.ELSE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.ELSEIF);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.EMPTY);
+        // not defined yet
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.EXTENSION_ACTIVITY);
+        // not defined yet
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.EXTENSIBLE_ASSIGN);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.EVENTHANDLERS);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.EXIT);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.FAULTHANDLERS);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.FLOW);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.FOR);
+        // not defined yet
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.FOREACH);
+
+        // Creates a problem with literal assignment: 
+        //_20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.FROM);
+        
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.FROM_PART);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.IF);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.IMPORT);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.INVOKE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.JOIN_CONDITION);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.LINK);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.LINKS);
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.LITERAL);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.ONALARM);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.ONEVENT);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.ONMESSAGE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.PARTNERLINK);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.PARTNERLINKS);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.PICK);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.PROCESS);
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.PROPERTY);
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.PROPERTY_ALIAS);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.QUERY);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.RECEIVE);
+        // not defined yet
+        //_20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.REPEAT_UNTIL);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.REPLY);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.REPEAT_EVERY);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.RETHROW);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.SEQUENCE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.SERVICE_REF);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.SCOPE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.SOURCE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.SOURCES);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TARGET);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TARGETS);
+        // not defined yet
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TERMINATE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TERMINATIONHANDLER);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.THEN);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TRANSITION_CONDITION);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.THROW);
+        
+        // May create problems with expression languages:
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TO);
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.TO_PART);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.UNTIL);
+        // not defined yet
+        // _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.VALIDATE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.VARIABLE);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.VARIABLES);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.WAIT);
+        _20EXTENSIBLE_ELEMENTS.add(Bpel20QNames.WHILE);
+
+        // Add all activities.
+        for (Iterator<QName> it = _ACTIVITIES.keySet().iterator(); it.hasNext();) {
+            _20EXTENSIBLE_ELEMENTS.add(it.next());
+        }
+    }
+
+  public BpelGraph_2_0() {
+    super();
+    initBpel();
+  }
+  
+  public static QName get20QName(String s) {
+    return new Bpel20QName(s);
+  }
+  
+  public static StateFactory getRootStateFactory() {
+    return new BpelProcessState.Factory();
+  }
+  /*
+   * Build the graph for BPEL4WS 2.0
+   */
+  private void initBpel() {
+    
+    addActivities();
+    
+    addQNameEdge("ASSIGN","COPY",Bpel20QNames.COPY);
+    addStateFactory("COPY",new BpelCopyState.Factory());
+    addStateFactory("FROM",new BpelFromState.Factory());
+    addStateFactory("EXPR", new BpelExpressionState.Factory());
+    addStateFactory("QUERY", new BpelQueryState.Factory());
+    
+    addQNameEdge("COPY","FROM",Bpel20QNames.FROM);
+    // TODO Add edge to service-ref
+    addStateFactory("TO",new BpelToState.Factory());
+    addQNameEdge("COPY","TO",Bpel20QNames.TO);
+    
+    addStateFactory("IMPORT", new BpelImportState.Factory());
+    
+    addStateFactory("PARTNERLINKS",new BpelPartnerLinksState.Factory());
+    addStateFactory("PARTNERLINK",new BpelPartnerLinkState.Factory());
+    addQNameEdge("PARTNERLINKS","PARTNERLINK",Bpel20QNames.PARTNERLINK);
+    
+    addStateFactory("VARIABLES",new BpelVariablesState.Factory());
+    addStateFactory("VARIABLE",new BpelVariableState.Factory());
+    addQNameEdge("VARIABLES","VARIABLE",Bpel20QNames.VARIABLE);
+    
+    addStateFactory("CORRELATIONSETS",new BpelCorrelationSetsState.Factory());
+    addStateFactory("CORRELATIONSET",new BpelCorrelationSetState.Factory());
+    addQNameEdge("CORRELATIONSETS","CORRELATIONSET",Bpel20QNames.CORRELATIONSET);
+
+    addStateFactory("CORRELATIONS",new BpelCorrelationsState.Factory());
+    addStateFactory("CORRELATION",new BpelCorrelationState.Factory());
+    addQNameEdge("CORRELATIONS","CORRELATION",Bpel20QNames.CORRELATION);
+        
+    addStateFactory("FAULTHANDLERS",new BpelFaultHandlersState.Factory());
+    addStateFactory("CATCH",new BpelCatchState.Factory());
+    addStateFactory("CATCHALL",new BpelCatchAllState.Factory());
+    addQNameEdge("FAULTHANDLERS","CATCH",Bpel20QNames.CATCH);
+    addQNameEdge("FAULTHANDLERS","CATCHALL",Bpel20QNames.CATCHALL);
+    
+    addStateFactory("EVENTHANDLERS",new BpelEventHandlersState.Factory());
+    
+    addStateFactory("ONEVENT",new BpelOnEventState.Factory());
+    addQNameEdge("ONEVENT","CORRELATIONS",Bpel20QNames.CORRELATIONS);
+    addQNameEdge("EVENTHANDLERS","ONEVENT",Bpel20QNames.ONEVENT);
+    addStateFactory("ONALARM",new BpelOnAlarmState.Factory());
+    addQNameEdge("EVENTHANDLERS","ONALARM",Bpel20QNames.ONALARM);
+    
+    addStateFactory("COMPENSATIONHANDLER",new BpelCompensationHandlerState.Factory());
+    addStateFactory("TERMINATIONHANDLER",new BpelTerminationHandlerState.Factory());
+    
+    addStateFactory("20PROCESS",new BpelProcessState.Factory());
+    addQNameEdge("20PROCESS","IMPORT",Bpel20QNames.IMPORT);
+    addQNameEdge("20PROCESS","PARTNERLINKS",Bpel20QNames.PARTNERLINKS);
+    addQNameEdge("20PROCESS","VARIABLES",Bpel20QNames.VARIABLES);
+    addQNameEdge("20PROCESS","CORRELATIONSETS",Bpel20QNames.CORRELATIONSETS);
+    addQNameEdge("20PROCESS","FAULTHANDLERS",Bpel20QNames.FAULTHANDLERS);
+    addQNameEdge("20PROCESS","COMPENSATIONHANDLER",Bpel20QNames.COMPENSATIONHANDLER);
+    addQNameEdge("20PROCESS","TERMINATIONHANDLER",Bpel20QNames.TERMINATIONHANDLER);
+    addQNameEdge("20PROCESS","EVENTHANDLERS",Bpel20QNames.EVENTHANDLERS);
+    
+    addQNameEdge("SCOPE","VARIABLES",Bpel20QNames.VARIABLES);
+    addQNameEdge("SCOPE","PARTNERLINKS",Bpel20QNames.PARTNERLINKS);
+    addQNameEdge("SCOPE","CORRELATIONSETS",Bpel20QNames.CORRELATIONSETS);
+    addQNameEdge("SCOPE","FAULTHANDLERS",Bpel20QNames.FAULTHANDLERS);
+    addQNameEdge("SCOPE","COMPENSATIONHANDLER",Bpel20QNames.COMPENSATIONHANDLER);
+    addQNameEdge("SCOPE","TERMINATIONHANDLER",Bpel20QNames.TERMINATIONHANDLER); 
+    addQNameEdge("SCOPE","EVENTHANDLERS",Bpel20QNames.EVENTHANDLERS);
+    
+    addStateFactory("CONDITION", new BpelExpressionState.Factory());
+    addStateFactory("FOR", new BpelForState.Factory());
+    addStateFactory("UNTIL", new BpelUntilState.Factory());
+    addStateFactory("REPEATEVERY", new BpelRepeatEveryState.Factory());
+    
+    addActivityTransitionsTo("20PROCESS");
+    addActivityTransitionsTo("COMPENSATIONHANDLER");
+    addActivityTransitionsTo("TERMINATIONHANDLER");
+    addActivityTransitionsTo("CATCH");
+    addActivityTransitionsTo("CATCHALL");
+    addQNameEdge("SWITCH","CASE", Bpel20QNames.CASE);
+    addQNameEdge("SWITCH","OTHERWISE", Bpel20QNames.OTHERWISE);
+    addStateFactory("CASE", new BpelSwitchActivityState.CaseState.Factory());
+    addQNameEdge("CASE", "CONDITION", Bpel20QNames.CONDITION);
+    addStateFactory("OTHERWISE", new BpelSwitchActivityState.OtherwiseState.Factory());
+    
+    addStateFactory("IF", new BpelIfActivityState.Factory());
+    addStateFactory("THEN", new BpelIfActivityState.ThenState.Factory());
+    addStateFactory("ELSEIF", new BpelIfActivityState.ElseIfState.Factory());
+    addStateFactory("ELSE", new BpelIfActivityState.ElseState.Factory());
+    addQNameEdge("IF", "CONDITION", Bpel20QNames.CONDITION);
+    addQNameEdge("IF", "THEN", Bpel20QNames.THEN);
+    addQNameEdge("IF", "ELSEIF", Bpel20QNames.ELSEIF);
+    addQNameEdge("IF", "ELSE", Bpel20QNames.ELSE);
+    addQNameEdge("ELSEIF", "CONDITION", Bpel20QNames.CONDITION);
+    
+    addQNameEdge("WHILE", "CONDITION", Bpel20QNames.CONDITION);
+    addQNameEdge("WAIT", "FOR", Bpel20QNames.FOR);
+    addQNameEdge("WAIT", "UNTIL", Bpel20QNames.UNTIL);
+    
+    addActivityTransitionsTo("THEN");
+    addActivityTransitionsTo("ELSEIF");
+    addActivityTransitionsTo("ELSE");
+    addActivityTransitionsTo("CASE");
+    addActivityTransitionsTo("OTHERWISE");
+    addActivityTransitionsTo("SEQUENCE");
+    addActivityTransitionsTo("FLOW");
+    addActivityTransitionsTo("WHILE");
+    addActivityTransitionsTo("SCOPE");
+    addActivityTransitionsTo("ONMESSAGE");
+    addActivityTransitionsTo("ONEVENT");
+    addActivityTransitionsTo("ONALARM");
+    
+    // onMessage is only used by pick in 2.0.
+    addStateFactory("ONMESSAGE",new BpelOnMessageState.Factory());
+    addQNameEdge("ONMESSAGE","CORRELATIONS",Bpel20QNames.CORRELATIONS);
+    addQNameEdge("PICK","ONMESSAGE",Bpel20QNames.ONMESSAGE);
+    addQNameEdge("PICK","ONALARM",Bpel20QNames.ONALARM);
+    
+    addQNameEdge("ONALARM", "FOR", Bpel20QNames.FOR);
+    addQNameEdge("ONALARM", "UNTIL", Bpel20QNames.UNTIL);
+    addQNameEdge("ONALARM", "REPEATEVERY", Bpel20QNames.REPEAT_EVERY);
+    
+    addQNameEdge("INVOKE","CORRELATIONS",Bpel20QNames.CORRELATIONS);
+    addQNameEdge("INVOKE","CATCH",Bpel20QNames.CATCH);
+    addQNameEdge("INVOKE","CATCHALL",Bpel20QNames.CATCHALL);
+    addQNameEdge("INVOKE","COMPENSATIONHANDLER",Bpel20QNames.COMPENSATIONHANDLER);
+    
+    addQNameEdge("RECEIVE","CORRELATIONS",Bpel20QNames.CORRELATIONS);
+    addQNameEdge("REPLY","CORRELATIONS",Bpel20QNames.CORRELATIONS);
+    
+    addStateFactory("LINKS",new BpelLinksState.Factory());
+    addStateFactory("LINK",new BpelLinkState.Factory());
+    addQNameEdge("FLOW","LINKS",Bpel20QNames.LINKS);
+    addQNameEdge("LINKS","LINK",Bpel20QNames.LINK);
+    
+    //addQNameEdge(START,"PROCESS",Bpel20QNames.PROCESS);
+    
+    addExtensibilityEdges();
+  }
+
+  private void addExtensibilityEdges() {
+      addStateFactory("EXTENSIBILITY_BUCKET", new ExtensibilityBucketState.Factory());
+      addOtherEdge("20PROCESS","EXTENSIBILITY_BUCKET",BpelProcessBuilder.WSBPEL2_0_NS);
+      for(Iterator<QName> it = _20EXTENSIBLE_ELEMENTS.iterator();it.hasNext();) {
+        QName qn = it.next();
+        String nodename = qn.getLocalPart().toUpperCase();
+        addOtherEdge(nodename,"EXTENSIBILITY_BUCKET",BpelProcessBuilder.WSBPEL2_0_NS);
+      }
+    }
+  
+  private void addActivities() {
+    addStateFactory("SOURCES",new BpelLinkSourcesState.Factory());
+    addStateFactory("SOURCE",new BpelLinkSourceState.Factory());
+    addStateFactory("TARGETS",new BpelLinkTargetsState.Factory());
+    addStateFactory("JOINCONDITION", new BpelExpressionState.Factory());
+    addStateFactory("TARGET",new BpelLinkTargetState.Factory());
+    addStateFactory("TCONDITION",  new BpelExpressionState.Factory());
+    addQNameEdge("TARGETS", "JOINCONDITION", Bpel20QNames.JOIN_CONDITION);
+    addQNameEdge("TARGETS", "TARGET", Bpel20QNames.TARGET);
+    addQNameEdge("SOURCE", "TCONDITION", Bpel20QNames.TRANSITION_CONDITION);
+    addQNameEdge("SOURCES", "SOURCE", Bpel20QNames.SOURCE);
+    
+    for (Iterator<QName> it = _ACTIVITIES.keySet().iterator();it.hasNext();) {
+      QName qn = it.next();
+      String nodename = qn.getLocalPart().toUpperCase();
+      addStateFactory(nodename, _ACTIVITIES.get(qn));
+      addQNameEdge(nodename,"SOURCES",Bpel20QNames.SOURCES);
+      addQNameEdge(nodename,"TARGETS",Bpel20QNames.TARGETS);
+    }
+  }
+  
+  private void addActivityTransitionsTo(String source) {
+    for (Iterator<QName> it = _ACTIVITIES.keySet().iterator();it.hasNext();) {
+      QName qn = it.next();
+      String nodename = qn.getLocalPart().toUpperCase();
+      addQNameEdge(source,nodename,qn);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelIfActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelIfActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelIfActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelIfActivityState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,172 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.api.Expression;
+import org.apache.ode.bom.impl.nodes.SwitchActivityImpl;
+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 BpelIfActivityState extends BpelBaseActivityState {
+	private static final StateFactory _factory = new Factory();
+  private Expression _ifExpr;
+  
+	BpelIfActivityState(StartElement se, ParseContext pc) throws ParseException {
+		super(se,pc);
+	}
+	protected Activity createActivity(StartElement se) {
+		return new SwitchActivityImpl();
+	}
+	public void handleChildCompleted(State pn) throws ParseException {
+		switch(pn.getType()){
+			case BPEL_THEN: 
+				if(_ifExpr == null)
+					throw new IllegalStateException("Missing 'if' condition");
+        ((SwitchActivityImpl) getActivity()).addCase(_ifExpr, 
+            ((ThenState)pn).getActivity());
+				break;
+      case BPEL_EXPRESSION:
+      	_ifExpr = ((BpelExpressionState)pn).getExpression();
+        break;
+      case BPEL_ELSEIF:
+      	ElseIfState c = (ElseIfState) pn;
+      	((SwitchActivityImpl) getActivity()).addCase(c.getExpression(), c
+					.getActivity());
+        break;
+		  case BPEL_ELSE:
+		  	((SwitchActivityImpl) getActivity()).addCase(null,
+					((ElseState) pn).getActivity());
+		  	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 BPEL_IF;
+	}
+	static class Factory implements StateFactory {
+		public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+			return new BpelIfActivityState(se,pc);
+		}
+	}
+	static class ElseIfState extends ElseState {
+		private static final StateFactory _factory = new Factory();
+		private Expression _e;
+		ElseIfState(StartElement se,ParseContext pc) throws ParseException {
+			super(se,pc);
+		}
+		public void handleChildCompleted(State pn) throws ParseException {
+			switch (pn.getType()) {
+				case BPEL_EXPRESSION :
+					_e = ((BpelExpressionState) pn).getExpression();
+					break;
+				default :
+					super.handleChildCompleted(pn);
+			}
+		}
+		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 BPEL_ELSEIF;
+		}
+		static class Factory implements StateFactory {
+			public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+				return new ElseIfState(se,pc);
+			}
+		}
+	}
+	static class ElseState extends BaseBpelState {
+		private static final StateFactory _factory = new Factory();
+		private Activity _a;
+		ElseState(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 BPEL_ELSE;
+		}
+		static class Factory implements StateFactory {
+			public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+				return new ElseState(se,pc);
+			}
+		}
+	}
+  static class ThenState extends BaseBpelState {
+    private static final StateFactory _factory = new Factory();
+    private Activity _a;
+    ThenState(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 BPEL_THEN;
+    }
+    static class Factory implements StateFactory {
+      public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+        return new ThenState(se,pc);
+      }
+    }
+  }
+}
\ No newline at end of file

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelImportState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelImportState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelImportState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelImportState.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_2_0;
+
+import org.apache.ode.bom.api.Import;
+import org.apache.ode.bom.impl.nodes.ImportImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+class BpelImportState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private Import _import;
+  
+  private BpelImportState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _import = new ImportImpl();
+    XmlAttributes attr = se.getAttributes();
+    _import.setImportType(attr.getValue("importType"));
+    try {
+			_import.setLocation(new URI(attr.getValue("location")));
+		} catch (URISyntaxException e) {
+      // TODO: Error or warning?
+      // TODO: Add meaningful key.
+      getParseContext().parseError(ParseError.ERROR,se,"","Unable to parse URI '" + attr.getValue("location") + "'");
+		}
+    _import.setNamespace(attr.getValue("namespace"));
+    _import.setLineNo(se.getLocation().getLineNumber());
+    _import.setNamespaceContext(se.getNamespaceContext());
+  }
+  
+  Import getImport(){
+    return _import;
+  }
+  
+  /**
+   * @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 BPEL_IMPORT;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelImportState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelInvokeActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelInvokeActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelInvokeActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelInvokeActivityState.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_2_0;
+
+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;
+
+import java.util.Iterator;
+
+class BpelInvokeActivityState extends BpelBaseActivityState {
+
+  private static final StateFactory _factory = new Factory();
+
+  BpelInvokeActivityState(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.BPEL_CORRELATIONS:
+      for (Iterator<Correlation> it = ((BpelCorrelationsState)pn).getCorrelations();it.hasNext();) {
+        iai.addCorrelation(it.next());
+      }
+      break;
+    case BaseBpelState.BPEL_CATCH:
+      iai.getFaultHandler().addCatch(((BpelCatchState)pn).getCatch());
+      break;
+    case BaseBpelState.BPEL_CATCHALL:
+      iai.getFaultHandler().addCatch(((BpelCatchAllState)pn).getCatch());
+      break;
+    case BaseBpelState.BPEL_COMPENSATIONHANDLER:
+      iai.setCompensationHandler(((BpelCompensationHandlerState)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 BPEL_INVOKE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelInvokeActivityState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourceState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourceState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourceState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourceState.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_2_0;
+
+import org.apache.ode.bom.api.LinkSource;
+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 BpelLinkSourceState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private LinkSourceImpl _s;
+
+  BpelLinkSourceState(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"));
+  }
+  
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch (pn.getType()) {
+    case BPEL_EXPRESSION:
+      _s.setTransitionCondition(((BpelExpressionState)pn).getExpression());
+      break;
+    default:
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  
+  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 BPEL_SOURCE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLinkSourceState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourcesState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourcesState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourcesState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkSourcesState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,62 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import org.apache.ode.bom.api.LinkSource;
+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 java.util.ArrayList;
+import java.util.Iterator;
+
+class BpelLinkSourcesState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<LinkSource> _sources = new ArrayList<LinkSource>();
+
+  BpelLinkSourcesState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    switch (pn.getType()) {
+    case BPEL_SOURCE:
+      _sources.add(((BpelLinkSourceState)pn).getSource());
+      break;
+    default:
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  
+  public Iterator<LinkSource> getSources() {
+    return _sources.iterator();
+  }
+
+  /**
+   * @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 BPEL_SOURCES;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLinkSourcesState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkState.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_2_0;
+
+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 BpelLinkState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private LinkImpl _link;
+  
+  BpelLinkState(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 BPEL_LINK;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLinkState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetState.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_2_0;
+
+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 BpelLinkTargetState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private LinkTargetImpl _t;
+
+  BpelLinkTargetState(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 BPEL_TARGET;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLinkTargetState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetsState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetsState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetsState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinkTargetsState.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_2_0;
+
+import org.apache.ode.bom.api.Expression;
+import org.apache.ode.bom.api.LinkTarget;
+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 java.util.ArrayList;
+import java.util.Iterator;
+
+class BpelLinkTargetsState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<LinkTarget> _targets = new ArrayList<LinkTarget>();
+  private Expression _expr;
+  
+  
+  BpelLinkTargetsState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if(pn instanceof BpelLinkTargetState){
+      _targets.add(((BpelLinkTargetState)pn).getTarget()); 
+    }else if(pn instanceof BpelExpressionState){
+    	_expr = ((BpelExpressionState)pn).getExpression();
+    }else{
+      super.handleChildCompleted(pn);
+    }
+  }
+  
+  public Expression getJoinCondition(){
+  	return _expr;
+  }
+  
+  public Iterator<LinkTarget> getTargets() {
+    return _targets.iterator();
+  }
+
+  /**
+   * @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 BPEL_TARGETS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLinkTargetsState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinksState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinksState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinksState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLinksState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,62 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+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;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+class BpelLinksState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private ArrayList<Link> _links = new ArrayList<Link>();
+   
+  private BpelLinksState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+  }
+  
+  public Iterator<Link> 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() == BPEL_LINK) {
+      _links.add(((BpelLinkState)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 BPEL_LINKS;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLinksState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLiteral.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLiteral.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLiteral.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelLiteral.java Mon May  1 14:37:44 2006
@@ -0,0 +1,61 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.SaxEvent;
+import org.apache.ode.sax.evt.StartElement;
+
+import org.w3c.dom.Node;
+
+class BpelLiteral extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+
+	private DOMGenerator _domGenerator;
+
+  BpelLiteral(StartElement se,ParseContext pc) throws ParseException {
+    super(pc);
+    _domGenerator = new DOMGenerator();
+  }
+
+  Node getLiteral(){
+    return _domGenerator.getRoot();
+  }
+
+  /**
+   * @see org.apache.ode.sax.fsa.State#handleSaxEvent(org.apache.ode.sax.evt.SaxEvent)
+   */
+  public void handleSaxEvent(SaxEvent se) throws ParseException {
+    _domGenerator.handleSaxEvent(se);
+  }
+  /**
+   * @see org.apache.ode.sax.fsa.State#done()
+   */
+  public void done(){
+  }
+
+  /**
+   * @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 BPEL_LITERAL;
+  }
+
+  static class Factory implements StateFactory {
+
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelLiteral(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnAlarmState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnAlarmState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnAlarmState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnAlarmState.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_2_0;
+
+import org.apache.ode.bom.api.OnAlarm;
+import org.apache.ode.bom.impl.nodes.OnAlarmImpl;
+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 BpelOnAlarmState extends BaseBpelState {
+  
+  private static final StateFactory _factory = new Factory();
+  private OnAlarmImpl _o;
+  
+  BpelOnAlarmState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    _o = new OnAlarmImpl();
+    
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _o.setActivity(((ActivityStateI)pn).getActivity());
+    } else if (pn instanceof BpelForState){
+      _o.setFor(((BpelForState)pn).getExpression());
+    } else if (pn instanceof BpelUntilState){
+      _o.setUntil(((BpelUntilState)pn).getExpression());
+    } else if(pn instanceof BpelRepeatEveryState){
+      _o.setRepeatEvery(((BpelRepeatEveryState)pn).getExpression());
+    } else {
+      super.handleChildCompleted(pn);
+    }
+    // TODO repeatEvery element
+  }
+  
+  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 BPEL_ONALARM;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelOnAlarmState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnEventState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnEventState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnEventState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnEventState.java Mon May  1 14:37:44 2006
@@ -0,0 +1,84 @@
+/*
+ * File:      $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+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;
+
+import java.util.Iterator;
+
+class BpelOnEventState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private OnEventImpl _o;
+  
+  BpelOnEventState(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"));
+    _o.setMessageExchangeId(atts.getValue("messageExchange"));
+    _o.setMessageType(se.getNamespaceContext().derefQName(atts.getValue("messageType")));
+    if (atts.hasAtt("variable")) {
+      _o.setVariable(atts.getValue("variable"));
+    }
+    if (atts.hasAtt("element")) {
+      
+    }
+  }
+  
+  public void handleChildCompleted(State pn) throws ParseException {
+    if (pn instanceof ActivityStateI) {
+      _o.setActivity(((ActivityStateI)pn).getActivity());
+    } else if (pn.getType() == BaseBpelState.BPEL_CORRELATIONS){
+      for (Iterator<Correlation> it = ((BpelCorrelationsState)pn).getCorrelations();it.hasNext();) {
+        Correlation c = it.next();
+        if (c.getPattern() != Correlation.CORRPATTERN_IN) {
+          getParseContext().parseError(ParseError.WARNING,
+              c,"","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 BPEL_ONEVENT;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelOnEventState(se,pc);
+    }
+  }
+}

Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnMessageState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnMessageState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnMessageState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelOnMessageState.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_2_0;
+
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.bom.api.OnMessage;
+import org.apache.ode.bom.impl.nodes.OnMessageImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+import java.util.Iterator;
+
+class BpelOnMessageState extends BaseBpelState {
+
+  private static final StateFactory _factory = new Factory();
+  private OnMessageImpl _o;
+  
+  BpelOnMessageState(StartElement se, ParseContext pc) throws ParseException {
+    super(pc);
+    XmlAttributes atts = se.getAttributes();
+    _o = new OnMessageImpl();
+    _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"));
+    _o.setMessageExchangeId(atts.getValue("messageExchange"));
+    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.BPEL_CORRELATIONS){
+      for (Iterator<Correlation> it = ((BpelCorrelationsState)pn).getCorrelations();it.hasNext();) {
+        Correlation c = it.next();
+        if (c.getPattern() != Correlation.CORRPATTERN_IN) {
+          getParseContext().parseError(ParseError.WARNING,
+              c,"","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 OnMessage getOnMessageHandler() {
+    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 BPEL_ONMESSAGE;
+  }
+  
+  static class Factory implements StateFactory {
+    
+    public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+      return new BpelOnMessageState(se,pc);
+    }
+  }
+}