incubator-flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gordonsm...@apache.org
Subject svn commit: r1422170 - in /incubator/flex/falcon/trunk: compiler.tests/feature-tests/mxml/tags/ compiler/src/org/apache/flex/compiler/tree/mxml/
Date Sat, 15 Dec 2012 00:45:05 GMT
Author: gordonsmith
Date: Sat Dec 15 00:45:03 2012
New Revision: 1422170

URL: http://svn.apache.org/viewvc?rev=1422170&view=rev
Log:
Falcon: Added feature tests for <HTTPService>/<request>, <RemoteObject>/<method>,
and <WebService>/<operation> tags.

Added Javadoc explaining how these tags differ from ordinary instance tags.

Feature tests can now optionally compile against various Flex SWCs, and can add additional
namespaces to the MXML.

Added:
    incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLHTTPServiceTagTests.java
  (with props)
    incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLRemoteObjectTagTests.java
  (with props)
    incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLWebServiceTagTests.java
  (with props)
Modified:
    incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
    incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLInstanceTagTestsBase.java
    incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLHTTPServiceNode.java
    incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLRemoteObjectNode.java
    incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLWebServiceNode.java

Modified: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java?rev=1422170&r1=1422169&r2=1422170&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
(original)
+++ incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
Sat Dec 15 00:45:03 2012
@@ -26,11 +26,13 @@ import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.flex.compiler.clients.MXMLC;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.utils.FilenameNormalization;
+import org.apache.flex.utils.StringUtils;
 
 import utils.EnvProperties;
 
@@ -44,13 +46,24 @@ public class MXMLFeatureTestsBase
 	private static EnvProperties env = EnvProperties.initiate();
 	
 	private static final String PLAYERGLOBAL_SWC = FilenameNormalization.normalize(env.FPSDK
+ "\\11.1\\playerglobal.swc");
+	
+	private static final String FRAMEWORK_SWC = FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\framework.swc");
+	private static final String FRAMEWORK_RB_SWC = FilenameNormalization.normalize(env.SDK +
"\\frameworks\\locale\\en_US\\framework_rb.swc");
+	
+	private static final String RPC_SWC = FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\rpc.swc");
+	private static final String RPC_RB_SWC = FilenameNormalization.normalize(env.SDK + "\\frameworks\\locale\\en_US\\rpc_rb.swc");
+
+	private static final String SPARK_SWC = FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\spark.swc");
+	private static final String SPARK_RB_SWC = FilenameNormalization.normalize(env.SDK + "\\frameworks\\locale\\en_US\\spark_rb.swc");
+	
 	private static final String NAMESPACE_2009 = "http://ns.adobe.com/mxml/2009";
-    private static final String MANIFEST_2009 = FilenameNormalization.normalize(env.SDK +
"\\frameworks\\mxml-2009-manifest.xml");
+    
+	private static final String MANIFEST_2009 = FilenameNormalization.normalize(env.SDK + "\\frameworks\\mxml-2009-manifest.xml");
     
     // The Ant script for compiler.tests copies a standalone player to the temp directory.
     private static final String FLASHPLAYER = FilenameNormalization.normalize("temp/FlashPlayer.exe");
 
-	protected void compileAndRun(String mxml)
+	protected void compileAndRun(String mxml, boolean withFramework, boolean withRPC, boolean
withSpark)
 	{
 		// Write the MXML into a temp file.
 		String tempDir = FilenameNormalization.normalize("temp");
@@ -69,11 +82,31 @@ public class MXMLFeatureTestsBase
 			e1.printStackTrace();
 		}
 		
-		// Use MXMLC to compile the MXML file against playerglobal.swc.
+		// Build the list of SWCs to compile against on the library path.
+		List<String> swcs = new ArrayList<String>();
+		if (withFramework)
+		{
+			swcs.add(FRAMEWORK_SWC);
+			swcs.add(FRAMEWORK_RB_SWC);
+		}
+		if (withRPC)
+		{
+			swcs.add(RPC_SWC);
+			swcs.add(RPC_RB_SWC);
+		}
+		if (withSpark)
+		{
+			swcs.add(SPARK_SWC);
+			swcs.add(SPARK_RB_SWC);
+		}
+		String libraryPath = "-library-path=" + StringUtils.join(swcs.toArray(new String[0]), ",");
+		
+		// Use MXMLC to compile the MXML file against playerglobal.swc and possibly other SWCs.
 		MXMLC mxmlc = new MXMLC();
 		String[] args = new String[]
         {
 			"-external-library-path=" + PLAYERGLOBAL_SWC,
+			libraryPath,
 			"-namespace=" + NAMESPACE_2009 + "," + MANIFEST_2009,
 			tempMXMLFile.getAbsolutePath()
 		};
@@ -107,4 +140,9 @@ public class MXMLFeatureTestsBase
 	    // Check that the runtime exit code was 0, meaning that no asserts failed.
 		assertThat(exitCode, is(0));
 	}
+	
+	protected void compileAndRun(String mxml)
+	{
+		compileAndRun(mxml, false, false, false);
+	}
 }

Added: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLHTTPServiceTagTests.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLHTTPServiceTagTests.java?rev=1422170&view=auto
==============================================================================
--- incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLHTTPServiceTagTests.java
(added)
+++ incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLHTTPServiceTagTests.java
Sat Dec 15 00:45:03 2012
@@ -0,0 +1,76 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package mxml.tags;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for the MXML {@code <HTTPService>} and {@code <request>} tags.
+ * <p>
+ * The {@code <HTTPService>} tag is an ordinary instance tag from the compiler's
+ * point of view, except for the fact that an {@code <HTTPService>} tag can have
+ * special child {@code <request>} tags mixed in with its other child tags
+ * for properties and events.
+ * A {@code <request>} tag is a special kind of property tag,
+ * corresponding to the <code>request</code> property.
+ * This property has type <code>Object</code>, but you don't have to write
+ * an MXML {@code <Object>} tag to set its value; instead you just
+ * write the name/value pairs.
+ * <p>
+ * Each {@code <request>} tag is represented by a child {@code IMXMLHTTPServiceRequestPropertyNode}.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLHTTPServiceTagTests extends MXMLInstanceTagTestsBase
+{
+	@Override
+	protected String getOtherNamespaces()
+	{
+		return "xmlns:mx='library://ns.adobe.com/flex/mx'";
+	}
+	
+    @Test
+    public void MXMLHTTPServiceTag_withRequest()
+    {
+        String[] declarations = new String[]
+        {
+            "<mx:HTTPService id='hs1'>",
+            "    <mx:url>http://whatever</mx:url>",
+    		"    <mx:request xmlns=''>",
+    		"        <a>abc</a>",
+    		"        <b>123</b>",
+    		"        <c>false</c>",
+    		"    </mx:request>",
+    		"    <mx:method>POST</mx:method>",
+    		"</mx:HTTPService>"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('hs1 is HTTPService', hs1 is HTTPService, true);",
+            "assertEqual('hs1.url', hs1.url, 'http://whatever');",
+            "assertEqual('hs1.request.a', hs1.request['a'], 'abc');",
+            "assertEqual('hs1.request.b', hs1.request['b'], 123);",
+            "assertEqual('hs1.request.c', hs1.request['c'], false);",
+            "assertEqual('hs1.method', hs1.method, 'POST');"
+        };
+        String mxml = getMXML(declarations, asserts);
+        compileAndRun(mxml, true, true, false);
+    }
+}

Propchange: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLHTTPServiceTagTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLInstanceTagTestsBase.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLInstanceTagTestsBase.java?rev=1422170&r1=1422169&r2=1422170&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLInstanceTagTestsBase.java
(original)
+++ incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLInstanceTagTestsBase.java
Sat Dec 15 00:45:03 2012
@@ -35,7 +35,7 @@ public class MXMLInstanceTagTestsBase ex
     {
         String[] template = new String[]
         {
-            "<d:Sprite xmlns:fx='http://ns.adobe.com/mxml/2009' xmlns:d='flash.display.*'",
+            "<d:Sprite xmlns:fx='http://ns.adobe.com/mxml/2009' xmlns:d='flash.display.*'
" + getOtherNamespaces(),
             "          enterFrame='enterFrameHandler(event)'>",
             "    <fx:Declarations>",
             "        %1",
@@ -74,4 +74,9 @@ public class MXMLInstanceTagTestsBase ex
     {
     	return getMXML(declarations, new String[0], asserts);
     }
+    
+    protected String getOtherNamespaces()
+    {
+    	return "";
+    }
 }

Added: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLRemoteObjectTagTests.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLRemoteObjectTagTests.java?rev=1422170&view=auto
==============================================================================
--- incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLRemoteObjectTagTests.java
(added)
+++ incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLRemoteObjectTagTests.java
Sat Dec 15 00:45:03 2012
@@ -0,0 +1,73 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package mxml.tags;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for the MXML {@code <RemoteObject>} and {@code <method>} tags.
+ * <p>
+ * The {@code <RemoteObject>} tag is an ordinary instance tag from the compiler's
+ * point of view, except for some compile magic that allows a {@code <RemoteObject>}
tag
+ * to have special child {@code <method>} tags mixed in with its other child tags
+ * for properties and events.
+ * These are not property tags, because {@code RemoteObject} has no <code>method</code>
property.
+ * Instead, each {@code <method>} tag creates an instance of <code>mx.rpc.remoting.mxml.Operation</code>
+ * and adds it as a dynamic property of the <code>operations</code> object
+ * of the <code>RemoteObject</code> instance.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLRemoteObjectTagTests extends MXMLInstanceTagTestsBase
+{
+	@Override
+	protected String getOtherNamespaces()
+	{
+		return "xmlns:mx='library://ns.adobe.com/flex/mx'";
+	}
+	
+    @Test
+    public void MXMLRemoteObjectTag_twoMethods()
+    {
+        String[] declarations = new String[]
+        {
+            "<mx:RemoteObject id='ro1'>",
+    		"    <mx:method name='m1'/>",
+            "    <mx:destination>http://whatever</mx:destination>",
+    		"    <mx:method name='m2'/>",
+    		"</mx:RemoteObject>"
+        };
+        String[] scriptDeclarations = new String[]
+        {
+        	"import mx.rpc.remoting.mxml.Operation;"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('ro1 is RemoteObject', ro1 is RemoteObject, true);",
+            "assertEqual('ro1.destination', ro1.destination, 'http://whatever');",
+            "assertEqual('ro1.operations.m1', ro1.operations['m1'] is Operation, true);",
+            "assertEqual('ro1.operations.m1.name', ro1.operations['m1'].name, 'm1');",
+            "assertEqual('ro1.operations.m2', ro1.operations['m2'] is Operation, true);",
+            "assertEqual('ro1.operations.m2.name', ro1.operations['m2'].name, 'm2');",
+        };
+        String mxml = getMXML(declarations, scriptDeclarations, asserts);
+        compileAndRun(mxml, true, true, false);
+    }
+}

Propchange: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLRemoteObjectTagTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLWebServiceTagTests.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLWebServiceTagTests.java?rev=1422170&view=auto
==============================================================================
--- incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLWebServiceTagTests.java
(added)
+++ incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLWebServiceTagTests.java
Sat Dec 15 00:45:03 2012
@@ -0,0 +1,74 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package mxml.tags;
+
+import org.junit.Test;
+
+/**
+ * Feature tests for the MXML {@code <WebService>} tag.
+ * <p>
+ * The {@code <WebService>} tag is an ordinary instance tag from the compiler's
+ * point of view, except for the fact that a {@code <Webservice>} tag can have
+ * special child {@code <operation>} tags mixed in with its other child tags
+ * for properties and events.
+ * These are not property tags, because {@code WebService} has no <code>operation</code>
property.
+ * Instead, each {@code <operation>} tag creates an instance of <code>mx.rpc.soap.mxml.Operation</code>
+ * and adds it as a dynamic property of the <code>operations</code> object
+ * of the <code>WebService</code> instance; the name of the property in this
object
+ * is the name specified by the <code>name</code> attribute on the {@code <operation>}
tag.
+ * 
+ * @author Gordon Smith
+ */
+public class MXMLWebServiceTagTests extends MXMLInstanceTagTestsBase
+{
+	@Override
+	protected String getOtherNamespaces()
+	{
+		return "xmlns:mx='library://ns.adobe.com/flex/mx'";
+	}
+	
+    @Test
+    public void MXMLWebServiceTag_twoOperations()
+    {
+        String[] declarations = new String[]
+        {
+            "<mx:WebService id='ws1'>",
+    		"    <mx:operation name='op1'/>",
+            "    <mx:description>whatever</mx:description>",
+    		"    <mx:operation name='op2'/>",
+    		"</mx:WebService>"
+        };
+        String[] scriptDeclarations = new String[]
+        {
+        	"import mx.rpc.soap.mxml.Operation;"
+        };
+        String[] asserts = new String[]
+        {
+            "assertEqual('ws1 is WebService', ws1 is WebService, true);",
+            "assertEqual('ws1.description', ws1.description, 'whatever');",
+            "assertEqual('ws1.operations.op1', ws1.operations['op1'] is Operation, true);",
+            "assertEqual('ws1.operations.op1.name', ws1.operations['op1'].name, 'op1');",
+            "assertEqual('ws1.operations.op2', ws1.operations['op2'] is Operation, true);",
+            "assertEqual('ws1.operations.op2.name', ws1.operations['op2'].name, 'op2');",
+        };
+        String mxml = getMXML(declarations, scriptDeclarations, asserts);
+        compileAndRun(mxml, true, true, false);
+    }
+}

Propchange: incubator/flex/falcon/trunk/compiler.tests/feature-tests/mxml/tags/MXMLWebServiceTagTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLHTTPServiceNode.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLHTTPServiceNode.java?rev=1422170&r1=1422169&r2=1422170&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLHTTPServiceNode.java
(original)
+++ incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLHTTPServiceNode.java
Sat Dec 15 00:45:03 2012
@@ -20,7 +20,19 @@
 package org.apache.flex.compiler.tree.mxml;
 
 /**
- * AST node for {@code <HTTPService>} tags.
+ * This AST node represents an {@code <HTTPService>} tag.
+ *
+ * The {@code <HTTPService>} tag is an ordinary instance tag from the compiler's
+ * point of view, except for the fact that an {@code <HTTPService>} tag can have
+ * special child {@code <request>} tags mixed in with its other child tags
+ * for properties and events.
+ * A {@code <request>} tag is a special kind of property tag,
+ * corresponding to the <code>request</code> property.
+ * This property has type <code>Object</code>, but you don't have to write
+ * an MXML {@code <Object>} tag to set its value; instead you just
+ * write the name/value pairs.
+ * <p>
+ * Each {@code <request>} tag is represented by a child {@code IMXMLHTTPServiceRequestPropertyNode}.
  */
 public interface IMXMLHTTPServiceNode extends IMXMLInstanceNode
 {

Modified: incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLRemoteObjectNode.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLRemoteObjectNode.java?rev=1422170&r1=1422169&r2=1422170&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLRemoteObjectNode.java
(original)
+++ incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLRemoteObjectNode.java
Sat Dec 15 00:45:03 2012
@@ -21,6 +21,18 @@ package org.apache.flex.compiler.tree.mx
 
 /**
  * This AST node represents an MXML {@code <RemoteObject>} tag.
+ * <p>
+ * The {@code <RemoteObject>} tag is an ordinary instance tag from the compiler's
+ * point of view, except for the fact that a {@code <RemoteObject>} tag can have
+ * special child {@code <method>} tags mixed in with its other child tags
+ * for properties and events.
+ * These are not property tags, because {@code RemoteObject} has no <code>method</code>
property.
+ * Instead, each {@code <method>} tag creates an instance of <code>mx.rpc.remoting.mxml.Operation</code>
+ * and adds it as a dynamic property of the <code>operations</code> object
+ * of the <code>RemoteObject</code> instance; the name of the property in this
object
+ * is the name specified by the <code>name</code> attribute on the {@code <method>}
tag.
+ * <p>
+ * Each {@code <method>} tag is represented by a child {@code IMXMLRemoteObjectMethodNode}.
  */
 public interface IMXMLRemoteObjectNode extends IMXMLInstanceNode
 {

Modified: incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLWebServiceNode.java
URL: http://svn.apache.org/viewvc/incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLWebServiceNode.java?rev=1422170&r1=1422169&r2=1422170&view=diff
==============================================================================
--- incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLWebServiceNode.java
(original)
+++ incubator/flex/falcon/trunk/compiler/src/org/apache/flex/compiler/tree/mxml/IMXMLWebServiceNode.java
Sat Dec 15 00:45:03 2012
@@ -21,6 +21,18 @@ package org.apache.flex.compiler.tree.mx
 
 /**
  * This AST node represents an MXML {@code <WebService>} tag.
+ * <p>
+ * The {@code <WebService>} tag is an ordinary instance tag from the compiler's
+ * point of view, except for the fact that a {@code <Webservice>} tag can have
+ * special child {@code <operation>} tags mixed in with its other child tags
+ * for properties and events.
+ * These are not property tags, because {@code WebService} has no <code>operation</code>
property.
+ * Instead, each {@code <operation>} tag creates an instance of <code>mx.rpc.soap.mxml.Operation</code>
+ * and adds it as a dynamic property of the <code>operations</code> object
+ * of the <code>WebService</code> instance; the name of the property in this
object
+ * is the name specified by the <code>name</code> attribute on the {@code <operation>}
tag.
+ * <p>
+ * Each {@code <operaton>} tag is represented by a child {@code IMXMLWebServiceOperationNode}.
  */
 public interface IMXMLWebServiceNode extends IMXMLInstanceNode
 {



Mime
View raw message