クライアントサイドオブジェクトから Java オブジェクトへのマッピング

サーバーサイドの Java オブジェクトをクライアントアプリケーション内で表現するには、[RemoteClass(alias=" ")] メタデータタグを使用し、Java オブジェクトに直接マップされる ActionScript オブジェクトを作成します。alias の値として、Java クラスの完全修飾クラス名を指定します。これは、RemoteObject コンポーネントを使用する場合に Java オブジェクトへのマッピングに使用する方法と同じです。

サーバー上の Java オブジェクトにマップせず、サーバーから独自のオブジェクト型を送り返す場合は、エイリアスを指定しない [RemoteClass] メタデータタグを使用できます。独自の ActionScript オブジェクトは、サーバーに送られるときは Map オブジェクトに直列化されますが、サーバーからクライアントに返されるときは元の ActionScript 型になります。

クライアントサイドオブジェクトとサーバーサイドオブジェクト間で、管理された関連付けを作成する場合は、同時に [Managed] メタデータタグを使用するか、または mx.data.IManaged インターフェイスを明示的に実装します。

Flex データサービス サンプルアプリケーションに含まれる CRM アプリケーションは、管理された関連付けの例です。次の例は、クライアントサイドの ActionScript Company クラスのソースコードを示しています。これには、サーバーサイドの Java Company クラスとの管理された関連付けが含まれます。

package samples.crm
{
import mx.collections.ArrayCollection;
    [Managed]
    [RemoteClass(alias="samples.crm.Company")]
    public class Company
    {
        public var companyId:int;

        public var name:String = "";

        public var address:String = "";

        public var city:String = "";

        public var state:String = "";

        public var zip:String = "";

        public var industry:String = "";
        
        public function Company()
        {
        }
        
    }
}

次の例は、対応するサーバーサイドの Java Company クラスのソースコードです。

package samples.crm;

import java.util.Set;

public class Company
{
    private int companyId;

    private String name;

    private String address;

    private String city;

    private String zip;

    private String state;

    private String industry;

    public String getAddress()
    {
        return address;
    }

    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getCity()
    {
        return city;
    }

    public void setCity(String city)
    {
        this.city = city;
    }

    public int getCompanyId()
    {
        return companyId;
    }

    public void setCompanyId(int companyId)
    {
        this.companyId = companyId;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getState()
    {
        return state;
    }

    public void setState(String state)
    {
        this.state = state;
    }

    public String getZip()
    {
        return zip;
    }

    public void setZip(String zip)
    {
        this.zip = zip;
    }

    public String getIndustry()
    {
        return this.industry;
    }

    public void setIndustry(String industry)
    {
        this.industry = industry;
    }
    
    public String toString()
    {
        return "Company(companyId=" + companyId + ", name=" + name + ", address=" + address + 
                        ", state" + state + ", zip=" + zip + " industry=" + industry + ")";
    }
}

Flex 2.01