You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2018/05/13 19:31:56 UTC

[royale-asjs] branch develop updated: add more AMF cases to the example. - Add sub typed object to typed Object - Add sub Array of typed Objects - Still needed to transfer Collections (time to see how to overcome ArrayCollection need)

This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new ecdc6ad  add more AMF cases to the example. - Add sub typed object to typed Object - Add sub Array of typed Objects - Still needed to transfer Collections (time to see how to overcome ArrayCollection need)
ecdc6ad is described below

commit ecdc6adbc594df0632c2db8abc41c59221106c20
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sun May 13 21:31:50 2018 +0200

    add more AMF cases to the example.
    - Add sub typed object to typed Object
    - Add sub Array of typed Objects
    - Still needed to transfer Collections (time to see how to overcome ArrayCollection need)
---
 .../royale/amfsamples/services/ExampleService.java | 56 ++++++++++++++++++++++
 .../royale/amfsamples/valueobjects/Product.java    | 31 ++++++++++++
 .../valueobjects/{Product.java => Taxonomy.java}   | 16 +++----
 .../valueobjects/{Product.java => Zone.java}       | 35 +++++++++-----
 .../RemoteObjectAMFTest/src/main/royale/App.mxml   | 24 ++++++++--
 .../src/main/royale/valueObjects/Product.as        | 26 ++++++++++
 .../valueObjects/{Product.as => Taxonomy.as}       | 17 ++++---
 .../royale/valueObjects/{Product.as => Zone.as}    | 27 +++++------
 8 files changed, 185 insertions(+), 47 deletions(-)

diff --git a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/services/ExampleService.java b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/services/ExampleService.java
index 08c0a4c..2049693 100644
--- a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/services/ExampleService.java
+++ b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/services/ExampleService.java
@@ -21,9 +21,14 @@ package org.apache.royale.amfsamples.services;
 
 import org.apache.royale.amfsamples.valueobjects.ServerCustomType;
 import org.apache.royale.amfsamples.valueobjects.Product;
+import org.apache.royale.amfsamples.valueobjects.Taxonomy;
+import org.apache.royale.amfsamples.valueobjects.Zone;
 import org.springframework.flex.remoting.RemotingDestination;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.ArrayList;
+
 @Service("exampleService")
 @RemotingDestination
 public class ExampleService {
@@ -46,6 +51,17 @@ public class ExampleService {
         return customTypes;
     }
 
+    public Zone getSomeZone()
+    {
+        System.out.println("getSomeZone called");
+
+        Zone zone =  new Zone();
+        zone.setId(1);
+        zone.setName("Europe");
+
+        return zone;
+    }
+
     public Product getSomeProduct()
     {
         System.out.println("getSomeProduct called");
@@ -53,6 +69,46 @@ public class ExampleService {
         Product product = new Product();
         product.setName("Some product");
         product.setDescription("This product is only a test typed value object to test AMF strong types");
+        
+        Taxonomy taxonomy = new Taxonomy();
+        taxonomy.setType("a type");
+        taxonomy.setDescription("a taxonomy for this product");
+
+        product.setTaxonomy(taxonomy);
+
+        /*List<Zone> zones = new ArrayList<Zone>();
+        
+        Zone zone1 =  new Zone();
+        zone1.setId(1);
+        zone1.setName("Europe");
+        zones.add(zone1);
+
+        Zone zone2 =  new Zone();
+        zone2.setId(2);
+        zone2.setName("USA");
+        zones.add(zone2);
+
+        Zone zone3 =  new Zone();
+        zone3.setId(3);
+        zone3.setName("Asia");
+        zones.add(zone3);
+        */
+
+        Object[] zones = new Object[3];
+        for (int i = 0; i < zones.length; i++)
+        {
+            Zone zone = new Zone();
+            zone.setId(i);
+            if (i == 0)
+                zone.setName("Europa");
+            else if (i == 1)
+                zone.setName("USA");
+            else if (i == 2)
+                zone.setName("Asia");
+            zones[i] = zone;
+        }
+
+        product.setZones(zones);
 
         return product;
     }
diff --git a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
index 09d3ddd..7701108 100644
--- a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
+++ b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
@@ -16,6 +16,8 @@
  */
 package org.apache.royale.amfsamples.valueobjects;
 
+import java.util.Collection;
+
 /**
  * The server side object used by AMFConnectionTestService. There is a 
  * corresponding client side object.
@@ -24,6 +26,8 @@ public class Product
 {
     private String name;
     private String description;
+    private Taxonomy taxonomy;
+    private Object[] zones;
 
     public Product()
     {
@@ -47,6 +51,33 @@ public class Product
         this.description = description;
     }
 
+    public Taxonomy getTaxonomy()
+    {
+        return taxonomy;
+    }
+    public void setTaxonomy(Taxonomy taxonomy)
+    {
+        this.taxonomy = taxonomy;
+    }
+
+    /**
+    * The zone list.
+    *
+    * @return The zone list.
+    */
+    public Object[] getZones() {
+        return zones;
+    }
+
+    /**
+    * The zones list.
+    *
+    * @param zoness The zones list.
+    */
+    public void setZones(Object[] zones) {
+        this.zones = zones;
+    }
+
     public String toString()
     {
         return "Product -> name: " + name + ", description: " + description;
diff --git a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Taxonomy.java
similarity index 83%
copy from examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
copy to examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Taxonomy.java
index 09d3ddd..716f17f 100644
--- a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
+++ b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Taxonomy.java
@@ -20,22 +20,22 @@ package org.apache.royale.amfsamples.valueobjects;
  * The server side object used by AMFConnectionTestService. There is a 
  * corresponding client side object.
  */
-public class Product
+public class Taxonomy
 {
-    private String name;
+    private String type;
     private String description;
 
-    public Product()
+    public Taxonomy()
     {
     }
 
-    public String getName()
+    public String getType()
     {
-        return name;
+        return type;
     }
-    public void setName(String name)
+    public void setType(String type)
     {
-        this.name = name;
+        this.type = type;
     }
 
     public String getDescription()
@@ -49,6 +49,6 @@ public class Product
 
     public String toString()
     {
-        return "Product -> name: " + name + ", description: " + description;
+        return "Taxonomy -> type: " + type + ", description: " + description;
     }
 }
diff --git a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Zone.java
similarity index 76%
copy from examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
copy to examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Zone.java
index 09d3ddd..3c21c55 100644
--- a/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Product.java
+++ b/examples/amf/SampleAmfWebApp/src/main/java/org/apache/royale/amfsamples/valueobjects/Zone.java
@@ -20,15 +20,33 @@ package org.apache.royale.amfsamples.valueobjects;
  * The server side object used by AMFConnectionTestService. There is a 
  * corresponding client side object.
  */
-public class Product
+public class Zone
 {
+    private int id;
     private String name;
-    private String description;
 
-    public Product()
+    public Zone()
     {
     }
 
+    /**
+    * The id of the zone.
+    *
+    * @return The id of the zone.
+    */
+    public int getId() {
+        return id;
+    }
+
+    /**
+    * The id of the zone.
+    *
+    * @param id The id of the zone.
+    */
+    public void setId(int id) {
+        this.id = id;
+    }
+
     public String getName()
     {
         return name;
@@ -38,17 +56,8 @@ public class Product
         this.name = name;
     }
 
-    public String getDescription()
-    {
-        return description;
-    }
-    public void setDescription(String description)
-    {
-        this.description = description;
-    }
-
     public String toString()
     {
-        return "Product -> name: " + name + ", description: " + description;
+        return "Zone -> id: " + id + ", name: " + name;
     }
 }
diff --git a/examples/royale/RemoteObjectAMFTest/src/main/royale/App.mxml b/examples/royale/RemoteObjectAMFTest/src/main/royale/App.mxml
index a706a88..dec2abd 100644
--- a/examples/royale/RemoteObjectAMFTest/src/main/royale/App.mxml
+++ b/examples/royale/RemoteObjectAMFTest/src/main/royale/App.mxml
@@ -35,9 +35,10 @@ limitations under the License.
 			import org.apache.royale.net.events.ResultEvent;
             import valueObjects.ClientValueObject;
             import valueObjects.Product;
+            import valueObjects.Zone;
             import org.apache.royale.collections.ArrayList;
-			
-			protected function sendName():void
+
+            protected function sendName():void
 			{
                 service.send("echo", [name_txt.text]);
 			}
@@ -47,10 +48,22 @@ limitations under the License.
 				trace("Result=" + evt.data);
 				if (evt.data is String)
 					received.text = "Received: " + evt.data;
+                else if (evt.data is Zone)
+                {
+                    var zone:Zone = evt.data as Zone;
+                    received3.text = "Received: zone " + zone.id + " is '" + zone.name + "'";
+                }
 				else if (evt.data is Product)
                 {
                     var product:Product = evt.data as Product;
-                    received3.text = "Received: product name is '" + product.name + "' and product description is '" + product.description + "'" ;
+                    received3.text = "Received: product name is '" + product.name + "', product description is '" + product.description + "'. product taxonomy type is '" + product.taxonomy.type + "' and product taxonomy description is '" + product.taxonomy.description + "' zones: " ;
+
+                    var len:int = product.zones.length;
+                    for(var index:int = 0; index < len; index++)
+                    {
+                        var zone:Zone = product.zones[index];
+                        received3.text += "[" + zone.id + ", " + zone.name + "], ";
+                    }
                 } else
               	{
                     var arr:ArrayList = new ArrayList(evt.data as Array);
@@ -68,6 +81,11 @@ limitations under the License.
                 service.send("getObjectArray1", []);
 			}
 
+            protected function getSomeZone():void
+			{
+                service.send("getSomeZone", []);
+			}
+            
             protected function getSomeProduct():void
 			{
                 service.send("getSomeProduct", []);
diff --git a/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as b/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
index b00f7eb..6bde660 100644
--- a/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
+++ b/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
@@ -18,6 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package valueObjects
 {
+    //import org.apache.royale.collections.ArrayList;
+
     [RemoteClass(alias="org.apache.royale.amfsamples.valueobjects.Product")]
 	public class Product
 	{
@@ -49,5 +51,29 @@ package valueObjects
             _description = value;
         }
 
+        private var _taxonomy:Taxonomy;
+
+        public function get taxonomy():Taxonomy
+        {
+            return _taxonomy;
+        }
+        
+        public function set taxonomy(value:Taxonomy):void
+        {
+            _taxonomy = value;
+        }
+
+        // collection of zones (Zone - ArrayList)
+        private var _zones:Array;
+
+        public function get zones():Array
+        {
+            return _zones;
+        }
+        
+        public function set zones(value:Array):void
+        {
+            _zones = value;
+        }
 	}
 }
diff --git a/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as b/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Taxonomy.as
similarity index 85%
copy from examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
copy to examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Taxonomy.as
index b00f7eb..0c26bc5 100644
--- a/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
+++ b/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Taxonomy.as
@@ -18,23 +18,23 @@
 ////////////////////////////////////////////////////////////////////////////////
 package valueObjects
 {
-    [RemoteClass(alias="org.apache.royale.amfsamples.valueobjects.Product")]
-	public class Product
+    [RemoteClass(alias="org.apache.royale.amfsamples.valueobjects.Taxonomy")]
+	public class Taxonomy
 	{
-		public function Product()
+		public function Taxonomy()
 		{
 		}
 
-		private var _name:String;
+		private var _type:String;
 
-        public function get name():String
+        public function get type():String
         {
-            return _name;
+            return _type;
         }
         
-        public function set name(value:String):void
+        public function set type(value:String):void
         {
-            _name = value;
+            _type = value;
         }
 
         private var _description:String;
@@ -48,6 +48,5 @@ package valueObjects
         {
             _description = value;
         }
-
 	}
 }
diff --git a/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as b/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Zone.as
similarity index 81%
copy from examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
copy to examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Zone.as
index b00f7eb..fb4f6a9 100644
--- a/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Product.as
+++ b/examples/royale/RemoteObjectAMFTest/src/main/royale/valueObjects/Zone.as
@@ -18,36 +18,35 @@
 ////////////////////////////////////////////////////////////////////////////////
 package valueObjects
 {
-    [RemoteClass(alias="org.apache.royale.amfsamples.valueobjects.Product")]
-	public class Product
+    [RemoteClass(alias="org.apache.royale.amfsamples.valueobjects.Zone")]
+	public class Zone
 	{
-		public function Product()
+		public function Zone()
 		{
 		}
 
-		private var _name:String;
+		private var _id:int;
 
-        public function get name():String
+        public function get id():int
         {
-            return _name;
+            return _id;
         }
         
-        public function set name(value:String):void
+        public function set id(value:int):void
         {
-            _name = value;
+            _id = value;
         }
 
-        private var _description:String;
+        private var _name:String;
 
-        public function get description():String
+        public function get name():String
         {
-            return _description;
+            return _name;
         }
         
-        public function set description(value:String):void
+        public function set name(value:String):void
         {
-            _description = value;
+            _name = value;
         }
-
 	}
 }

-- 
To stop receiving notification emails like this one, please contact
carlosrovira@apache.org.