Есть java enum:
public enum ItemAvailability {
PUBLIC_ITEM, RESTRICTED_ITEM
}
Он идет как атрибут некоего класса, замапленного на flex-класс.
Java:
public class Item {
private String name;
private ItemAvailability availability = ItemAvailability.RESTRICTED_ITEM;
}
Flex:
[RemoteClass(alias="com.package.Item")]
public class Item {
public var name:String;
public var availability:Object;
}
Вопрос: как отразить этот атрибут во flex? Прямое соответствие невозможно, насколько я понимаю, - в AS3 нет enum. Пробуем Object: после вызова java-метода, возвращающего экземпляр Item, в дебагере видим:
availability - mx.data.ManagedObjectProxy, в который завернут Object - абсолютно пустой, без единого атрибута.
Пока нашел только такое решение - написание своей собственной сериализации/десериализации для класса Item. В Java коде, при сериализации преобразуем enum в строковое значение и наоборот при десериализации.
Подробнее - в livedocs, Using custom serialization .
1 комментарий:
Попробуй так:
http://flexblog.faratasystems.com/?p=242
Пришлось немного "помочь" механизму сериализации в FDS/LCDS (линки на необходимые jar-ы встречаются по ходу текста)
VS
Отправить комментарий