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 [6/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_1_1/Bpel11PartnerState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnerState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,52 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11PartnerState extends BaseBpelState {
+
+ private static final StateFactory _factory = new Factory();
+
+ private Bpel11PartnerState(StartElement se, ParseContext pc) throws ParseException {
+ super(pc);
+ pc.parseError(ParseError.WARNING,se,
+ "PARSER_WARNING","The <partner> element is ignored and should be omitted.");
+ // TODO: Get real error key.
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ switch (pn.getType()) {
+ case BPEL11_PARTNERLINK:
+ 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_PARTNER;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11PartnerState(se,pc);
+ }
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnersState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnersState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnersState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PartnersState.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 java.util.Collections;
+import java.util.Iterator;
+
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+
+class Bpel11PartnersState extends BaseBpelState {
+
+ private static final StateFactory _factory = new Factory();
+
+ private Bpel11PartnersState(StartElement se, ParseContext pc) throws ParseException {
+ super(pc);
+ pc.parseError(ParseError.WARNING,se,
+ "PARSER_WARNING","The <partners> element is ignored and should be omitted.");
+ // TODO: Internationalize
+ }
+
+ public Iterator getPartners() {
+ return Collections.emptyList().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_PARTNER) {
+ // ignore
+ } 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_PARTNERS;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11PartnersState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PickActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PickActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PickActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11PickActivityState.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.PickActivityImpl;
+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 Bpel11PickActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11PickActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) throws ParseException {
+ PickActivityImpl pai = new PickActivityImpl();
+ XmlAttributes atts = se.getAttributes();
+ if (atts.hasAtt("createInstance")) {
+ pai.setCreateInstance(checkYesNo(atts.getValue("createInstance")));
+ }
+ return pai;
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn.getType() == BPEL11_ONMESSAGE) {
+ ((PickActivityImpl)getActivity()).addOnMessage(
+ ((Bpel11OnMessageState)pn).getOnEventHandler());
+ } else if (pn.getType() == BPEL11_ONALARM) {
+ ((PickActivityImpl)getActivity()).addOnAlarm(
+ ((Bpel11OnAlarmState)pn).getOnAlarmHandler());
+ } 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_PICK;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11PickActivityState(se,pc);
+ }
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ProcessState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ProcessState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ProcessState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ProcessState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,143 @@
+/*
+ * 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.*;
+import org.apache.ode.bom.api.Process;
+import org.apache.ode.bom.impl.nodes.ProcessImpl;
+import org.apache.ode.bpel.parser.BpelProcessState;
+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 Bpel11ProcessState extends BaseBpelState implements BpelProcessState {
+
+ private static final StateFactory _factory = new Factory();
+
+ // TODO still required?
+ private static final XmlAttributeSpec spec = new FilterSpec(
+ new String[] {"name","targetNamespace"},
+ new String[] {"queryLanguage","expressionLanguage","suppressJoinFailure",
+ "enableInstanceCompensation","abstractProcess"}
+ );
+
+ private Process _process;
+
+ Bpel11ProcessState(StartElement se, ParseContext pc) throws ParseException {
+ super(pc);
+ XmlAttributes atts = se.getAttributes();
+ String name = atts.getValue("name");
+ String tns = atts.getValue("targetNamespace");
+ // TODO still required?
+ short suppressJoinFailure;
+
+ _process = new ProcessImpl();
+ if (se.getLocation() != null) {
+ _process.setSource(se.getLocation().getSystemId());
+ }
+
+ _process.setBpelVersion(Process.BPEL_V110);
+ _process.setNamespaceContext(se.getNamespaceContext());
+ _process.setName(name);
+ _process.setTargetNamespace(tns);
+ _process.setSuppressJoinFailure(getSuppressJoinFailure(atts));
+ if (atts.hasAtt("queryLanguage")) {
+ _process.setQueryLanguage(atts.getValue("queryLanguage"));
+ }
+ if (atts.hasAtt("expressionLanguage")) {
+ _process.setExpressionLanguage(atts.getValue("expressionLanguage"));
+ }
+ /*
+ * NOTE: Xerces automatically fills in the default value of the attribute for us,
+ * in this case "no" for enableInstanceCompensation and abstractProcess. Thus,
+ * we can't warn if it's present because we don't know if the user or the parser
+ * put it in...
+ */
+ if (atts.hasAtt("enableInstanceCompensation") && checkYesNo(atts.getValue("enableInstanceCompensation"))) {
+ pc.parseError(ParseError.WARNING,se,
+ "PARSER_WARNING","Instance compensation is not well-defined; it will not be used at runtime.");
+ }
+ if (atts.hasAtt("abstractProcess") && checkYesNo(atts.getValue("abstractProcess"))) {
+ pc.parseError(ParseError.FATAL,se,
+ "PARSER_FATAL","PXE does not support the parsing or compilation of abstract processes.");
+ // TODO: Internationalize.
+ }
+ }
+
+ /**
+ * @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_PARTNERLINKS:
+ for (Iterator it = ((Bpel11PartnerLinksState)pn).getPartnerLinks();it.hasNext();) {
+ _process.addPartnerLink((PartnerLink)it.next());
+ }
+ break;
+ case BPEL11_PARTNERS:
+ throw new IllegalStateException("" + BPEL11_PARTNERS);
+ case BPEL11_VARIABLES:
+ for (Iterator it = ((Bpel11VariablesState)pn).getVariables();it.hasNext();) {
+ _process.addVariable((Variable)it.next());
+ }
+ break;
+ case BPEL11_CORRELATIONSETS:
+ for (Iterator it = ((Bpel11CorrelationSetsState)pn).getCorrelationSets();it.hasNext();) {
+ _process.addCorrelationSet((CorrelationSet)it.next());
+ }
+ break;
+ case BPEL11_FAULTHANDLERS:
+ _process.setFaultHandler(((Bpel11FaultHandlersState)pn).getFaultHandler());
+ break;
+ case BPEL11_COMPENSATIONHANDLER:
+ _process.setCompensationHandler(((Bpel11CompensationHandlerState)pn).getCompensationHandler());
+ break;
+ case BPEL11_EVENTHANDLERS:
+ for (Iterator<OnEvent> it = ((Bpel11EventHandlersState)pn).getOnEventHandlers();it.hasNext();) {
+ _process.addOnEventHandler(it.next());
+ }
+ for (Iterator<OnAlarm> it = ((Bpel11EventHandlersState)pn).getOnAlarmHandlers();it.hasNext();) {
+ _process.addOnAlarmEventHandler(it.next());
+ }
+ break;
+ default:
+ if (pn instanceof ActivityStateI) {
+ _process.setRootActivity(((ActivityStateI)pn).getActivity());
+ } else {
+ super.handleChildCompleted(pn);
+ }
+ }
+ }
+
+ public Process getProcess() {
+ return _process;
+ }
+
+ /**
+ * @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_PROCESS;
+ }
+
+ public static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11ProcessState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QName.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QName.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QName.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QName.java Mon May 1 14:37:44 2006
@@ -0,0 +1,18 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.parser.BpelProcessBuilder;
+
+class Bpel11QName extends QName {
+
+ public Bpel11QName(String local) {
+ super(BpelProcessBuilder.BPEL4WS_NS,local);
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QNames.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QNames.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QNames.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11QNames.java Mon May 1 14:37:44 2006
@@ -0,0 +1,68 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import javax.xml.namespace.QName;
+
+public interface Bpel11QNames {
+
+ public static final QName PROCESS = new Bpel11QName("process");
+
+ public static final QName SOURCE = new Bpel11QName("source");
+ public static final QName TARGET = new Bpel11QName("target");
+
+ public static final QName PARTNERLINKS = new Bpel11QName("partnerLinks");
+ public static final QName PARTNERLINK = new Bpel11QName("partnerLink");
+
+ public static final QName PARTNERS = new Bpel11QName("partners");
+ public static final QName PARTNER = new Bpel11QName("partner");
+
+ public static final QName VARIABLES = new Bpel11QName("variables");
+ public static final QName VARIABLE = new Bpel11QName("variable");
+
+ public static final QName CORRELATIONSETS = new Bpel11QName("correlationSets");
+ public static final QName CORRELATIONSET = new Bpel11QName("correlationSet");
+
+ public static final QName FAULTHANDLERS = new Bpel11QName("faultHandlers");
+ public static final QName CATCH = new Bpel11QName("catch");
+ public static final QName CATCHALL = new Bpel11QName("catchAll");
+
+ public static final QName COMPENSATIONHANDLER = new Bpel11QName("compensationHandler");
+
+ public static final QName COMPENSATE = new Bpel11QName("compensate");
+
+ public static final QName EVENTHANDLERS = new Bpel11QName("eventHandlers");
+ public static final QName ONMESSAGE = new Bpel11QName("onMessage");
+ public static final QName ONALARM = new Bpel11QName("onAlarm");
+
+ public static final QName CORRELATIONS = new Bpel11QName("correlations");
+ public static final QName CORRELATION = new Bpel11QName("correlation");
+
+ public static final QName EMPTY = new Bpel11QName("empty");
+ public static final QName INVOKE = new Bpel11QName("invoke");
+ public static final QName RECEIVE = new Bpel11QName("receive");
+ public static final QName REPLY = new Bpel11QName("reply");
+ public static final QName ASSIGN = new Bpel11QName("assign");
+ public static final QName COPY = new Bpel11QName("copy");
+ public static final QName FROM = new Bpel11QName("from");
+ public static final QName TO = new Bpel11QName("to");
+ public static final QName WAIT = new Bpel11QName("wait");
+ public static final QName THROW = new Bpel11QName("throw");
+ public static final QName TERMINATE = new Bpel11QName("terminate");
+
+ public static final QName FLOW = new Bpel11QName("flow");
+ public static final QName LINKS = new Bpel11QName("links");
+ public static final QName LINK = new Bpel11QName("link");
+
+ public static final QName SWITCH = new Bpel11QName("switch");
+ public static final QName CASE = new Bpel11QName("case");
+ public static final QName OTHERWISE = new Bpel11QName("otherwise");
+
+ public static final QName WHILE = new Bpel11QName("while");
+ public static final QName SEQUENCE = new Bpel11QName("sequence");
+ public static final QName PICK = new Bpel11QName("pick");
+ public static final QName SCOPE = new Bpel11QName("scope");
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReceiveActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReceiveActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReceiveActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReceiveActivityState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,77 @@
+/*
+ * 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.api.ReceiveActivity;
+import org.apache.ode.bom.impl.nodes.ReceiveActivityImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11ReceiveActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11ReceiveActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ ReceiveActivityImpl rai = new ReceiveActivityImpl();
+ XmlAttributes atts = se.getAttributes();
+ if (atts.hasAtt("portType")) {
+ rai.setPortType(se.getNamespaceContext().derefQName(atts.getValue("portType")));
+ }
+ rai.setPartnerLink(atts.getValue("partnerLink"));
+ rai.setOperation(atts.getValue("operation"));
+ rai.setVariable(atts.getValue("variable"));
+ if (atts.hasAtt("createInstance")) {
+ rai.setCreateInstance(checkYesNo(atts.getValue("createInstance")));
+ }
+ return rai;
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn.getType() == BPEL11_CORRELATIONS) {
+ for (Iterator it = ((Bpel11CorrelationsState)pn).getCorrelations();it.hasNext();) {
+ Correlation c = (Correlation)it.next();
+ 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);
+ ((ReceiveActivity)getActivity()).addCorrelation(c);
+ }
+ } 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_RECEIVE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11ReceiveActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReplyActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReplyActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReplyActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ReplyActivityState.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.Activity;
+import org.apache.ode.bom.api.Correlation;
+import org.apache.ode.bom.api.ReplyActivity;
+import org.apache.ode.bom.impl.nodes.ReplyActivityImpl;
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+class Bpel11ReplyActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11ReplyActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ ReplyActivityImpl rai = new ReplyActivityImpl();
+ XmlAttributes atts = se.getAttributes();
+ if (atts.hasAtt("portType")) {
+ rai.setPortType(se.getNamespaceContext().derefQName(atts.getValue("portType")));
+ }
+ rai.setPartnerLink(atts.getValue("partnerLink"));
+ rai.setOperation(atts.getValue("operation"));
+ rai.setVariable(atts.getValue("variable"));
+ if (atts.hasAtt("faultName")) {
+ rai.setFaultName(se.getNamespaceContext().derefQName(atts.getValue("faultName")));
+ }
+ return rai;
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn.getType() == BPEL11_CORRELATIONS) {
+ for (Iterator it = ((Bpel11CorrelationsState)pn).getCorrelations();it.hasNext();) {
+ Correlation c = (Correlation)it.next();
+ if (c.getPattern() != Correlation.CORRPATTERN_OUT) {
+ getParseContext().parseError(ParseError.WARNING,c,
+ "PARSER_WARNING",
+ "The \"out\" correlation pattern is the only one that makes sense for <reply>.");
+ // TODO: Internationalize.
+ }
+ // force pattern OUT
+ c.setPattern(Correlation.CORRPATTERN_OUT);
+ ((ReplyActivity)getActivity()).addCorrelation(c);
+ }
+ } 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_REPLY;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11ReplyActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ScopeState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ScopeState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ScopeState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ScopeState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,97 @@
+/*
+ * 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.*;
+import org.apache.ode.bom.impl.nodes.ScopeActivityImpl;
+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 Bpel11ScopeState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11ScopeState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ ScopeActivityImpl sai = new ScopeActivityImpl();
+ XmlAttributes atts = se.getAttributes();
+ if (atts.hasAtt("variableAccessSerializable")) {
+ sai.setVariableAccessSerialized(
+ checkYesNo(atts.getValue("variableAccessSerializable")));
+ }
+ return sai;
+ }
+
+ /**
+ * @see org.apache.ode.sax.fsa.State#handleChildCompleted(org.apache.ode.sax.fsa.State)
+ */
+ public void handleChildCompleted(State pn) throws ParseException {
+ ScopeActivityImpl scope = (ScopeActivityImpl)getActivity();
+ switch (pn.getType()) {
+ case BPEL11_VARIABLES:
+ for (Iterator it = ((Bpel11VariablesState)pn).getVariables();it.hasNext();) {
+ scope.addVariable((Variable)it.next());
+ }
+ break;
+ case BPEL11_CORRELATIONSETS:
+ for (Iterator it = ((Bpel11CorrelationSetsState)pn).getCorrelationSets();it.hasNext();) {
+ scope.addCorrelationSet((CorrelationSet)it.next());
+ }
+ break;
+ case BPEL11_FAULTHANDLERS:
+ scope.setFaultHandler(((Bpel11FaultHandlersState)pn).getFaultHandler());
+ break;
+ case BPEL11_COMPENSATIONHANDLER:
+ scope.setCompensationHandler(((Bpel11CompensationHandlerState)pn).getCompensationHandler());
+ break;
+ case BPEL11_EVENTHANDLERS:
+ for (Iterator<OnEvent> it = ((Bpel11EventHandlersState)pn).getOnEventHandlers();it.hasNext();) {
+ scope.addOnEventHandler(it.next());
+ }
+ for (Iterator<OnAlarm> it = ((Bpel11EventHandlersState)pn).getOnAlarmHandlers();it.hasNext();) {
+ scope.addOnAlarmEventHandler(it.next());
+ }
+ break;
+ default:
+ if (pn instanceof ActivityStateI) {
+ scope.setChildActivity(((ActivityStateI)pn).getActivity());
+ } 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_SCOPE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11ScopeState(se,pc);
+ }
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SequenceActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SequenceActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SequenceActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SequenceActivityState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,58 @@
+/*
+ * 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.SequenceActivityImpl;
+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 Bpel11SequenceActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11SequenceActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ return new SequenceActivityImpl();
+ }
+
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn instanceof ActivityStateI) {
+ ((SequenceActivityImpl)getActivity()).addChild(((ActivityStateI)pn).getActivity());
+ } 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_SEQUENCE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11SequenceActivityState(se, pc);
+ }
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SwitchActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SwitchActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SwitchActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11SwitchActivityState.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.Activity;
+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 Bpel11SwitchActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11SwitchActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ return new SwitchActivityImpl();
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn.getType() == BPEL11_CASE) {
+ Bpel11CaseState c = (Bpel11CaseState)pn;
+ ((SwitchActivityImpl)getActivity()).addCase(c.getExpression(),c.getActivity());
+ } else if (pn.getType() == BPEL11_OTHERWISE){
+ ((SwitchActivityImpl)getActivity()).addCase(
+ null,((Bpel11OtherwiseState)pn).getActivity());
+ } 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_SWITCH;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11SwitchActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11TerminateActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11TerminateActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11TerminateActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11TerminateActivityState.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.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 Bpel11TerminateActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11TerminateActivityState(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 BPEL11_TERMINATE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11TerminateActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ThrowActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ThrowActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ThrowActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ThrowActivityState.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.Activity;
+import org.apache.ode.bom.impl.nodes.ThrowActivityimpl;
+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 Bpel11ThrowActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11ThrowActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ ThrowActivityimpl tai = new ThrowActivityimpl();
+ XmlAttributes atts = se.getAttributes();
+ tai.setFaultName(se.getNamespaceContext().derefQName(atts.getValue("faultName")));
+ if (atts.hasAtt("faultVariable")) {
+ tai.setFaultVariable(atts.getValue("faultVariable"));
+ }
+ return tai;
+ }
+
+ /**
+ * @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_THROW;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11ThrowActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ToState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ToState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ToState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11ToState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,94 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.bom.api.To;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+import org.apache.ode.bom.impl.nodes.PropertyValImpl;
+import org.apache.ode.bom.impl.nodes.VariableValImpl;
+import org.apache.ode.bom.impl.nodes.PartnerLinkValImpl;
+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 Bpel11ToState extends BaseBpelState {
+
+ private static final StateFactory _factory = new Factory();
+ private To _t;
+
+ private XmlAttributeSpec VAR = new FilterSpec(
+ new String[] {"variable"},new String[] {"part","query"});
+ private XmlAttributeSpec PLINK = new FilterSpec(
+ new String[] {"partnerLink"},new String[] {});
+ private XmlAttributeSpec VAR_PROP = new FilterSpec(
+ new String[] {"variable","property"},new String[] {});
+
+
+ Bpel11ToState(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);
+ }
+ _t = 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")));
+ _t = pvi;
+ } else if (PLINK.matches(atts)) {
+ PartnerLinkValImpl pvi = new PartnerLinkValImpl();
+ pvi.setLineNo(se.getLocation().getLineNumber());
+ pvi.setPartnerLink(atts.getValue("partnerLink"));
+ _t = pvi;
+ } else {
+ pc.parseError(ParseError.ERROR,se,"PARSER_ERROR",
+ "Unsupported attribute combination " + atts.toString());
+ // TODO: Get real error key here.
+ }
+ }
+
+
+ public To getTo() {
+ 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_TO;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11ToState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariableState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariableState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariableState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariableState.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 org.apache.ode.bom.api.Variable;
+import org.apache.ode.bom.impl.nodes.VariableImpl;
+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 Bpel11VariableState extends BaseBpelState {
+
+ private static final StateFactory _factory = new Factory();
+ private VariableImpl _v;
+
+ private static final XmlAttributeSpec MESSAGETYPE = new FilterSpec(
+ new String[] {"name","messageType"},
+ new String[] {});
+ private static final XmlAttributeSpec ELEMENTTYPE = new FilterSpec(
+ new String[] {"name","element"},
+ new String[] {});
+ private static final XmlAttributeSpec TYPE = new FilterSpec(
+ new String[] {"name","type"},
+ new String[] {});
+
+ private static final XmlAttributeSpec VALID = new OrSpec(MESSAGETYPE,
+ new OrSpec(TYPE,ELEMENTTYPE));
+
+ Bpel11VariableState(StartElement se, ParseContext pc) throws ParseException {
+ super(pc);
+ XmlAttributes atts = se.getAttributes();
+ if (!VALID.matches(atts)){
+ pc.parseError(ParseError.ERROR,se,"PARSER_ERROR",
+ "Invalid attributes " + atts.toString() + " for <variable>");
+ }
+ _v = new VariableImpl();
+ _v.setNamespaceContext(se.getNamespaceContext());
+ _v.setLineNo(se.getLocation().getLineNumber());
+ _v.setName(atts.getValue("name"));
+ if (MESSAGETYPE.matches(atts)) {
+ _v.setMessageType(se.getNamespaceContext().derefQName(atts.getValue("messageType")));
+ } else if (TYPE.matches(atts)) {
+ _v.setSchemaType(se.getNamespaceContext().derefQName(atts.getValue("type")));
+ } else if (ELEMENTTYPE.matches(atts)) {
+ _v.setElementType(se.getNamespaceContext().derefQName(atts.getValue("element")));
+ }
+ }
+
+ public Variable getVariable() {
+ return _v;
+ }
+
+ /**
+ * @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_VARIABLE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11VariableState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariablesState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariablesState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariablesState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11VariablesState.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.Variable;
+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 Bpel11VariablesState extends BaseBpelState {
+
+ private static final StateFactory _factory = new Factory();
+ private List<Variable> _vars = new ArrayList<Variable>();
+
+ private Bpel11VariablesState(StartElement se, ParseContext pc) throws ParseException {
+ super(pc);
+ }
+
+ public Iterator<Variable> getVariables() {
+ return _vars.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_VARIABLE) {
+ _vars.add(((Bpel11VariableState)pn).getVariable());
+ } 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_VARIABLES;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11VariablesState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WaitActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WaitActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WaitActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WaitActivityState.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_1_1;
+
+import org.apache.ode.bom.api.Activity;
+import org.apache.ode.bom.impl.nodes.ExpressionImpl;
+import org.apache.ode.bom.impl.nodes.WaitActivityImpl;
+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 Bpel11WaitActivityState extends Bpel11BaseActivityState {
+
+ private static final XmlAttributeSpec FOR = new FilterSpec(
+ new String[] {"for"},BPEL11_BASE_ACTIVITY_ATTS);
+ private static final XmlAttributeSpec UNTIL = new FilterSpec(
+ new String[] {"until"},BPEL11_BASE_ACTIVITY_ATTS);
+ // TODO still required?
+ private static final XmlAttributeSpec ALARMSPEC = new OrSpec(FOR,UNTIL);
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11WaitActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) throws ParseException {
+ WaitActivityImpl wai = new WaitActivityImpl();
+ XmlAttributes atts = se.getAttributes();
+ ExpressionImpl expr = new ExpressionImpl();
+ expr.setNamespaceContext(se.getNamespaceContext());
+ expr.setLineNo(se.getLocation().getLineNumber());
+
+ if (FOR.matches(atts)) {
+ expr.setXPathString(atts.getValue("for"));
+ wai.setFor(expr);
+ } else if (UNTIL.matches(atts)) {
+ expr.setXPathString(atts.getValue("until"));
+ wai.setUntil(expr);
+ } else {
+ getParseContext().parseError(ParseError.ERROR,se,"PARSER_ERROR",
+ "Invalid attribute combination for wait; expected @for=\"<duration>\" or @until=\"<datetime>\""); // TODO: Error key.
+ }
+ return wai;
+ }
+
+ /**
+ * @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_WAIT;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11WaitActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WhileActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WhileActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WhileActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/Bpel11WhileActivityState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,68 @@
+/*
+ * 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.bom.impl.nodes.WhileActivityImpl;
+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 Bpel11WhileActivityState extends Bpel11BaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ Bpel11WhileActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ protected Activity createActivity(StartElement se) {
+ WhileActivityImpl wai = new WhileActivityImpl();
+ XmlAttributes atts = se.getAttributes();
+ if (atts.hasAtt("condition")) {
+ ExpressionImpl expr = new ExpressionImpl();
+ expr.setNamespaceContext(se.getNamespaceContext());
+ expr.setLineNo(se.getLocation().getLineNumber());
+ expr.setXPathString(atts.getValue("condition"));
+ wai.setCondition(expr);
+ }
+ return wai;
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn instanceof ActivityStateI) {
+ ((WhileActivityImpl)getActivity()).setActivity(((ActivityStateI)pn).getActivity());
+ } 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_WHILE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new Bpel11WhileActivityState(se,pc);
+ }
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BpelGraph_1_1.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BpelGraph_1_1.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BpelGraph_1_1.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/BpelGraph_1_1.java Mon May 1 14:37:44 2006
@@ -0,0 +1,227 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+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_1_1 extends AbstractGraphProvider implements Bpel11QNames {
+
+ private static final HashMap<QName,StateFactory> _11ACTIVITIES = new HashMap<QName,StateFactory>();
+ static {
+ _11ACTIVITIES.put(Bpel11QNames.ASSIGN,new Bpel11AssignActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.EMPTY,new Bpel11EmptyActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.INVOKE,new Bpel11InvokeActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.RECEIVE,new Bpel11ReceiveActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.REPLY,new Bpel11ReplyActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.WAIT,new Bpel11WaitActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.THROW,new Bpel11ThrowActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.TERMINATE,new Bpel11TerminateActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.FLOW,new Bpel11FlowActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.SWITCH,new Bpel11SwitchActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.WHILE,new Bpel11WhileActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.SEQUENCE,new Bpel11SequenceActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.PICK,new Bpel11PickActivityState.Factory());
+ _11ACTIVITIES.put(Bpel11QNames.SCOPE,new Bpel11ScopeState.Factory());
+ }
+
+ private static final HashSet<QName> _11EXTENSIBLE_ELEMENTS = new HashSet<QName>();
+ static {
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.PROCESS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.PARTNERLINKS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.PARTNERLINK);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.PARTNERS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.PARTNER);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.FAULTHANDLERS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.ONALARM);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.CATCH);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.COMPENSATIONHANDLER);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.EVENTHANDLERS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.ONMESSAGE);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.VARIABLE);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.CORRELATION);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.CORRELATIONS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.CORRELATIONSET);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.CORRELATIONSETS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.SOURCE);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.TARGET);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.PROCESS);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.COPY);
+ /*
+ * <bp11:from> cannot be handled as extensible because it can contain literal
+ * content. Extensibility in this case in the schema is used for the literal
+ * case.
+ */
+ //_11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.FROM);
+ /*
+ * <bp11:to> should probably be extensible, but the schema only allows attribute
+ * extension
+ */
+
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.LINK);
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.LINKS);
+ // Add all activities.
+ for(Iterator<QName> it = _11ACTIVITIES.keySet().iterator();it.hasNext();) {
+ _11EXTENSIBLE_ELEMENTS.add(it.next());
+ }
+ _11EXTENSIBLE_ELEMENTS.add(Bpel11QNames.COMPENSATE);
+ }
+
+ public BpelGraph_1_1() {
+ super();
+ initBpel11();
+ }
+
+ public static QName get11QName(String s) {
+ return new Bpel11QName(s);
+ }
+
+ public static StateFactory getRootStateFactory() {
+ return new Bpel11ProcessState.Factory();
+ }
+
+ /*
+ * Build the graph for BPEL4WS 1.1
+ */
+ private void initBpel11() {
+
+ add11Activities();
+
+ addQNameEdge("11ASSIGN","11COPY",Bpel11QNames.COPY);
+ addStateFactory("11COPY",new Bpel11CopyState.Factory());
+ addStateFactory("11FROM",new Bpel11FromState.Factory());
+ addQNameEdge("11COPY","11FROM",Bpel11QNames.FROM);
+ addStateFactory("11TO",new Bpel11ToState.Factory());
+ addQNameEdge("11COPY","11TO",Bpel11QNames.TO);
+
+ addStateFactory("11COMPENSATE",new Bpel11CompensateActivityState.Factory());
+
+ addStateFactory("11PARTNERLINKS",new Bpel11PartnerLinksState.Factory());
+ addStateFactory("11PARTNERLINK",new Bpel11PartnerLinkState.Factory());
+ addQNameEdge("11PARTNERLINKS","11PARTNERLINK",Bpel11QNames.PARTNERLINK);
+
+ addStateFactory("11PARTNERS",new Bpel11PartnersState.Factory());
+ addStateFactory("11PARTNER",new Bpel11PartnerState.Factory());
+ addQNameEdge("11PARTNERS","11PARTNER",Bpel11QNames.PARTNER);
+
+ addStateFactory("11VARIABLES",new Bpel11VariablesState.Factory());
+ addStateFactory("11VARIABLE",new Bpel11VariableState.Factory());
+ addQNameEdge("11VARIABLES","11VARIABLE",Bpel11QNames.VARIABLE);
+
+ addStateFactory("11CORRELATIONSETS",new Bpel11CorrelationSetsState.Factory());
+ addStateFactory("11CORRELATIONSET",new Bpel11CorrelationSetState.Factory());
+ addQNameEdge("11CORRELATIONSETS","11CORRELATIONSET",Bpel11QNames.CORRELATIONSET);
+
+ addStateFactory("11CORRELATIONS",new Bpel11CorrelationsState.Factory());
+ addStateFactory("11CORRELATION",new Bpel11CorrelationState.Factory());
+ addQNameEdge("11CORRELATIONS","11CORRELATION",Bpel11QNames.CORRELATION);
+
+ addStateFactory("11FAULTHANDLERS",new Bpel11FaultHandlersState.Factory());
+ addStateFactory("11CATCH",new Bpel11CatchState.Factory());
+ addStateFactory("11CATCHALL",new Bpel11CatchAllState.Factory());
+ addQNameEdge("11FAULTHANDLERS","11CATCH",Bpel11QNames.CATCH);
+ addQNameEdge("11FAULTHANDLERS","11CATCHALL",Bpel11QNames.CATCHALL);
+
+ addStateFactory("11EVENTHANDLERS",new Bpel11EventHandlersState.Factory());
+ addStateFactory("11ONMESSAGE",new Bpel11OnMessageState.Factory());
+ addQNameEdge("11ONMESSAGE","11CORRELATIONS",Bpel11QNames.CORRELATIONS);
+ addQNameEdge("11EVENTHANDLERS","11ONMESSAGE",Bpel11QNames.ONMESSAGE);
+ addStateFactory("11ONALARM",new Bpel11OnAlarmState.Factory());
+ addQNameEdge("11EVENTHANDLERS","11ONALARM",Bpel11QNames.ONALARM);
+
+ addStateFactory("11COMPENSATIONHANDLER",new Bpel11CompensationHandlerState.Factory());
+
+ addStateFactory("11PROCESS",new Bpel11ProcessState.Factory());
+ addQNameEdge("11PROCESS","11PARTNERS",Bpel11QNames.PARTNERS);
+ addQNameEdge("11PROCESS","11PARTNERLINKS",Bpel11QNames.PARTNERLINKS);
+ addQNameEdge("11PROCESS","11VARIABLES",Bpel11QNames.VARIABLES);
+ addQNameEdge("11PROCESS","11CORRELATIONSETS",Bpel11QNames.CORRELATIONSETS);
+ addQNameEdge("11PROCESS","11FAULTHANDLERS",Bpel11QNames.FAULTHANDLERS);
+ addQNameEdge("11PROCESS","11COMPENSATIONHANDLER",Bpel11QNames.COMPENSATIONHANDLER);
+ addQNameEdge("11PROCESS","11EVENTHANDLERS",Bpel11QNames.EVENTHANDLERS);
+
+ addQNameEdge("11SCOPE","11VARIABLES",Bpel11QNames.VARIABLES);
+ addQNameEdge("11SCOPE","11CORRELATIONSETS",Bpel11QNames.CORRELATIONSETS);
+ addQNameEdge("11SCOPE","11FAULTHANDLERS",Bpel11QNames.FAULTHANDLERS);
+ addQNameEdge("11SCOPE","11COMPENSATIONHANDLER",Bpel11QNames.COMPENSATIONHANDLER);
+ addQNameEdge("11SCOPE","11EVENTHANDLERS",Bpel11QNames.EVENTHANDLERS);
+
+ add11ActivityTransitionsTo("11PROCESS");
+ add11ActivityTransitionsTo("11COMPENSATIONHANDLER");
+ add11ActivityTransitionsTo("11CATCH");
+ addQNameEdge("11CATCH","11COMPENSATE",Bpel11QNames.COMPENSATE);
+ add11ActivityTransitionsTo("11CATCHALL");
+ addQNameEdge("11CATCHALL","11COMPENSATE",Bpel11QNames.COMPENSATE);
+ addQNameEdge("11SWITCH","11CASE", Bpel11QNames.CASE);
+ addQNameEdge("11SWITCH","11OTHERWISE", Bpel11QNames.OTHERWISE);
+ addStateFactory("11CASE", new Bpel11CaseState.Factory());
+ addStateFactory("11OTHERWISE", new Bpel11OtherwiseState.Factory());
+ add11ActivityTransitionsTo("11CASE");
+ add11ActivityTransitionsTo("11OTHERWISE");
+ add11ActivityTransitionsTo("11SEQUENCE");
+ add11ActivityTransitionsTo("11FLOW");
+ add11ActivityTransitionsTo("11WHILE");
+ add11ActivityTransitionsTo("11SCOPE");
+ add11ActivityTransitionsTo("11ONMESSAGE");
+ add11ActivityTransitionsTo("11ONALARM");
+
+ addQNameEdge("11PICK","11ONMESSAGE",Bpel11QNames.ONMESSAGE);
+ addQNameEdge("11PICK","11ONALARM",Bpel11QNames.ONALARM);
+
+ addQNameEdge("11INVOKE","11CORRELATIONS",Bpel11QNames.CORRELATIONS);
+ addQNameEdge("11INVOKE","11CATCH",Bpel11QNames.CATCH);
+ addQNameEdge("11INVOKE","11CATCHALL",Bpel11QNames.CATCHALL);
+ addQNameEdge("11INVOKE","11COMPENSATIONHANDLER",Bpel11QNames.COMPENSATIONHANDLER);
+
+ addQNameEdge("11RECEIVE","11CORRELATIONS",Bpel11QNames.CORRELATIONS);
+ addQNameEdge("11REPLY","11CORRELATIONS",Bpel11QNames.CORRELATIONS);
+
+ addStateFactory("11LINKS",new Bpel11LinksState.Factory());
+ addStateFactory("11LINK",new Bpel11LinkState.Factory());
+ addQNameEdge("11FLOW","11LINKS",Bpel11QNames.LINKS);
+ addQNameEdge("11LINKS","11LINK",Bpel11QNames.LINK);
+
+ addExtensibilityEdges();
+
+ //addQNameEdge(START,"11PROCESS",Bpel11QNames.PROCESS);
+ }
+
+ private void addExtensibilityEdges() {
+ addStateFactory("EXTENSIBILITY_BUCKET", new ExtensibilityBucketState.Factory());
+ for(Iterator<QName> it = _11EXTENSIBLE_ELEMENTS.iterator();it.hasNext();) {
+ QName qn = it.next();
+ String nodename = "11" + qn.getLocalPart().toUpperCase();
+ addOtherEdge(nodename,"EXTENSIBILITY_BUCKET",BpelProcessBuilder.BPEL4WS_NS);
+ }
+ }
+
+ private void add11Activities() {
+ addStateFactory("11SOURCE",new Bpel11LinkSourceState.Factory());
+ addStateFactory("11TARGET",new Bpel11LinkTargetState.Factory());
+ for (Iterator<QName> it = _11ACTIVITIES.keySet().iterator();it.hasNext();) {
+ QName qn = it.next();
+ String nodename = "11" + qn.getLocalPart().toUpperCase();
+ addStateFactory(nodename, _11ACTIVITIES.get(qn));
+ addQNameEdge(nodename,"11SOURCE",Bpel11QNames.SOURCE);
+ addQNameEdge(nodename,"11TARGET",Bpel11QNames.TARGET);
+ }
+ }
+
+ private void add11ActivityTransitionsTo(String source) {
+ for (Iterator<QName> it = _11ACTIVITIES.keySet().iterator();it.hasNext();) {
+ QName qn = it.next();
+ String nodename = "11" + qn.getLocalPart().toUpperCase();
+ addQNameEdge(source,nodename,qn);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ExtensibilityBucketState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ExtensibilityBucketState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ExtensibilityBucketState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_1_1/ExtensibilityBucketState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,52 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_1_1;
+
+import org.apache.ode.sax.fsa.*;
+import org.apache.ode.sax.evt.SaxEvent;
+import org.apache.ode.sax.evt.StartElement;
+
+
+/**
+ * <p>
+ * Bucket state to capture schema-level extensibility elements. Extensibility
+ * attributes must be handled elsewhere.
+ * </p>
+ */
+class ExtensibilityBucketState extends AbstractState {
+
+ private static final StateFactory _factory = new Factory();
+
+ ExtensibilityBucketState(StartElement se, ParseContext pc) {
+ super(pc);
+ }
+
+
+ static class Factory implements StateFactory {
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new ExtensibilityBucketState(se,pc);
+ }
+ }
+
+ public void handleSaxEvent(SaxEvent se) throws ParseException{
+ /*
+ * For the moment, this is a no-op implementation, but if supporting extensions
+ * is desired, those extensions can be hooked from here. Ideally, we'd have
+ * some kind of registry implementation that routes SaxEvent streams based on
+ * URI or some other scheme. However, for the moment, we don't have any use
+ * cases. WS-BPEL 2.0 extensibility can be implemented according to the spec,
+ * once that's settled.
+ */
+ }
+
+ public StateFactory getFactory() {
+ return _factory;
+ }
+
+ public int getType() {
+ return EXTENSIBILITY_ELEMENT;
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ActivityStateI.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ActivityStateI.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ActivityStateI.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/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_2_0;
+
+import org.apache.ode.bom.api.Activity;
+
+/**
+ * Marker interface.
+ */
+interface ActivityStateI {
+
+ public Activity getActivity();
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BaseBpelState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BaseBpelState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BaseBpelState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BaseBpelState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,115 @@
+/*
+ * 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.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 {
+
+ static final int BPEL_PROCESS = 2000;
+ static final int BPEL_PARTNERLINKS = 2001;
+ static final int BPEL_PARTNERLINK = 2002;
+ // Obsoleted via Issue 130.
+ static final int BPEL_PARTNERS = 2003;
+ static final int BPEL_PARTNER = 2004;
+ static final int BPEL_VARIABLES = 2005;
+ static final int BPEL_VARIABLE = 2006;
+ static final int BPEL_CORRELATIONSETS = 2007;
+ static final int BPEL_CORRELATIONSET = 2008;
+ static final int BPEL_FAULTHANDLERS = 2009;
+ static final int BPEL_CATCH = 2010;
+ static final int BPEL_CATCHALL = 2011;
+ static final int BPEL_COMPENSATIONHANDLER = 2012;
+ static final int BPEL_EVENTHANDLERS = 2013;
+ static final int BPEL_ONMESSAGE = 2014;
+ static final int BPEL_CORRELATIONS = 2015;
+ static final int BPEL_ONALARM = 2016;
+ static final int BPEL_EMPTY = 2017;
+ static final int BPEL_INVOKE = 2018;
+ static final int BPEL_RECEIVE = 2019;
+ static final int BPEL_REPLY = 2020;
+ static final int BPEL_ASSIGN = 2021;
+ static final int BPEL_COPY = 2022;
+ static final int BPEL_FROM = 2023;
+ static final int BPEL_TO = 2024;
+ static final int BPEL_WAIT = 2025;
+ static final int BPEL_THROW = 2026;
+ static final int BPEL_EXIT = 2027;
+ static final int BPEL_FLOW = 2028;
+ static final int BPEL_SWITCH = 2029;
+ static final int BPEL_WHILE = 2030;
+ static final int BPEL_SEQUENCE = 2031;
+ static final int BPEL_PICK = 2032;
+ static final int BPEL_SCOPE = 2033;
+ static final int BPEL_CASE = 2034;
+ static final int BPEL_COMPENSATE = 2035;
+ static final int BPEL_SOURCE = 2036;
+ static final int BPEL_TARGET = 2037;
+ static final int BPEL_LINKS = 2038;
+ static final int BPEL_LINK = 2039;
+ static final int BPEL_CORRELATION = 2040;
+ static final int BPEL_OTHERWISE = 2041;
+ static final int BPEL_EXPRESSION = 2042;
+ static final int BPEL_RETHROW = 2043;
+ static final int BPEL_FOR = 2044;
+ static final int BPEL_UNTIL = 2045;
+ // Obsoleted via Issue 103.
+ // TODO: Remove.
+ static final int BPEL_QUERY = 2046;
+ static final int BPEL_SERVICE_REF = 2047;
+ static final int BPEL_IMPORT = 2048;
+ static final int BPEL_REPEATEVERY = 2049;
+ static final int BPEL_SOURCES = 2050;
+ static final int BPEL_TARGETS = 2051;
+ static final int BPEL_IF = 2052;
+ static final int BPEL_ELSEIF = 2053;
+ static final int BPEL_ELSE = 2054;
+ static final int BPEL_THEN = 2055;
+ // Added via Issue 135.
+ static final int BPEL_TERMINATIONHANDLER = 2056;
+ static final int BPEL_ONEVENT = 2057;
+ // Added via 103.
+ static final int BPEL_LITERAL = 2058;
+ // Added via 160.
+ static final int BPEL_XMLVALIDATE = 2059;
+ // Added via 112.
+ static final int BPEL_TOPART = 2060;
+ static final int BPEL_FROMPART = 2061;
+
+ protected static final XmlAttributeSpec BPEL_ACTIVITY_ATTS = new FilterSpec(
+ new String[] {},
+ new String[] {"name","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_2_0/Bpel20QName.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QName.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QName.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QName.java Mon May 1 14:37:44 2006
@@ -0,0 +1,19 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import org.apache.ode.bpel.parser.BpelProcessBuilder;
+
+import javax.xml.namespace.QName;
+
+class Bpel20QName extends QName {
+
+ private static final long serialVersionUID = 1L;
+
+ public Bpel20QName(String local) {
+ super(BpelProcessBuilder.WSBPEL2_0_NS,local);
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QNames.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QNames.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QNames.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/Bpel20QNames.java Mon May 1 14:37:44 2006
@@ -0,0 +1,89 @@
+/*
+ * File: $RCSfile$
+ * Copyright: (C) 1999-2005 FiveSight Technologies Inc.
+ *
+ */
+package org.apache.ode.sax.fsa.bpel_2_0;
+
+import javax.xml.namespace.QName;
+
+interface Bpel20QNames {
+
+ public static final QName PROCESS = new Bpel20QName("process");
+
+ public static final QName IMPORT = new Bpel20QName("import");
+ public static final QName SERVICE_REF = new Bpel20QName("service-ref");
+
+ public static final QName SOURCES = new Bpel20QName("sources");
+ public static final QName SOURCE = new Bpel20QName("source");
+ public static final QName TARGETS = new Bpel20QName("targets");
+ public static final QName TARGET = new Bpel20QName("target");
+
+ public static final QName PARTNERLINKS = new Bpel20QName("partnerLinks");
+ public static final QName PARTNERLINK = new Bpel20QName("partnerLink");
+
+ public static final QName VARIABLES = new Bpel20QName("variables");
+ public static final QName VARIABLE = new Bpel20QName("variable");
+
+ public static final QName CORRELATIONSETS = new Bpel20QName("correlationSets");
+ public static final QName CORRELATIONSET = new Bpel20QName("correlationSet");
+
+ public static final QName FAULTHANDLERS = new Bpel20QName("faultHandlers");
+ public static final QName CATCH = new Bpel20QName("catch");
+ public static final QName CATCHALL = new Bpel20QName("catchAll");
+
+ public static final QName COMPENSATIONHANDLER = new Bpel20QName("compensationHandler");
+ public static final QName TERMINATIONHANDLER = new Bpel20QName("terminationHandler");
+
+ public static final QName COMPENSATE = new Bpel20QName("compensate");
+
+ public static final QName EVENTHANDLERS = new Bpel20QName("eventHandlers");
+ public static final QName ONEVENT = new Bpel20QName("onEvent");
+ public static final QName ONMESSAGE = new Bpel20QName("onMessage");
+ public static final QName ONALARM = new Bpel20QName("onAlarm");
+
+ public static final QName CORRELATIONS = new Bpel20QName("correlations");
+ public static final QName CORRELATION = new Bpel20QName("correlation");
+
+ public static final QName EMPTY = new Bpel20QName("empty");
+ public static final QName INVOKE = new Bpel20QName("invoke");
+ public static final QName RECEIVE = new Bpel20QName("receive");
+ public static final QName REPLY = new Bpel20QName("reply");
+ public static final QName ASSIGN = new Bpel20QName("assign");
+ public static final QName COPY = new Bpel20QName("copy");
+ public static final QName FROM = new Bpel20QName("from");
+ public static final QName TO = new Bpel20QName("to");
+ public static final QName WAIT = new Bpel20QName("wait");
+ public static final QName THROW = new Bpel20QName("throw");
+ public static final QName RETHROW = new Bpel20QName("rethrow");
+ public static final QName EXIT = new Bpel20QName("exit");
+
+ public static final QName FLOW = new Bpel20QName("flow");
+ public static final QName LINKS = new Bpel20QName("links");
+ public static final QName LINK = new Bpel20QName("link");
+
+ public static final QName SWITCH = new Bpel20QName("switch");
+ public static final QName CASE = new Bpel20QName("case");
+ public static final QName OTHERWISE = new Bpel20QName("otherwise");
+
+ public static final QName IF = new Bpel20QName("if");
+ public static final QName THEN = new Bpel20QName("then");
+ public static final QName ELSEIF = new Bpel20QName("elseif");
+ public static final QName ELSE = new Bpel20QName("else");
+
+ public static final QName WHILE = new Bpel20QName("while");
+ public static final QName SEQUENCE = new Bpel20QName("sequence");
+ public static final QName PICK = new Bpel20QName("pick");
+ public static final QName SCOPE = new Bpel20QName("scope");
+
+ public static final QName TRANSITION_CONDITION = new Bpel20QName("transitionCondition");
+ public static final QName FOR = new Bpel20QName("for");
+ public static final QName UNTIL = new Bpel20QName("until");
+ public static final QName REPEAT_EVERY = new Bpel20QName("repeatEvery");
+ public static final QName JOIN_CONDITION = new Bpel20QName("joinCondition");
+ public static final QName CONDITION = new Bpel20QName("condition");
+
+ public static final QName QUERY = new Bpel20QName("query");
+ public static final QName EXPRESSION = new Bpel20QName("expression");
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelAssignActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelAssignActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelAssignActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelAssignActivityState.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.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 BpelAssignActivityState extends BpelBaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ BpelAssignActivityState(StartElement se, ParseContext pc) throws ParseException {
+ super(se,pc);
+ }
+
+ public void handleChildCompleted(State pn) throws ParseException {
+ if (pn.getType() == BPEL_COPY) {
+ ((AssignActivityImpl)getActivity()).addCopy(((BpelCopyState)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 BPEL_ASSIGN;
+ }
+
+ static class Factory implements StateFactory {
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new BpelAssignActivityState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelBaseActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelBaseActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelBaseActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelBaseActivityState.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.Activity;
+import org.apache.ode.bom.api.LinkSource;
+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.evt.StartElement;
+import org.apache.ode.sax.evt.XmlAttributes;
+
+import java.util.Iterator;
+
+abstract class BpelBaseActivityState extends BaseBpelState implements ActivityStateI {
+
+ private Activity _activity;
+
+ protected static final String[] BPEL11_BASE_ACTIVITY_ATTS = new String[] {
+ "name","suppressJoinFailure","joinCondition"
+ };
+
+ protected BpelBaseActivityState(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"));
+ }
+
+ _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 BPEL_TARGETS:
+ _activity.setJoinCondition(((BpelLinkTargetsState)pn).getJoinCondition());
+ for(Iterator<LinkTarget> iter = ((BpelLinkTargetsState)pn).getTargets(); iter.hasNext(); )
+ _activity.addTarget(iter.next());
+ break;
+ case BPEL_SOURCES:
+ for(Iterator<LinkSource> iter = ((BpelLinkSourcesState)pn).getSources(); iter.hasNext(); )
+ _activity.addSource(iter.next());
+ break;
+ default:
+ super.handleChildCompleted(pn);
+ }
+ }
+
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchAllState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchAllState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchAllState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchAllState.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.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 BpelCatchAllState extends BaseBpelState {
+
+ private static final StateFactory _factory = new Factory();
+ private CatchImpl _c;
+
+ BpelCatchAllState(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 BPEL_CATCHALL;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new BpelCatchAllState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCatchState.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.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 BpelCatchState extends BpelCatchAllState {
+
+ private static final StateFactory _factory = new Factory();
+
+ private static final XmlAttributeSpec FAULTNAME = new FilterSpec(
+ new String[] {"faultName"}, new String[] {"faultVariable","faultMessageType","faultElement"});
+ private static final XmlAttributeSpec FAULTVARIABLE = new FilterSpec(
+ new String[] {"faultVariable"}, new String[] {"faultMessageType","faultElement"});
+
+ private static final XmlAttributeSpec VALID = new OrSpec(FAULTNAME,FAULTVARIABLE);
+
+ BpelCatchState(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>; expected @faultName and/or @faultVariable with @faultMessageType optional.");
+ }
+ Catch c = getCatch();
+ if (atts.hasAtt("faultName"))
+ c.setFaultName(se.getNamespaceContext().derefQName(atts.getValue("faultName")));
+ if (atts.hasAtt("faultVariable"))
+ c.setFaultVariable(atts.getValue("faultVariable"));
+ if(atts.hasAtt("faultMessageType"))
+ c.setFaultVariableMessageType(se.getNamespaceContext().derefQName(atts.getValue("faultMessageType")));
+ if(atts.hasAtt("faultElement"))
+ c.setFaultVariableElementType(se.getNamespaceContext().derefQName(atts.getValue("faultElement")));
+ }
+
+ /**
+ * @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_CATCH;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new BpelCatchState(se,pc);
+ }
+ }
+}
Added: incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensateActivityState.java
URL: http://svn.apache.org/viewcvs/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensateActivityState.java?rev=398694&view=auto
==============================================================================
--- incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensateActivityState.java (added)
+++ incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/BpelCompensateActivityState.java Mon May 1 14:37:44 2006
@@ -0,0 +1,54 @@
+/*
+ * 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.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 BpelCompensateActivityState extends BpelBaseActivityState {
+
+ private static final StateFactory _factory = new Factory();
+
+ BpelCompensateActivityState(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 BPEL_COMPENSATE;
+ }
+
+ static class Factory implements StateFactory {
+
+ public State newInstance(StartElement se, ParseContext pc) throws ParseException {
+ return new BpelCompensateActivityState(se,pc);
+ }
+ }
+}