Author: mriou
Date: Sat Jun 16 22:00:01 2007
New Revision: 548009

URL: http://svn.apache.org/viewvc?view=rev&rev=548009
Log:
Error message for a reply defined with a partnerLink without myRole.

Modified:
    
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ReplyGenerator.java

Modified: 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ReplyGenerator.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ReplyGenerator.java?view=diff&rev=548009&r1=548008&r2=548009
==============================================================================
--- 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ReplyGenerator.java
 (original)
+++ 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ReplyGenerator.java
 Sat Jun 16 22:00:01 2007
@@ -18,15 +18,18 @@
  */
 package org.apache.ode.bpel.compiler;
 
+import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.bom.Activity;
 import org.apache.ode.bpel.compiler.bom.Correlation;
-import org.apache.ode.bpel.compiler.api.CompilationException;
-import org.apache.ode.bpel.o.*;
+import org.apache.ode.bpel.o.OActivity;
+import org.apache.ode.bpel.o.OMessageVarType;
+import org.apache.ode.bpel.o.OProcess;
+import org.apache.ode.bpel.o.OReply;
+import org.apache.ode.bpel.o.OScope;
 import org.apache.ode.utils.msg.MessageBundle;
 
-import java.util.Iterator;
-
 import javax.wsdl.Fault;
+import java.util.Iterator;
 
 
 /**
@@ -34,75 +37,77 @@
  */
 class ReplyGenerator extends DefaultActivityGenerator  {
 
-  private static final CommonCompilationMessages _cmsgsGeneral =
-    MessageBundle.getMessages(CommonCompilationMessages.class);
+    private static final CommonCompilationMessages _cmsgsGeneral =
+            MessageBundle.getMessages(CommonCompilationMessages.class);
 
-  private static final ReplyGeneratorMessages __cmsgsLocal =
-    MessageBundle.getMessages(ReplyGeneratorMessages.class);
+    private static final ReplyGeneratorMessages __cmsgsLocal =
+            MessageBundle.getMessages(ReplyGeneratorMessages.class);
 
-  public OActivity newInstance(Activity src) {
+    public OActivity newInstance(Activity src) {
         return new OReply(_context.getOProcess(), _context.getCurrent());
-  }
-
-  public void compile(OActivity output, Activity src) {
-    org.apache.ode.bpel.compiler.bom.ReplyActivity replyDef = 
(org.apache.ode.bpel.compiler.bom.ReplyActivity) src;
-    OReply oreply = (OReply) output;
-
-    oreply.isFaultReply = replyDef.getFaultName() != null;
-    oreply.partnerLink = 
_context.resolvePartnerLink(replyDef.getPartnerLink());
-    oreply.messageExchangeId = replyDef.getMessageExchangeId();
-    if (replyDef.getVariable() != null) {
-      oreply.variable = _context.resolveVariable(replyDef.getVariable());
-      if (!(oreply.variable.type instanceof OMessageVarType))
-        throw new 
CompilationException(_cmsgsGeneral.errMessageVariableRequired(oreply.variable.name));
-    }
-
-    // The portType on the reply is not necessary, so we check its validty 
only when present.
-    if (replyDef.getPortType() != null && 
!oreply.partnerLink.myRolePortType.getQName().equals(replyDef.getPortType()))
-      throw new 
CompilationException(_cmsgsGeneral.errPortTypeMismatch(replyDef.getPortType(),oreply.partnerLink.myRolePortType.getQName()));
-
-    oreply.operation = _context.resolveMyRoleOperation(oreply.partnerLink, 
replyDef.getOperation());
-    if (oreply.operation.getOutput() == null)
-      throw new 
CompilationException(_cmsgsGeneral.errTwoWayOperationExpected(oreply.operation.getName()));
-
-    if (oreply.isFaultReply) {
-      Fault flt = null;
-      if 
(replyDef.getFaultName().getNamespaceURI().equals(oreply.partnerLink.myRolePortType.getQName().getNamespaceURI()))
-        flt = 
oreply.operation.getFault(replyDef.getFaultName().getLocalPart());
-      if (flt == null)
-        throw new 
CompilationException(__cmsgsLocal.errUndeclaredFault(replyDef.getFaultName().getLocalPart(),
 oreply.operation.getName()));
-      if (oreply.variable != null && 
!((OMessageVarType)oreply.variable.type).messageType.equals(flt.getMessage().getQName()))
-        throw new 
CompilationException(_cmsgsGeneral.errVariableTypeMismatch(oreply.variable.name,
 flt.getMessage().getQName(), 
((OMessageVarType)oreply.variable.type).messageType));
-      oreply.fault = replyDef.getFaultName();
-    } else /* !oreply.isFaultReply */ {
-      assert oreply.fault == null;
-      if (oreply.variable == null)
-        throw new 
CompilationException(__cmsgsLocal.errOutputVariableMustBeSpecified());
-      if 
(!((OMessageVarType)oreply.variable.type).messageType.equals(oreply.operation.getOutput().getMessage().getQName()))
-        throw new 
CompilationException(_cmsgsGeneral.errVariableTypeMismatch(oreply.variable.name,
 
oreply.operation.getOutput().getMessage().getQName(),((OMessageVarType)oreply.variable.type).messageType));
     }
 
-    for (Correlation correlation  : replyDef.getCorrelations()) {
-      OScope.CorrelationSet cset = 
_context.resolveCorrelationSet(correlation.getCorrelationSet());
-
-      switch (correlation.getInitiate()) {
-        case UNSET:
-        case NO:
-          oreply.assertCorrelations.add(cset);
-          break;
-        case YES:
-          oreply.initCorrelations.add(cset);
-          break;
-        default:
-          // TODO: Make error for this.
-          throw new AssertionError();
-      }
-
-      for (Iterator<OProcess.OProperty> j = cset.properties.iterator(); 
j.hasNext(); ) {
-        OProcess.OProperty property = j.next();
-        // Force resolution of alias, to make sure that we have one for this 
variable-property pair.
-        _context.resolvePropertyAlias(oreply.variable, property.name);
-      }
+    public void compile(OActivity output, Activity src) {
+        org.apache.ode.bpel.compiler.bom.ReplyActivity replyDef = 
(org.apache.ode.bpel.compiler.bom.ReplyActivity) src;
+        OReply oreply = (OReply) output;
+
+        oreply.isFaultReply = replyDef.getFaultName() != null;
+        oreply.partnerLink = 
_context.resolvePartnerLink(replyDef.getPartnerLink());
+        oreply.messageExchangeId = replyDef.getMessageExchangeId();
+        if (replyDef.getVariable() != null) {
+            oreply.variable = _context.resolveVariable(replyDef.getVariable());
+            if (!(oreply.variable.type instanceof OMessageVarType))
+                throw new 
CompilationException(_cmsgsGeneral.errMessageVariableRequired(oreply.variable.name));
+        }
+
+        if (oreply.partnerLink.myRolePortType == null)
+            throw new 
CompilationException(_cmsgsGeneral.errPartnerLinkDoesNotDeclareMyRole(oreply.partnerLink.getName()));
+        // The portType on the reply is not necessary, so we check its validty 
only when present.
+        if (replyDef.getPortType() != null && 
!oreply.partnerLink.myRolePortType.getQName().equals(replyDef.getPortType()))
+            throw new 
CompilationException(_cmsgsGeneral.errPortTypeMismatch(replyDef.getPortType(),oreply.partnerLink.myRolePortType.getQName()));
+
+        oreply.operation = _context.resolveMyRoleOperation(oreply.partnerLink, 
replyDef.getOperation());
+        if (oreply.operation.getOutput() == null)
+            throw new 
CompilationException(_cmsgsGeneral.errTwoWayOperationExpected(oreply.operation.getName()));
+
+        if (oreply.isFaultReply) {
+            Fault flt = null;
+            if 
(replyDef.getFaultName().getNamespaceURI().equals(oreply.partnerLink.myRolePortType.getQName().getNamespaceURI()))
+                flt = 
oreply.operation.getFault(replyDef.getFaultName().getLocalPart());
+            if (flt == null)
+                throw new 
CompilationException(__cmsgsLocal.errUndeclaredFault(replyDef.getFaultName().getLocalPart(),
 oreply.operation.getName()));
+            if (oreply.variable != null && 
!((OMessageVarType)oreply.variable.type).messageType.equals(flt.getMessage().getQName()))
+                throw new 
CompilationException(_cmsgsGeneral.errVariableTypeMismatch(oreply.variable.name,
 flt.getMessage().getQName(), 
((OMessageVarType)oreply.variable.type).messageType));
+            oreply.fault = replyDef.getFaultName();
+        } else /* !oreply.isFaultReply */ {
+            assert oreply.fault == null;
+            if (oreply.variable == null)
+                throw new 
CompilationException(__cmsgsLocal.errOutputVariableMustBeSpecified());
+            if 
(!((OMessageVarType)oreply.variable.type).messageType.equals(oreply.operation.getOutput().getMessage().getQName()))
+                throw new 
CompilationException(_cmsgsGeneral.errVariableTypeMismatch(oreply.variable.name,
 
oreply.operation.getOutput().getMessage().getQName(),((OMessageVarType)oreply.variable.type).messageType));
+        }
+
+        for (Correlation correlation  : replyDef.getCorrelations()) {
+            OScope.CorrelationSet cset = 
_context.resolveCorrelationSet(correlation.getCorrelationSet());
+
+            switch (correlation.getInitiate()) {
+                case UNSET:
+                case NO:
+                    oreply.assertCorrelations.add(cset);
+                    break;
+                case YES:
+                    oreply.initCorrelations.add(cset);
+                    break;
+                default:
+                    // TODO: Make error for this.
+                    throw new AssertionError();
+            }
+
+            for (Iterator<OProcess.OProperty> j = cset.properties.iterator(); 
j.hasNext(); ) {
+                OProcess.OProperty property = j.next();
+                // Force resolution of alias, to make sure that we have one 
for this variable-property pair.
+                _context.resolvePropertyAlias(oreply.variable, property.name);
+            }
+        }
     }
-  }
 }


Reply via email to